SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Dernier (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

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...