SlideShare a Scribd company logo
1 of 18
Download to read offline
The Twelve-Factor App
Pablo Fullana - Computing Systems Engineer
pablo.fullana@altoros.com
pablofullana
pablofullana
Pablo Fullana
Computing Systems Engineer (UNS)
Software Engineer
Altoros since 2014
The Twelve-Factor App
The Twelve-Factor App
● Software is many times delivered as SaaS applications
● 12FA is a methodology for building SaaS that:
○ Uses declarative formats for setup automation;
○ Maximizes portability;
○ Enables deployments on cloud platforms;
○ Embraces continuous deployment;
○ Scales up painlessly.
● Not only for Devs or DevOps people...
I. Codebase
One codebase tracked in revision
control, many deploys
All the code resides in a source control system.
Doesn’t matter which one, but there has to be
one.
Importance: Non-negotiable. Everyone does this.
Period.
Be explicit. Never assume dependencies will be
in place on a given machine. No guesswork, state
everything as it needs to be.
Importance: High. Prevents teams from constant
confusion and frustration.
II. Dependencies
Explicitly declare and isolate
dependencies
Store all configuration data in a separate place
from the code, and read in by the code at
runtime.
Importance: Medium. Many people don’t do this,
but don’t be sloppy.
III. Config
Store config in the environment
Reference each service by just an endpoint. Not a
single piece of code should care where these are
actually running.
Importance: High. Is there any reason not to
adhere to this best-practice?
IV. Backing Services
Treat backing services as attached
resources
Build stage deals with the burden, being
managed by developers. Run stage is simple,
battle-tested and just works. Yes, like a charm.
Importance: Conceptual. Defined by used
frameworks and tooling.
V. Build, release, run
Strictly separate build and run
stages
The state of the system is completely defined by
your databases and shared storage, and not by
each individual running application instance.
Importance: High. Stateless apps are robust,
easier to manage, have less bugs, and scale better.
VI. Processes
Execute the app as one or more
stateless processes
Application also interfaces to the world using a
simple URL. Usually this comes for free when it
is being presented through a web-server.
Importance: Medium. It’s a clean way to work,
but it’s generally not hard to change later.
VII. Port binding
Export services via port binding
Let lots of little processes handle specific needs;
working independently and running separately.
Just Adding more resources will do the magic.
Importance: Low. Don’t worry about this until
you get deep into scaling considerations.
VIII. Concurrency
Scale out via the process model
Application should have everything it needs
waiting in high-speed databases or caches, so it
can start up snappily.
In case it crashes, it should always be able to
start back up cleanly.
Importance: Medium. You may not have to
worry about it, but understand its implications..
IX. Disposability
Maximize robustness with fast
startup and graceful shutdown
Keep local development environment as close as
possible to production. Often accomplished by
making use of a tool like Vagrant or Docker.
Importance: Medium. Devs will take shortcuts if
their local environment works “well enough”.
X. Dev/prod parity
Keep development, staging, and
production as similar as possible
In production, logs should be automatically
captured as a stream of events and pushed into a
real-time consolidated system.
Importance: Low. You are overlooking better
solutions if logs are your primary forensic tool.
XI. Logs
Treat logs as event streams
Run one-off admin tasks from an identical
environment as production.
Importance: High. Having console access to a
production system is critical. No excuses here.
XII. Admin processes
Run admin/management tasks as
one-off processes
At the heart of a happily running system, there is always a robust, reliable, not that much surprising architecture.
● The Twelve Factor are based on the experience on a wide variety of SaaS apps in the wild;
● Most important industry players are adopting The Twelve Factors in their platforms and frameworks architectures;
● To overlook The Twelve Factors does not sound like a clever choice.
The Twelve-Factor App - Summary
The Twelve-Factor App - Next Steps
● Discuss these Twelve Factors with the development team, see if there is room for improvement based on any of them.
● Beyond the Twelve-Factor App - Exploring the DNA of Highly Scalable, Resilient Cloud Applications
12factor.net

More Related Content

What's hot

Dev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShiftDev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShiftFrederik Bijlsma
 
Cloud Native Application Framework
Cloud Native Application FrameworkCloud Native Application Framework
Cloud Native Application FrameworkVMware Tanzu
 
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Daniel Oh
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)VMware Tanzu
 
Managing OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid CloudManaging OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid CloudJerome Marc
 
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatContainers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatAmazon Web Services
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixRyan Baxter
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftKangaroot
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platformsAndrew Shafer
 
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Amazon Web Services
 
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Red Hat Developers
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Joshua McKenty
 
Fabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experienceFabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experienceAbdellatif BOUCHAMA
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationEric D. Schabell
 
Painless containerization in your very own private Cloud
Painless containerization in your very own private CloudPainless containerization in your very own private Cloud
Painless containerization in your very own private CloudEric D. Schabell
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 
Intro to Cloud Native _ v1.0en (2021/01)
Intro to Cloud Native _ v1.0en (2021/01)Intro to Cloud Native _ v1.0en (2021/01)
Intro to Cloud Native _ v1.0en (2021/01)Young Suk Ahn Park
 
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedCloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedVMware Tanzu
 

What's hot (20)

Dev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShiftDev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShift
 
Cloud Native Application Framework
Cloud Native Application FrameworkCloud Native Application Framework
Cloud Native Application Framework
 
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)
 
Managing OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid CloudManaging OpenShift at Scale Across the Open Hybrid Cloud
Managing OpenShift at Scale Across the Open Hybrid Cloud
 
Intro - Cloud Native
Intro - Cloud NativeIntro - Cloud Native
Intro - Cloud Native
 
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatContainers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMix
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShift
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platforms
 
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
 
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
 
Fabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experienceFabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experience
 
Cloud Native Operations
Cloud Native OperationsCloud Native Operations
Cloud Native Operations
 
Red Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformationRed Hat OpenShift - a foundation for successful digital transformation
Red Hat OpenShift - a foundation for successful digital transformation
 
Painless containerization in your very own private Cloud
Painless containerization in your very own private CloudPainless containerization in your very own private Cloud
Painless containerization in your very own private Cloud
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Intro to Cloud Native _ v1.0en (2021/01)
Intro to Cloud Native _ v1.0en (2021/01)Intro to Cloud Native _ v1.0en (2021/01)
Intro to Cloud Native _ v1.0en (2021/01)
 
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedCloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
 

Viewers also liked

Cloud native
Cloud nativeCloud native
Cloud nativeKen Owens
 
Quantifying the Benefits of Cloud Foundry
Quantifying the Benefits of Cloud FoundryQuantifying the Benefits of Cloud Foundry
Quantifying the Benefits of Cloud FoundryAltoros
 
12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKERTREEPTIK
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJoe Kutner
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
The Five Stages of Cloud Native
The Five Stages of Cloud NativeThe Five Stages of Cloud Native
The Five Stages of Cloud NativeVMware Tanzu
 
The 12 Factor App
The 12 Factor AppThe 12 Factor App
The 12 Factor Apprudiyardley
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep diveAnimesh Singh
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)VMware Tanzu
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native ArchitectureAndrew Shafer
 

Viewers also liked (13)

Cloud native
Cloud nativeCloud native
Cloud native
 
Clusters
ClustersClusters
Clusters
 
Twelve factor apps
Twelve factor appsTwelve factor apps
Twelve factor apps
 
Cloud Foundry 101
Cloud Foundry 101Cloud Foundry 101
Cloud Foundry 101
 
Quantifying the Benefits of Cloud Foundry
Quantifying the Benefits of Cloud FoundryQuantifying the Benefits of Cloud Foundry
Quantifying the Benefits of Cloud Foundry
 
12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor App
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
The Five Stages of Cloud Native
The Five Stages of Cloud NativeThe Five Stages of Cloud Native
The Five Stages of Cloud Native
 
The 12 Factor App
The 12 Factor AppThe 12 Factor App
The 12 Factor App
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native Architecture
 

Similar to The Twelve Factor App

The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor appRavi Okade
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready SolutionsKashif Ali Siddiqui
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...Jitendra Bafna
 
Mds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuMds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuDavid Scruggs
 
Twelve Factor App With Lagom
Twelve Factor App With LagomTwelve Factor App With Lagom
Twelve Factor App With LagomKnoldus Inc.
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native DevelopmentManuel Garcia
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021NeerajKumar1965
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaborationJohn Stevenson
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaborationJohn Stevenson
 
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsCloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsVMware Tanzu
 
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
 
12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana12 Steps to DevOps Nirvana
12 Steps to DevOps NirvanaBhavin Javia
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for ChangeEric Wyles
 
Continuous Delivery 9th Bit
Continuous Delivery 9th BitContinuous Delivery 9th Bit
Continuous Delivery 9th BitObsidianSystems
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrdMidVision
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Transform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsTransform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsGaurav Sharma
 

