SlideShare a Scribd company logo
Twelve-Factor App +
Middleware
Build the Future and Prevent Outages
José Javier Vélez-Colón
Agenda
1
Overview
2
Microservice
s
Architecture
3
Shifting
Architecture
4
Continuous
Integration,
Continuous
Delivery
5
Concurrency
6
App Service
7
Conclusion
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Middleware makes it easier for software developers to implement
communication and input/output, so they can focus on the specific purpose
of their application. It gained popularity in the 1980s as a solution to the
problem of how to link newer applications to older legacy systems, although
the term had been in use since 1968.[2]
Wikipedia!
Where is the middleware depicted in the picture?
Lets be more specific
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Who offers middleware and can you avoid it?
Do it yourself (DIY) – App Service/IIS Logic Apps/Mulesoft/hundreds of
other vendors
Features
Send Mail Yes Yes
Connect to Symitar Yes Yes
Connect to Temenos Yes No
Many other features Always yes… Maybe….
Points to take home
• It is nearly impossible to avoid middleware in a line of business application. I had trouble even finding a ficticious
scenario where there would not be middleware…I imagined it would involved an Igloo and Antarctica.
• There is no silver bullet solution for all projects. Each of them have to evaluated individually and the right
architecture should be decided per project basis.
• Use guardrails (best practices to guide the architectural decision but don’t push a product).
• Middleware is a pipeline of how data is transmitted from point A to point B and is not a product
What is a Twelve-Factor App?
A 12-Factor app is a web app that follows the prescriptive
methodology conceived by the Heroku platform as a service (PaaS) for
cloud applications.
Benefits include:
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Scalability Resiliency
Continuous
Delivery
Maintainability
Information
Security
+ Pros
» Faster software delivery.
» Better security.
» Team unity and
understanding of each
other’s roles.
» Team works as a unit to
succeed and has
ownership of the overall
project success.
» Microservices do not
require teams to rewrite
the whole app if they
want to add new
features.
» Smaller codebases make
maintenance easier and
faster; saving a lot of
development effort and
time, thus increasing
overall productivity.
» Configuration drift is
reduced.
» The parts of an app can
be scaled separately and
are easier to deploy.
» Reduce outages –
uptime!
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
- Cons
» Very complicated –need to bring in experienced staff to handle the
complexity.
» Most invest heavily in monitoring tools, such as Dynatrace.
» Larger vector of attack – must invest in SIEM, CASB, PDP, and other
third party tools to maintain safety and data governance.
» Product owners must be willing to invest in their infrastructure and
long term speed to market.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency Docker Conclusion
Summary of Impact
Business Unit Impact
PMO/ProductO
wners
As product owners, they will be able to have faster release cycles in the long
term, but the initial learning curve within teams will delay their deployments.
QA They will have to automate their tests because the impact could be
downstream. In addition, each version of the API has to have its own unique
test since you do not upgrade microservices, rather you simply deploy a new
one.
Infrastructure The will have to become part of the sprints.
Operations They will have to become part of the sprints for new project developments that
involve APIs or web apps.
Info Sec Their team has a larger vector of attack to cover.
Desktop
Support
Not affected.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Microservices – Difficult to Manage?
A 12-factor app inherently uses microservices. What are microservices
and are they something we can manage?
“Death Star” Architecture Diagrams
Netflix Gilt Groupe (12 of 450) Twitter
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
API Management
• Access to APIs will be controlled using
Azure AD authentication.
• API gateway serves as the linking point for
all services (internal + external).
• API management platform integrates with
our continuous integration infrastructure.
• Developer portal serves as a single point
of interaction across all developers to.
access/understand/develop/deploy APIs.
• Mulesoft serves as the API Development
and Orchestration Platform.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Internal - First App (Avoka),
(Salesforce)
Partners – Alkami.. Others!
Public - Member or any third party developed–
Rate Lookup, Branch Locations, Products
API
Execution
Business Friendly Micro-Services (REST)
Orchestration to Tie Multiple Micro-
Services
Exception Handling
Mapping to Downstream End Points
Security – Access, Authentication, Certification, Monitoring
Standards Conformation DocumentationDiscovery Monetization
API Monitoring
API
Management
Code Management
Jenkins
Backlog
Core/Block
Chain
Lending Mortgage Products Analytics ……..
Can be anywhere
On Prem, Cloud,
Hosted, etc.
Example Conceptual Architecture of API-Driven FI
External Services
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Conceptual Microservices Architecture
SPA &
Mobile
App
Mobile
App
Backends for Frontends
Microservices for mobile
Microservices for SPA
RDB
Remote
Service
NoSQL
Strangler
API Gateway
GatewayRouting
&Aggregation
Microservice
Ambassad
or
Sidecar
Anti-corruption Layer
Legacy System RDB
Microservice
Ambassad
or
Sidecar
Microservice
Ambassad
or
Sidecar
Gateway
Offloading
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Microservices Architecture Example
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Mobile
App
AVOKA
API
Gateway
Firewall
CASB SIEM
Other APIs
Load Balanced
Core API Services
Ambassado
r
Azure Function/
Azure Event Grid
For MQ Processing
App Service
Logic App
Policy Decision
Point (PDP)
XACML
API FAÇADE Anti-Corruption Layer
Legacy Technology
(Jack Henry Symitar)
SPLUNK
Azure ASE
ILB
Ambassad
or
P2P
AZURE
ASE
ILB
Ambassador
Backend
for
Frontend
NoSQL/
SQL Server
WAF
Typical 3-Tier Architecture
Presentation Tier
The top-most level of the app is the UI. The main function of
the interface is to translate tasks and results to something
that the user can understand.
Logic Tier
This layer coordinates the app, processes commands, makes
logical decisions and evaluations, and performs calculations.
It also moves and processes data between the two
surrounding layers.
Data Tier
In this layer, information is stored and retrieved from a
database or file system. The information is then passed back
to the logic tier for processing, and then eventually back to
the user.
>GET SALES
TOTAL
>GET SALES
TOTAL
4 TOTAL
SALES
Get list of
all sales
made last
year
DatabaseStorage
Add all sales
together
Query
Sale 1
Sale 2
Sale 3
Sale 4
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Hexagonal Architecture
Application
HTML5 App
Test Agent
REST
Adapter
SOAP
Adapter
TEST
Adapter
EI
Adapter
MQ
Adapter
SQL
Adapter
NoSQL
Adapter
Environme
nt
Adapter
ERP
CRM
DOC
s
File Source
Adapter
Enterprise Integration
Web Services
Database
Configuration
Messaging Queue
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Example App Built for Speed
Application Services (Gateway/Edge Svc)
Read Model Microservice
UI Request (HTTP)
Redis
Commands & Queries
SQL Server
Domain Microservice
RabbitMQ
Commands Queries
Events Domain Events
Precomputed
Results
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Requirement
Codebase
Production
Staging
Developer 1
Developer 2
Deploys
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Solution
Developer
GitHub
Team City
Code Coverage
+ TDD
Git Push
GitHub Pull
Request Review
Pass Code
Review?
Merge Master/
Staging/QA/Dev
Yes
Azure DevOps
Build
No
Trigger
Prod
Environment
Staging
Environment
QA
Environment
Dev
Environment
Communicates
with
Pass
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Dependencies
 Requirement
