SlideShare ist ein Scribd-Unternehmen logo
1 von 26
The Twelve-Factor App
...and beyond
So what are the Twelve Factors?
The Twelve Factors aren’t rules set in stone.
They are not strictly necessary to follow to achieve the same result.
Same as Patterns or Refactorings they are guidelines and approaches that one can follow to
make your software scalable and future-proof.
● Applicable to any programming language with any backends
● Suitable for all sizes of apps and facilitates organic growth
● Facilitates architecture and clean contract between infrastructure, runtime and
application
● Minimizing the cost of onboarding new developers by using shared approaches,
concepts and terminology
I. Codebase
One codebase tracked in revision control, many
deploys
II. Dependencies
Use dependency management: declare (and fix)
dependencies and resolve them during the build
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless
processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and
graceful shutdown
X. Dev/prod parity
Keep development, staging, and
production as similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off
processes
The Twelve Factors at a glance
Go ahead and use the Twelve Factors
But why?
Non-functional business requirements
● Growth capacity => Scalability
● Time to market => Efficient provisioning and deployment
● Zero downtime (X nines) => Redundancy, Blue-Green deployment
● Business Continuity => Redundancy, Monitoring
What are we talking about
Client
Server
App
Let’s apply some load...
Client
Server
Scalability
Vertical Horizontal
Vertical scalability
Client
Server
...still limited possibilities
Clients
Server
Are there any other solution?...
Clients
Server
Back to square one - apply some load
Client
Server
Horizontal scalability
Client
Load
balancer
Horizontal scalability with elasticity
Load
balancer
VM
VM
VM
VM
Challenges of Horizontal Scalability
So what are the new challenges?
App
State (Session, DB,
Messaging, Caches)
Ephemeral instances - they
come and go - as needed
Provisioning &
Deployment
(Code, Versions,
Runtime, Environment)
Maintenance &
Monitoring
App
App
App
And if that was not enough of a challenge….
State (Session, DB,
Messaging, Caches)
Ephemeral instances
Provisioning & Deployment
(Code, Versions, Runtime,
Environment)
Maintenance &
Monitoring
State (Session, DB,
Messaging, Caches)
Ephemeral instances - they come and
go - as needed
Provisioning & Deployment
(Code, Versions, Runtime,
Environment)
Maintenance &
Monitoring
State (Session, DB,
Messaging, Caches)
Ephemeral instances
Provisioning & Deployment
(Code, Versions, Runtime,
Environment)
Maintenance &
Monitoring
Dev
Test
Prod
Aspects of the Twelve Factors
Building and Releasing
Deployment and Running
Environment provisioning
Operations and Monitoring
Architecture and State
Building and Releasing
I. Codebase
One codebase tracked in revision control, many deploys
One-to-one correlation between the codebase and the app
II. Dependencies
Use dependency management: declare dependencies and
resolve them during the build
Fix dependency versions and prevent dependency leaks
V. Build, release, run
Strictly separate build and run stages
Environment provisioning
IX. Disposability
Maximize robustness with fast
startup and graceful shutdown
III. Config
Store config in the environment
X. Dev/prod parity
Keep development, staging, and
production as similar as possible
Deployment and Running
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more
stateless and share-nothing processes
VII. Port binding
Export services via port binding
No containers, self-contained
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast
startup and graceful shutdown
XII. Admin processes
Run admin/management tasks as
one-off processes.
Same codebase, same release,
same environment, same config
Architecture and State
III. Config
Store config in the environment
IV. Backing services
Treat backing services as
attached resources
VI. Processes
Execute the app as one or more
stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast
startup and graceful shutdown
Operations and Monitoring
XI. Logs
Treat logs as event streams
IV. Backing services
Treat backing services as attached resources
IX. Disposability
Maximize robustness with fast startup and graceful
shutdown
Whoooh.... Anything else?
● DevOps
● Containerization
● Microservices
● Zero downtime updates
● Blue/green deployment
● Config server
● CI/CD
● Circuit Breakers
● 15 factors
● Infrastructure as a code
● Cross-service traceability
● Much more...
Yaroslav Novytskyy
www.linkedin.com/in/ynovytskyy
@ynovytskyy
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

CF Push for Beginners
CF Push for BeginnersCF Push for Beginners
CF Push for BeginnersVMware Tanzu
 
Beyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native ApplicationsBeyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native ApplicationsContainer Solutions
 
Mastering DevOps Automation: Webinar
Mastering DevOps Automation: WebinarMastering DevOps Automation: Webinar
Mastering DevOps Automation: WebinarClaudia Ring
 
Cloud Foundry at VMware
Cloud Foundry at VMwareCloud Foundry at VMware
Cloud Foundry at VMwarePlatform CF
 