Similar to The Twelve Factor App (20)

The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Hello cloud 6
Hello  cloud 6Hello  cloud 6
Hello cloud 6
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
Mds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuMds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to heroku
 
Twelve Factor App With Lagom
Twelve Factor App With LagomTwelve Factor App With Lagom
Twelve Factor App With Lagom
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
 
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsCloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
 
Microservices
MicroservicesMicroservices
Microservices
 
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 ...
 
12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
Continuous Delivery 9th Bit
Continuous Delivery 9th BitContinuous Delivery 9th Bit
Continuous Delivery 9th Bit
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrd
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Transform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsTransform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOps
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

The Twelve Factor App

  • 1. The Twelve-Factor App Pablo Fullana - Computing Systems Engineer
  • 4. The Twelve-Factor App ● Software is many times delivered as SaaS applications ● 12FA is a methodology for building SaaS that: ○ Uses declarative formats for setup automation; ○ Maximizes portability; ○ Enables deployments on cloud platforms; ○ Embraces continuous deployment; ○ Scales up painlessly. ● Not only for Devs or DevOps people...
  • 5. I. Codebase One codebase tracked in revision control, many deploys All the code resides in a source control system. Doesn’t matter which one, but there has to be one. Importance: Non-negotiable. Everyone does this. Period.
  • 6. Be explicit. Never assume dependencies will be in place on a given machine. No guesswork, state everything as it needs to be. Importance: High. Prevents teams from constant confusion and frustration. II. Dependencies Explicitly declare and isolate dependencies
  • 7. Store all configuration data in a separate place from the code, and read in by the code at runtime. Importance: Medium. Many people don’t do this, but don’t be sloppy. III. Config Store config in the environment
  • 8. Reference each service by just an endpoint. Not a single piece of code should care where these are actually running. Importance: High. Is there any reason not to adhere to this best-practice? IV. Backing Services Treat backing services as attached resources
  • 9. Build stage deals with the burden, being managed by developers. Run stage is simple, battle-tested and just works. Yes, like a charm. Importance: Conceptual. Defined by used frameworks and tooling. V. Build, release, run Strictly separate build and run stages
  • 10. The state of the system is completely defined by your databases and shared storage, and not by each individual running application instance. Importance: High. Stateless apps are robust, easier to manage, have less bugs, and scale better. VI. Processes Execute the app as one or more stateless processes
  • 11. Application also interfaces to the world using a simple URL. Usually this comes for free when it is being presented through a web-server. Importance: Medium. It’s a clean way to work, but it’s generally not hard to change later. VII. Port binding Export services via port binding
  • 12. Let lots of little processes handle specific needs; working independently and running separately. Just Adding more resources will do the magic. Importance: Low. Don’t worry about this until you get deep into scaling considerations. VIII. Concurrency Scale out via the process model
  • 13. Application should have everything it needs waiting in high-speed databases or caches, so it can start up snappily. In case it crashes, it should always be able to start back up cleanly. Importance: Medium. You may not have to worry about it, but understand its implications.. IX. Disposability Maximize robustness with fast startup and graceful shutdown
  • 14. Keep local development environment as close as possible to production. Often accomplished by making use of a tool like Vagrant or Docker. Importance: Medium. Devs will take shortcuts if their local environment works “well enough”. X. Dev/prod parity Keep development, staging, and production as similar as possible
  • 15. In production, logs should be automatically captured as a stream of events and pushed into a real-time consolidated system. Importance: Low. You are overlooking better solutions if logs are your primary forensic tool. XI. Logs Treat logs as event streams
  • 16. Run one-off admin tasks from an identical environment as production. Importance: High. Having console access to a production system is critical. No excuses here. XII. Admin processes Run admin/management tasks as one-off processes
  • 17. At the heart of a happily running system, there is always a robust, reliable, not that much surprising architecture. ● The Twelve Factor are based on the experience on a wide variety of SaaS apps in the wild; ● Most important industry players are adopting The Twelve Factors in their platforms and frameworks architectures; ● To overlook The Twelve Factors does not sound like a clever choice. The Twelve-Factor App - Summary
  • 18. The Twelve-Factor App - Next Steps ● Discuss these Twelve Factors with the development team, see if there is room for improvement based on any of them. ● Beyond the Twelve-Factor App - Exploring the DNA of Highly Scalable, Resilient Cloud Applications 12factor.net