A twelve-factor app that never relies on the implicit existence of system-wide packages. It
declares all dependencies, completely and exactly, via a dependency declaration manifest.
 Solution
• NuGet Server + NPM
• NuGet Gallery is the central package repository used by all package authors and consumers.
• NPM is the package manager for JavaScript and the world’s largest software registry; it can be
used to discover packages of reusable code and assemble them in powerful new ways.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Present
» Copy NuGet packages to a
local share and have
everyone read off of that.
» We have a private
repository bldsrvr-
dev02NuGet
Repository for all our
NuGet packages. By
configuring the NuGet
Package Manager within VS
we gain access.
Alternative
» Obtain a license for myget and
store the nugget packages
there.
Dependencies: NuGet Server
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Requirement
An app’s config is
everything that is likely
to vary between
deployment
environments (staging,
production, developer,
etc.)
Solution
» .NET projects use:
 web.config
 machine.config
 project.json
(appsettings.jso
n)
Configuration
Anything that varies per environment:
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Backing Services
» Resources can be attached and detached to deploys at
will.
» For example, if the app’s database is misbehaving due to
a hardware issue, the app’s administrator might spin up a
new database server restored from a recent backup.
» The current production database could be detached, and
the new database attached—all without any code
changes.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Concurrency
Applications sometimes need to run:
• Batch jobs
• Emails
• Workflows
• Other complex logic
A good UX would not wait for all the
services to be completed for the user
to continue interacting with the app.
What is
concurrency in the
context of a twelve
factor app?
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Logic Apps
Logic Apps is a fully managed iPaaS (integration Platform as a Service) that handles hosting, scalability,
availability, and management—so developers don’t have to. It can scale up automatically to meet
demand.
Key features:
• Save time by designing complex processes using easy to understand design tools.
• Seamlessly implement patterns and workflows that would otherwise be difficult to implement
in code.
• Get started quickly from templates.
• Connectors to many cloud apps, such as Salesforce, FTP, SQL Server, SharePoint, etc.
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Logic Apps /App Service
When a record is updated
Transform XML
Register in Datamart
If record requires action
Add to Service Bus topic
If Yes If No
Create a new record
Slack – Post Message
Execute stored procedure
Add an action Add an action
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Disposability
 Requirement