Software Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and TradeoffsSoftware Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and TradeoffsVMware Tanzu
 
Deveo
DeveoDeveo
DeveoDeveo
 
Reducing release cycles with Visual Studio: a DevOps perspective
Reducing release cycles with Visual Studio: a DevOps perspectiveReducing release cycles with Visual Studio: a DevOps perspective
Reducing release cycles with Visual Studio: a DevOps perspectiveInCycle Software
 
VMware Private Clouds: Charting a path to success
VMware Private Clouds: Charting a path to successVMware Private Clouds: Charting a path to success
VMware Private Clouds: Charting a path to successPlatform9
 
Overcome DevOps Adoption Barriers to Accelerate Software Delivary
Overcome DevOps Adoption Barriers to Accelerate Software DelivaryOvercome DevOps Adoption Barriers to Accelerate Software Delivary
Overcome DevOps Adoption Barriers to Accelerate Software DelivaryWSO2
 
Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...mfrancis
 
CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015Kevin Gilpin
 
Keynote upload
Keynote uploadKeynote upload
Keynote uploadKen Owens
 
XL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release AutomationXL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release AutomationXebiaLabs
 
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campoLeandro Prado
 
Measuring ROI and Driving Adoption of TAS in an Enterprise
Measuring ROI and Driving Adoption of TAS in an EnterpriseMeasuring ROI and Driving Adoption of TAS in an Enterprise
Measuring ROI and Driving Adoption of TAS in an EnterpriseVMware Tanzu
 
CloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretCloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretChris Purrington
 
Customer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous DeliveryCustomer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous DeliveryXebiaLabs
 

Was ist angesagt? (20)

12 factor app
12 factor app12 factor app
12 factor app
 
CF Push for Beginners
CF Push for BeginnersCF Push for Beginners
CF Push for Beginners
 
Beyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native ApplicationsBeyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native Applications
 
Mastering DevOps Automation: Webinar
Mastering DevOps Automation: WebinarMastering DevOps Automation: Webinar
Mastering DevOps Automation: Webinar
 
Cloud Foundry at VMware
Cloud Foundry at VMwareCloud Foundry at VMware
Cloud Foundry at VMware
 
Software Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and TradeoffsSoftware Architecture: A Story About Business Value and Tradeoffs
Software Architecture: A Story About Business Value and Tradeoffs
 
Deveo
DeveoDeveo
Deveo
 
Reducing release cycles with Visual Studio: a DevOps perspective
Reducing release cycles with Visual Studio: a DevOps perspectiveReducing release cycles with Visual Studio: a DevOps perspective
Reducing release cycles with Visual Studio: a DevOps perspective
 
VMware Private Clouds: Charting a path to success
VMware Private Clouds: Charting a path to successVMware Private Clouds: Charting a path to success
VMware Private Clouds: Charting a path to success
 
Overcome DevOps Adoption Barriers to Accelerate Software Delivary
Overcome DevOps Adoption Barriers to Accelerate Software DelivaryOvercome DevOps Adoption Barriers to Accelerate Software Delivary
Overcome DevOps Adoption Barriers to Accelerate Software Delivary
 
Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...
 
CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015CI - A Refactor Story - Boston DevOps Meetup March 2015
CI - A Refactor Story - Boston DevOps Meetup March 2015
 
Keynote upload
Keynote uploadKeynote upload
Keynote upload
 
Cmsascode
CmsascodeCmsascode
Cmsascode
 
XL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release AutomationXL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release Automation
 
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo
[TDC 2016] - DevOps - Um novo caminho com Powershell DSC, dicas de campo
 
Xebia deploy it
Xebia deploy itXebia deploy it
Xebia deploy it
 
Measuring ROI and Driving Adoption of TAS in an Enterprise
Measuring ROI and Driving Adoption of TAS in an EnterpriseMeasuring ROI and Driving Adoption of TAS in an Enterprise
Measuring ROI and Driving Adoption of TAS in an Enterprise
 
CloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretCloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen Garret
 
Customer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous DeliveryCustomer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous Delivery
 

Ähnlich wie The Twelve-Factor App

The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor appRavi Okade
 
12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana12 Steps to DevOps Nirvana
12 Steps to DevOps NirvanaBhavin Javia
 
DTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionDTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionSanjeev Sharma
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit sessionSanjeev Sharma
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud
 
EvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOpsEvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOpsLarry McDonough
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeRosalind Radcliffe
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Animesh Singh
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureSigfred Balatan Jr.
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsIBM UrbanCode Products
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor AppPablo Fullana
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsXebiaLabs
 
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...DigitalOcean
 