Deploying new code should not
affect production services
startup times.
 Solution
App Service allows you to have the
right amount of resources running to
handle the load on an app. It allows
you to add resources to handle
increases in load and also save
money by removing resources that
are sitting idle.
Max = 5
VM VM
Min = 2
3 currently running
VM VM VM
+/- VMs as needed
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Infrastructure
» Training
» Operations Tools
 Azure Container
Registry
 Security
 Management
Monitoring and
logging
Developers
» Learn a
microservices
approach
» Learn .NET core
and avoid IIS
deployments
Training
» Continuous
» Frequent
» Bring experts on
site to teach and
evaluate practices
Change
Management
» Change in culture
» Change in team
structures
» Product owner has
to understand the
long term
investment and
that dev will slow
down at first.
Ok, I’m Sold – Let’s Begin Today…
First, let’s consider the following:
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
DevOps
Developers must work with Operations from the
start of the project and they have to be included
during the sprint planning as part of the ongoing
work to devise the architecture and deploy it!
When you have developers working alongside
Operations, you get DevOps!
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency Docker Conclusion
Change + Visual Management – Part I
Communicating/disseminating our plan:
• Roadmap
 How are we going to get from our current state to our future state?
 What are our requirements and assumptions?
 How does our future state link to our business and quality values?
 How do we measure success?
• Elevator speech – consistent messaging/signaling during scrums and meetings
 What did we agree on and how did we make this decision?
 What does the future state look like?
 Why are we making the change?
 How does everyone fit into the planning and execution of the future state?
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Change + Visual Management – Part II
Tracking our progress and keeping ourselves accountable using visual management
tools:
• SWOT analysis/pre-assessment
• SMART objectives and action items
• Desired outcome
• Tool, service, framework, or process to achieve the item
• Responsible parties (RASCI matrix)
• Key milestones
• Due dates
• Measures of success
Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
Thank You!
Questions/Comments?
Jose.colon@nativoplus.com

More Related Content

What's hot

Scaling Integration
Scaling IntegrationScaling Integration
Scaling Integration
Kim Clark
 
Whitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest MindsWhitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest Minds
Happiest Minds Technologies
 
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Jeffrey Nunn
 
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected BusinessWSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
WSO2
 
Easily Create Scalable Automation using Selenium
Easily Create Scalable Automation using SeleniumEasily Create Scalable Automation using Selenium
Easily Create Scalable Automation using Selenium
Micro Focus
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
Rohit Kelapure
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
Siva Rama Krishna Chunduru
 
[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane
Williams Ould-Bouzid
 
SaaS Testing Overview - Foundation
SaaS Testing Overview - FoundationSaaS Testing Overview - Foundation
SaaS Testing Overview - Foundation
Ram Garg
 
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
VMware Tanzu
 
Cloud Foundry Networking with VMware NSX
Cloud Foundry Networking with VMware NSXCloud Foundry Networking with VMware NSX
Cloud Foundry Networking with VMware NSX
VMware Tanzu
 
Virtualization In Software Testing
Virtualization In Software TestingVirtualization In Software Testing
Virtualization In Software Testing
Colloquium
 
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
Prolifics
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
VMware Tanzu
 
Soa12c launch 1 overview cr
Soa12c launch 1 overview crSoa12c launch 1 overview cr
Soa12c launch 1 overview cr
Vasily Demin
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
Dev_Events
 
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
Codemotion
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
Paula Peña (She, Her, Hers)
 
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud FoundryReimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
VMware Tanzu
 

What's hot (20)

Scaling Integration
Scaling IntegrationScaling Integration
Scaling Integration
 
Whitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest MindsWhitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest Minds
 
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
 
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected BusinessWSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
WSO2Con EU 2015: Keynote - System of Systems - Building a Connected Business
 
Easily Create Scalable Automation using Selenium
Easily Create Scalable Automation using SeleniumEasily Create Scalable Automation using Selenium
Easily Create Scalable Automation using Selenium
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
 
[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane
 
SaaS Testing Overview - Foundation
SaaS Testing Overview - FoundationSaaS Testing Overview - Foundation
SaaS Testing Overview - Foundation
 
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
 
Cloud Foundry Networking with VMware NSX
Cloud Foundry Networking with VMware NSXCloud Foundry Networking with VMware NSX
Cloud Foundry Networking with VMware NSX
 
Virtualization In Software Testing
Virtualization In Software TestingVirtualization In Software Testing
Virtualization In Software Testing
 
Service Virtualization
Service VirtualizationService Virtualization
Service Virtualization
 
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
Integrating IBM PureApplication System and IBM UrbanCode Deploy: A GE Capital...
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
 
Soa12c launch 1 overview cr
Soa12c launch 1 overview crSoa12c launch 1 overview cr
Soa12c launch 1 overview cr
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
 
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
Domenico Maracci, Stefano Sali - Secure Continuous Delivery - Sicurezza e Dev...
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
 
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud FoundryReimagining Customer Experiences Utilizing Pivotal Cloud Foundry
Reimagining Customer Experiences Utilizing Pivotal Cloud Foundry
 

Similar to Twelve factor-app

Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
Apigee | Google Cloud
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
Kelvin Yeung
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
DevOps.com
 
Using PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in ProductionUsing PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in Production
Apigee | Google Cloud
 
Microservice Best Practices The 8020 Way.pdf
Microservice Best Practices The 8020 Way.pdfMicroservice Best Practices The 8020 Way.pdf
Microservice Best Practices The 8020 Way.pdf
Simform
 
7 steps to Enterprise PaaS
7 steps to Enterprise PaaS7 steps to Enterprise PaaS
7 steps to Enterprise PaaS
VMware vFabric
 
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar VenugopalanAgile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
India Scrum Enthusiasts Community
 
Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integration
BizTalk360
 
Microservices oracle-meetup
Microservices oracle-meetupMicroservices oracle-meetup
Microservices oracle-meetup
Nitu Parimi
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
Oracle Korea
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
Inho Kang
 
Service Virtualization + API Management together
Service Virtualization + API Management togetherService Virtualization + API Management together
Service Virtualization + API Management together
Pablo Gutierrez
 
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
Opennaru, inc.
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
Inho Kang
 
On-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization LifecycleOn-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization Lifecycle
Skytap Cloud
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
Matt Ray
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
Ugo Landini
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...
Jesper Nordström
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...
3gamma
 

Similar to Twelve factor-app (20)

Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Using PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in ProductionUsing PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in Production
 
Resume
ResumeResume
Resume
 
Microservice Best Practices The 8020 Way.pdf
Microservice Best Practices The 8020 Way.pdfMicroservice Best Practices The 8020 Way.pdf
Microservice Best Practices The 8020 Way.pdf
 
7 steps to Enterprise PaaS
7 steps to Enterprise PaaS7 steps to Enterprise PaaS
7 steps to Enterprise PaaS
 
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar VenugopalanAgile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
 
Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integration
 
Microservices oracle-meetup
Microservices oracle-meetupMicroservices oracle-meetup
Microservices oracle-meetup
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Service Virtualization + API Management together
Service Virtualization + API Management togetherService Virtualization + API Management together
Service Virtualization + API Management together
 
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
400.RED HAT OPENSHIFT APPLICATION RUNTIMES(RHOAR) 를 활용한 Cloud Native App 전환
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
 
On-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization LifecycleOn-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization Lifecycle
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...
 

Recently uploaded

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Twelve factor-app

  • 1. Twelve-Factor App + Middleware Build the Future and Prevent Outages José Javier Vélez-Colón
  • 3. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application. It gained popularity in the 1980s as a solution to the problem of how to link newer applications to older legacy systems, although the term had been in use since 1968.[2] Wikipedia! Where is the middleware depicted in the picture?
  • 4. Lets be more specific Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 5. Who offers middleware and can you avoid it? Do it yourself (DIY) – App Service/IIS Logic Apps/Mulesoft/hundreds of other vendors Features Send Mail Yes Yes Connect to Symitar Yes Yes Connect to Temenos Yes No Many other features Always yes… Maybe…. Points to take home • It is nearly impossible to avoid middleware in a line of business application. I had trouble even finding a ficticious scenario where there would not be middleware…I imagined it would involved an Igloo and Antarctica. • There is no silver bullet solution for all projects. Each of them have to evaluated individually and the right architecture should be decided per project basis. • Use guardrails (best practices to guide the architectural decision but don’t push a product). • Middleware is a pipeline of how data is transmitted from point A to point B and is not a product
  • 6. What is a Twelve-Factor App? A 12-Factor app is a web app that follows the prescriptive methodology conceived by the Heroku platform as a service (PaaS) for cloud applications. Benefits include: Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion Scalability Resiliency Continuous Delivery Maintainability Information Security
  • 7. + Pros » Faster software delivery. » Better security. » Team unity and understanding of each other’s roles. » Team works as a unit to succeed and has ownership of the overall project success. » Microservices do not require teams to rewrite the whole app if they want to add new features. » Smaller codebases make maintenance easier and faster; saving a lot of development effort and time, thus increasing overall productivity. » Configuration drift is reduced. » The parts of an app can be scaled separately and are easier to deploy. » Reduce outages – uptime! Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 8. - Cons » Very complicated –need to bring in experienced staff to handle the complexity. » Most invest heavily in monitoring tools, such as Dynatrace. » Larger vector of attack – must invest in SIEM, CASB, PDP, and other third party tools to maintain safety and data governance. » Product owners must be willing to invest in their infrastructure and long term speed to market. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency Docker Conclusion
  • 9. Summary of Impact Business Unit Impact PMO/ProductO wners As product owners, they will be able to have faster release cycles in the long term, but the initial learning curve within teams will delay their deployments. QA They will have to automate their tests because the impact could be downstream. In addition, each version of the API has to have its own unique test since you do not upgrade microservices, rather you simply deploy a new one. Infrastructure The will have to become part of the sprints. Operations They will have to become part of the sprints for new project developments that involve APIs or web apps. Info Sec Their team has a larger vector of attack to cover. Desktop Support Not affected. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 10. Microservices – Difficult to Manage? A 12-factor app inherently uses microservices. What are microservices and are they something we can manage? “Death Star” Architecture Diagrams Netflix Gilt Groupe (12 of 450) Twitter Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 11. API Management • Access to APIs will be controlled using Azure AD authentication. • API gateway serves as the linking point for all services (internal + external). • API management platform integrates with our continuous integration infrastructure. • Developer portal serves as a single point of interaction across all developers to. access/understand/develop/deploy APIs. • Mulesoft serves as the API Development and Orchestration Platform. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 12. Internal - First App (Avoka), (Salesforce) Partners – Alkami.. Others! Public - Member or any third party developed– Rate Lookup, Branch Locations, Products API Execution Business Friendly Micro-Services (REST) Orchestration to Tie Multiple Micro- Services Exception Handling Mapping to Downstream End Points Security – Access, Authentication, Certification, Monitoring Standards Conformation DocumentationDiscovery Monetization API Monitoring API Management Code Management Jenkins Backlog Core/Block Chain Lending Mortgage Products Analytics …….. Can be anywhere On Prem, Cloud, Hosted, etc. Example Conceptual Architecture of API-Driven FI External Services Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 13. Conceptual Microservices Architecture SPA & Mobile App Mobile App Backends for Frontends Microservices for mobile Microservices for SPA RDB Remote Service NoSQL Strangler API Gateway GatewayRouting &Aggregation Microservice Ambassad or Sidecar Anti-corruption Layer Legacy System RDB Microservice Ambassad or Sidecar Microservice Ambassad or Sidecar Gateway Offloading Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 14. Microservices Architecture Example Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion Mobile App AVOKA API Gateway Firewall CASB SIEM Other APIs Load Balanced Core API Services Ambassado r Azure Function/ Azure Event Grid For MQ Processing App Service Logic App Policy Decision Point (PDP) XACML API FAÇADE Anti-Corruption Layer Legacy Technology (Jack Henry Symitar) SPLUNK Azure ASE ILB Ambassad or P2P AZURE ASE ILB Ambassador Backend for Frontend NoSQL/ SQL Server WAF
  • 15. Typical 3-Tier Architecture Presentation Tier The top-most level of the app is the UI. The main function of the interface is to translate tasks and results to something that the user can understand. Logic Tier This layer coordinates the app, processes commands, makes logical decisions and evaluations, and performs calculations. It also moves and processes data between the two surrounding layers. Data Tier In this layer, information is stored and retrieved from a database or file system. The information is then passed back to the logic tier for processing, and then eventually back to the user. >GET SALES TOTAL >GET SALES TOTAL 4 TOTAL SALES Get list of all sales made last year DatabaseStorage Add all sales together Query Sale 1 Sale 2 Sale 3 Sale 4 Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 16. Hexagonal Architecture Application HTML5 App Test Agent REST Adapter SOAP Adapter TEST Adapter EI Adapter MQ Adapter SQL Adapter NoSQL Adapter Environme nt Adapter ERP CRM DOC s File Source Adapter Enterprise Integration Web Services Database Configuration Messaging Queue Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 17. Example App Built for Speed Application Services (Gateway/Edge Svc) Read Model Microservice UI Request (HTTP) Redis Commands & Queries SQL Server Domain Microservice RabbitMQ Commands Queries Events Domain Events Precomputed Results Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 18. Requirement Codebase Production Staging Developer 1 Developer 2 Deploys Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 19. Solution Developer GitHub Team City Code Coverage + TDD Git Push GitHub Pull Request Review Pass Code Review? Merge Master/ Staging/QA/Dev Yes Azure DevOps Build No Trigger Prod Environment Staging Environment QA Environment Dev Environment Communicates with Pass Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 20. Dependencies  Requirement A twelve-factor app that never relies on the implicit existence of system-wide packages. It declares all dependencies, completely and exactly, via a dependency declaration manifest.  Solution • NuGet Server + NPM • NuGet Gallery is the central package repository used by all package authors and consumers. • NPM is the package manager for JavaScript and the world’s largest software registry; it can be used to discover packages of reusable code and assemble them in powerful new ways. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 21. Present » Copy NuGet packages to a local share and have everyone read off of that. » We have a private repository bldsrvr- dev02NuGet Repository for all our NuGet packages. By configuring the NuGet Package Manager within VS we gain access. Alternative » Obtain a license for myget and store the nugget packages there. Dependencies: NuGet Server Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 22. Requirement An app’s config is everything that is likely to vary between deployment environments (staging, production, developer, etc.) Solution » .NET projects use:  web.config  machine.config  project.json (appsettings.jso n) Configuration Anything that varies per environment: Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 23. Backing Services » Resources can be attached and detached to deploys at will. » For example, if the app’s database is misbehaving due to a hardware issue, the app’s administrator might spin up a new database server restored from a recent backup. » The current production database could be detached, and the new database attached—all without any code changes. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 24. Concurrency Applications sometimes need to run: • Batch jobs • Emails • Workflows • Other complex logic A good UX would not wait for all the services to be completed for the user to continue interacting with the app. What is concurrency in the context of a twelve factor app? Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 25. Logic Apps Logic Apps is a fully managed iPaaS (integration Platform as a Service) that handles hosting, scalability, availability, and management—so developers don’t have to. It can scale up automatically to meet demand. Key features: • Save time by designing complex processes using easy to understand design tools. • Seamlessly implement patterns and workflows that would otherwise be difficult to implement in code. • Get started quickly from templates. • Connectors to many cloud apps, such as Salesforce, FTP, SQL Server, SharePoint, etc. Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 26. Logic Apps /App Service When a record is updated Transform XML Register in Datamart If record requires action Add to Service Bus topic If Yes If No Create a new record Slack – Post Message Execute stored procedure Add an action Add an action Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 27. Disposability  Requirement Deploying new code should not affect production services startup times.  Solution App Service allows you to have the right amount of resources running to handle the load on an app. It allows you to add resources to handle increases in load and also save money by removing resources that are sitting idle. Max = 5 VM VM Min = 2 3 currently running VM VM VM +/- VMs as needed Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 28. Infrastructure » Training » Operations Tools  Azure Container Registry  Security  Management Monitoring and logging Developers » Learn a microservices approach » Learn .NET core and avoid IIS deployments Training » Continuous » Frequent » Bring experts on site to teach and evaluate practices Change Management » Change in culture » Change in team structures » Product owner has to understand the long term investment and that dev will slow down at first. Ok, I’m Sold – Let’s Begin Today… First, let’s consider the following: Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 29. DevOps Developers must work with Operations from the start of the project and they have to be included during the sprint planning as part of the ongoing work to devise the architecture and deploy it! When you have developers working alongside Operations, you get DevOps! Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency Docker Conclusion
  • 30. Change + Visual Management – Part I Communicating/disseminating our plan: • Roadmap  How are we going to get from our current state to our future state?  What are our requirements and assumptions?  How does our future state link to our business and quality values?  How do we measure success? • Elevator speech – consistent messaging/signaling during scrums and meetings  What did we agree on and how did we make this decision?  What does the future state look like?  Why are we making the change?  How does everyone fit into the planning and execution of the future state? Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion
  • 31. Change + Visual Management – Part II Tracking our progress and keeping ourselves accountable using visual management tools: • SWOT analysis/pre-assessment • SMART objectives and action items • Desired outcome • Tool, service, framework, or process to achieve the item • Responsible parties (RASCI matrix) • Key milestones • Due dates • Measures of success Overview Microservices Shifting Architecture Continuous Integration, Delivery Concurrency App Service Conclusion

Editor's Notes

  1. Middleware is the green section. The bottom part – Presentation Logic Tier, Business Logic Tier and Data Access Tier explains the responsibility of Middleware.
  2. A set of recommendations for how to build software as service.
  3. Here are some of the predictable challenges.
  4. What you’re looking at are the microservices architecture for 3 different companies. The Netflix death star is what powers Netflix today. The reason why millions of people can watch high-bandwidth, high-quality movies is because of this microservices architecture. The same applies for Gilt and Twitter.
  5. Because of how the 12-factor app is architected, it will be very difficult to have a successful 12-factor app without an API management platform. That’s why we are going to discuss what it is and how it can help.
  6. The main purpose of this slide is to give a high-level overview of the role of an API management platform.
  7. What we’re seeing here is a conceptual strategy for how to implement an API management platform and at the same time have services that are from before the adoption of the API management framework. The main idea is that the strangler is the as-is architecture and the API gateway is where newer APIs are deployed, where APIs that are stranglers are eventually migrated to. The ambassadors are reusable logic that is deployed alongside each microservices, whereas a sidecar might be logic that pertains to that specific microservice. The microservice is the definition of the API.
  8. Now, I have taken the previous slide showing a conceptual architecture and this one is meant to represent an example closer to home.
  9. Traditionally 3-tier architecture have 3 layers: The presentation, which is HTML or XAML. The logic tier, which is middleware. And, the data tier, which comprise the databases.
  10. The core of a 12-factor app is a hexagonal architecture. It is self-hosted and communicates with other components through port-binding. Its configuration does not reside in the application itself, but externally. And, it’s data storage is swappable without affecting the app. This can be achieved through a microservices architecture.
  11. Here is an example of how a 12-factor app may segregate its logic for reading and writing. Now, this particular architecture is built for speed. So over here, we have the API gateway, which segregates, reads, and writes. If it is a write, it goes through a middleware and eventually is saved into SQL Server. At the same time, it is saved into a message queue and eventually the microservice is a subscriber of that topic and passes the results to Redis. When a read operation occurs, it is routed to the read microservice, in which case, it utilizes Redis for an extremely fast experience and dataset results. This is due to Redis reads being much faster than relational databases.
  12. A 12-factor app can be deployed to any environment readily and reliably.
  13. A solution that was proposed and accepted recently by FTFCU utilizes Octopus Deploy, Team City, and GitHub for continuous integration and continuous delivery. This helps us achieve one of the fundamental goals of a 12-factor application.
  14. A 12-factor app declares all of its dependencies within itself. This can be achieved through a NuGet service and the utilization of NPM packages.
  15. Today we are storing NuGet packages in a shared drive. However, in my opinion, a more compelling alternative is to utilize the Team City NuGet repository to host the packages.
  16. In order to achieve the 12-factor app desire to separate the configuration from the application, once again, Octopus deploy can help us store and orchestrate our configurations for each environment; that is, dev, QA, staging, and production, automatically.
  17. A 12-factor application requires resources, such as databases, be detached and re-attached without code changes. But, let’s think about a scenario where a database is in a different server and therefore, your connections strings that are controlled, as mentioned before, have to point to a generic end point. This can be achieved through an Octopus deploy step to update the configurations.
  18. Many applications today require complex logic in the background to occur, such that simply asking a potential user of the application to wait until those processes are completed would result in an undesirable user experience. A common scenario for this type of process is a credit card application, where a decision may take sometimes hours or even days to complete.
  19. Currently, we solve this problem by utilizing BizTalk. An alternative approach is to utilize Azure Logic Apps. Logic Apps can connect to on-prem resources, as well as to any cloud providers, including our own cloud infrastructure. It also provides common connectors that expedite communication between many cloud apps, such as Salesforce, FTP, SQL Server, SharePoint, Twitter, etc.
  20. Here is an example of what a Logic App look like within Azure.
  21. Another requirement of a 12-factor app is that it can be scaled up or down. Docker is a platform that facilitates the scaling of the 12-factor application. For more info, see: https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-overview-autoscale
  22. So even though we might want to start this today, there are a few considerations to explore: We need the tooling Training for both the developers, infrastructure, security, and CBA More importantly, it’s about changing the culture from silos to teams that are together responsible for the success of a 12-factor app and the microservices that power it.
  23. This vision can not be achieved in a silo and this is what we are going to do as an organization. We, IT and the business, must join together to address these questions. Enterprise architecture can guide the organization through a path to success, but can not alone dictate the solution to these concerns.
  24. SMART (specific, measurable, achievable, realistic, timebound) SWOT (strengths, weaknesses, opportunities, threats)