Practical DevOps in a Hybrid World
Practical DevOps in a Hybrid World Practical DevOps in a Hybrid World
Practical DevOps in a Hybrid World Dev_Events
 
Best of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentationBest of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentationLahav Savir
 
Continuous Delivery for cloud - scenarios and scope
Continuous Delivery for cloud  - scenarios and scopeContinuous Delivery for cloud  - scenarios and scope
Continuous Delivery for cloud - scenarios and scopeSanjeev Sharma
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Felipe Freire
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 

Ähnlich wie The Twelve-Factor App (20)

The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana
 
DTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionDTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect Session
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps Accelerators
 
Evans Data DevRel 2016
Evans Data DevRel 2016 Evans Data DevRel 2016
Evans Data DevRel 2016
 
EvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOpsEvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOps
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframe
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor App
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale Organizations
 
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
 
Practical DevOps in a Hybrid World
Practical DevOps in a Hybrid World Practical DevOps in a Hybrid World
Practical DevOps in a Hybrid World
 
Best of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentationBest of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentation
 
Continuous Delivery for cloud - scenarios and scope
Continuous Delivery for cloud  - scenarios and scopeContinuous Delivery for cloud  - scenarios and scope
Continuous Delivery for cloud - scenarios and scope
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 

Kürzlich hochgeladen

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

The Twelve-Factor App

  • 2. So what are the Twelve Factors? The Twelve Factors aren’t rules set in stone. They are not strictly necessary to follow to achieve the same result. Same as Patterns or Refactorings they are guidelines and approaches that one can follow to make your software scalable and future-proof. ● Applicable to any programming language with any backends ● Suitable for all sizes of apps and facilitates organic growth ● Facilitates architecture and clean contract between infrastructure, runtime and application ● Minimizing the cost of onboarding new developers by using shared approaches, concepts and terminology
  • 3. I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Use dependency management: declare (and fix) dependencies and resolve them during the build III. Config Store config in the environment IV. Backing services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes The Twelve Factors at a glance
  • 4. Go ahead and use the Twelve Factors
  • 6. Non-functional business requirements ● Growth capacity => Scalability ● Time to market => Efficient provisioning and deployment ● Zero downtime (X nines) => Redundancy, Blue-Green deployment ● Business Continuity => Redundancy, Monitoring
  • 7. What are we talking about Client Server App
  • 8. Let’s apply some load... Client Server
  • 12. Are there any other solution?... Clients Server
  • 13. Back to square one - apply some load Client Server
  • 15. Horizontal scalability with elasticity Load balancer VM VM VM VM
  • 17. So what are the new challenges? App State (Session, DB, Messaging, Caches) Ephemeral instances - they come and go - as needed Provisioning & Deployment (Code, Versions, Runtime, Environment) Maintenance & Monitoring App App App
  • 18. And if that was not enough of a challenge…. State (Session, DB, Messaging, Caches) Ephemeral instances Provisioning & Deployment (Code, Versions, Runtime, Environment) Maintenance & Monitoring State (Session, DB, Messaging, Caches) Ephemeral instances - they come and go - as needed Provisioning & Deployment (Code, Versions, Runtime, Environment) Maintenance & Monitoring State (Session, DB, Messaging, Caches) Ephemeral instances Provisioning & Deployment (Code, Versions, Runtime, Environment) Maintenance & Monitoring Dev Test Prod
  • 19. Aspects of the Twelve Factors Building and Releasing Deployment and Running Environment provisioning Operations and Monitoring Architecture and State
  • 20. Building and Releasing I. Codebase One codebase tracked in revision control, many deploys One-to-one correlation between the codebase and the app II. Dependencies Use dependency management: declare dependencies and resolve them during the build Fix dependency versions and prevent dependency leaks V. Build, release, run Strictly separate build and run stages
  • 21. Environment provisioning IX. Disposability Maximize robustness with fast startup and graceful shutdown III. Config Store config in the environment X. Dev/prod parity Keep development, staging, and production as similar as possible
  • 22. Deployment and Running V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless and share-nothing processes VII. Port binding Export services via port binding No containers, self-contained VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown XII. Admin processes Run admin/management tasks as one-off processes. Same codebase, same release, same environment, same config
  • 23. Architecture and State III. Config Store config in the environment IV. Backing services Treat backing services as attached resources VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown
  • 24. Operations and Monitoring XI. Logs Treat logs as event streams IV. Backing services Treat backing services as attached resources IX. Disposability Maximize robustness with fast startup and graceful shutdown
  • 25. Whoooh.... Anything else? ● DevOps ● Containerization ● Microservices ● Zero downtime updates ● Blue/green deployment ● Config server ● CI/CD ● Circuit Breakers ● 15 factors ● Infrastructure as a code ● Cross-service traceability ● Much more...