SlideShare a Scribd company logo
1 of 14
Download to read offline
THETWELVE-FACTOR APP
https://12factor.net/
I. CODEBASE
• Use version control system
• Deploy every environments with same codebase
• In case of having multiple apps are sharing the same codebase
then consider to make it as shared library and use dependency
manager
• Performance issue is also one reason that cause you having
multiple codebase for an app. Please consider it as technical debt
to be pay off later.
II. DEPENDENCIES
• Full explicit dependencies declaration
• Deploy the same dependencies on every
environments
• Isolate dependencies from each environment
III. CONFIG
• Store configs in its own environment and use env variables
• Strict separation config from code
• Don’t check configs into code repository to prevent it scatter
around and be changed by anyone who can access repository.
• Try not to put environment name in configs. It does not scale
very well when you have many environments. It would cause
constantly updating those names all the time.
IV. BACKING SERVICES
• Treat backing services such as cache, database,
messaging queue or even api endpoint as
attached resources which you can change or
replace by configs without changing code.
V. BUILD, RELEASE, RUN
• Strict separate build, release and run
• Build stage is a precess to package or bundle codebase and dependencies
make it ready for Release stage.
• Release stage will combine the output from build stage and config for
deployed environment, tagging version and prepare roll-back releases.This
stage will not allow changing codebase or config, Just create new release if
needed.
• Run stage will run the output from release stage on the deployed
environment.
VI. PROCESSES
• Execute an app as stateless processes
• Persist data in backing service(datastore)
• No shared assets between processes, for example
any compiled assets for optimization etc.
• No session data saved in local disk or local memory
VII. PORT BINDING
• Export services via port binding.
• It simply says any services will communicate via url
to make it easy to change by configuration
settings.
VIII. CONCURRENCY
• Scale out via process model
• Support horizontal scaling
• App processes should not demonize or write PID
files, instead rely on system process manager like
“Systemd” to manage output stream, crashed
management.
IX. DISPOSABILITY
• App process can be started or stoped at any time to facilitate
scaling and rapid deployment.
• Minimize start up time
• Process should shut down gracefully when receive
SIGTERM(the signal from process manager). In term of Http, it
should terminate existing requests and deny incoming requests.
In term of long running process like worker, it should return
un-success tasks back to queue and stop pulling more task.
X. DEV/PROD PARITY
• Keep development/staging/production as similar as
possible
• Embrace continuous integration and delivery by
reduce the gaps of developer and deployer, time
and technologies stack.
XI. LOGS
• Treat logs as event stream
• App never concerns itself with logging stuff, Let the execution
environment to handle routing errors to destination storage
• Log should be time ordered
• Alert when the error exceed the threshold
• Graphing to see error trends
XII.ADMIN PROCESSES
• Provide one-off administrative console to allow
executing migration script or any one-time script
command
• It should be accomplished by the same
environment as production.
• Don’t run on local terminal or database directly.
THANKYOU
Email: inthra.onsap@gmail.com
LinkedIn: www.linkedin.com/in/inthraonsap
Facebook: www.facebook.com/inthraonsap

More Related Content

What's hot

12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodologylaeshin park
 
Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.Platform9
 
Top 15 Exchange Questions that Senior Admin ask - Jaap Wesselius
Top 15 Exchange Questions that Senior Admin ask - Jaap WesseliusTop 15 Exchange Questions that Senior Admin ask - Jaap Wesselius
Top 15 Exchange Questions that Senior Admin ask - Jaap WesseliusKemp
 
Intro to Platform9: Private Clouds Made Easy
Intro to Platform9: Private Clouds Made EasyIntro to Platform9: Private Clouds Made Easy
Intro to Platform9: Private Clouds Made EasyPlatform9
 
Roll your own FOSS cloud hosting
Roll your own FOSS cloud hostingRoll your own FOSS cloud hosting
Roll your own FOSS cloud hostingRussell Searle
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the CloudSite24x7
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureMateus Prado
 
#DFWVMUG - Automating the Next Generation Datacenter
#DFWVMUG - Automating the Next Generation Datacenter#DFWVMUG - Automating the Next Generation Datacenter
#DFWVMUG - Automating the Next Generation DatacenterJosh Atwell
 
Managing vSphere Across Multiple Regions and Multiple vCenters
Managing vSphere Across Multiple Regions and Multiple vCenters Managing vSphere Across Multiple Regions and Multiple vCenters
Managing vSphere Across Multiple Regions and Multiple vCenters Platform9
 
Streams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik KnopStreams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik KnopPerforce
 
Single Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik KnopSingle Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik KnopPerforce
 
Cloud hub architecture
Cloud hub architectureCloud hub architecture
Cloud hub architectureKrishna_in
 
VMware Monitoring-Discover And Monitor Your Virtual Environment
VMware Monitoring-Discover And Monitor Your Virtual EnvironmentVMware Monitoring-Discover And Monitor Your Virtual Environment
VMware Monitoring-Discover And Monitor Your Virtual EnvironmentSite24x7
 
SolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStackSolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStackPlatform9
 
Service-oriented architecture
Service-oriented architectureService-oriented architecture
Service-oriented architectureShalva Usubov
 
FileCatalyst v3.3 preview - multi-file transfers and auto-zip
FileCatalyst v3.3 preview - multi-file transfers and auto-zipFileCatalyst v3.3 preview - multi-file transfers and auto-zip
FileCatalyst v3.3 preview - multi-file transfers and auto-zipFileCatalyst
 
Navigating the Container Orchestration Maze
Navigating the Container Orchestration MazeNavigating the Container Orchestration Maze
Navigating the Container Orchestration MazeAlex Vranceanu
 
Embracing Git and Distributed Teams
Embracing Git and Distributed TeamsEmbracing Git and Distributed Teams
Embracing Git and Distributed TeamsPerforce
 

What's hot (20)

12 factor app
12 factor app12 factor app
12 factor app
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
 
Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.Got Shadow IT? How to Win-Win with a Private Cloud.
Got Shadow IT? How to Win-Win with a Private Cloud.
 
Top 15 Exchange Questions that Senior Admin ask - Jaap Wesselius
Top 15 Exchange Questions that Senior Admin ask - Jaap WesseliusTop 15 Exchange Questions that Senior Admin ask - Jaap Wesselius
Top 15 Exchange Questions that Senior Admin ask - Jaap Wesselius
 
Intro to Platform9: Private Clouds Made Easy
Intro to Platform9: Private Clouds Made EasyIntro to Platform9: Private Clouds Made Easy
Intro to Platform9: Private Clouds Made Easy
 
Roll your own FOSS cloud hosting
Roll your own FOSS cloud hostingRoll your own FOSS cloud hosting
Roll your own FOSS cloud hosting
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the Cloud
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
#DFWVMUG - Automating the Next Generation Datacenter
#DFWVMUG - Automating the Next Generation Datacenter#DFWVMUG - Automating the Next Generation Datacenter
#DFWVMUG - Automating the Next Generation Datacenter
 
Managing vSphere Across Multiple Regions and Multiple vCenters
Managing vSphere Across Multiple Regions and Multiple vCenters Managing vSphere Across Multiple Regions and Multiple vCenters
Managing vSphere Across Multiple Regions and Multiple vCenters
 
Streams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik KnopStreams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik Knop
 
Single Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik KnopSingle Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik Knop
 
Cloud hub architecture
Cloud hub architectureCloud hub architecture
Cloud hub architecture
 
VMware Monitoring-Discover And Monitor Your Virtual Environment
VMware Monitoring-Discover And Monitor Your Virtual EnvironmentVMware Monitoring-Discover And Monitor Your Virtual Environment
VMware Monitoring-Discover And Monitor Your Virtual Environment
 
SolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStackSolidFire + Platform9: Simply Faster OpenStack
SolidFire + Platform9: Simply Faster OpenStack
 
Service-oriented architecture
Service-oriented architectureService-oriented architecture
Service-oriented architecture
 
FileCatalyst v3.3 preview - multi-file transfers and auto-zip
FileCatalyst v3.3 preview - multi-file transfers and auto-zipFileCatalyst v3.3 preview - multi-file transfers and auto-zip
FileCatalyst v3.3 preview - multi-file transfers and auto-zip
 
Navigating the Container Orchestration Maze
Navigating the Container Orchestration MazeNavigating the Container Orchestration Maze
Navigating the Container Orchestration Maze
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
 
Embracing Git and Distributed Teams
Embracing Git and Distributed TeamsEmbracing Git and Distributed Teams
Embracing Git and Distributed Teams
 

Similar to The twelve factor app

Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceDavid Currie
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Jack-Junjie Cai
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdfNilesh Gule
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Frameworkdinkar thakur
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
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
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceJack-Junjie Cai
 
Highly available nodejs
Highly available nodejsHighly available nodejs
Highly available nodejspfremm
 
PaaS Ecosystem Overview
PaaS Ecosystem OverviewPaaS Ecosystem Overview
PaaS Ecosystem OverviewDmitry Meytin
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to MicroservicesDavid Currie
 
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
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native DevelopmentManuel Garcia
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor appRavi Okade
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureDavid Currie
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryOscar Renalias
 

Similar to The twelve factor app (20)

12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Framework
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
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
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
Highly available nodejs
Highly available nodejsHighly available nodejs
Highly available nodejs
 
PaaS Ecosystem Overview
PaaS Ecosystem OverviewPaaS Ecosystem Overview
PaaS Ecosystem Overview
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
 
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 ...
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application Architecture
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container Delivery
 

Recently uploaded

Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 

Recently uploaded (20)

Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 

The twelve factor app

  • 2. I. CODEBASE • Use version control system • Deploy every environments with same codebase • In case of having multiple apps are sharing the same codebase then consider to make it as shared library and use dependency manager • Performance issue is also one reason that cause you having multiple codebase for an app. Please consider it as technical debt to be pay off later.
  • 3. II. DEPENDENCIES • Full explicit dependencies declaration • Deploy the same dependencies on every environments • Isolate dependencies from each environment
  • 4. III. CONFIG • Store configs in its own environment and use env variables • Strict separation config from code • Don’t check configs into code repository to prevent it scatter around and be changed by anyone who can access repository. • Try not to put environment name in configs. It does not scale very well when you have many environments. It would cause constantly updating those names all the time.
  • 5. IV. BACKING SERVICES • Treat backing services such as cache, database, messaging queue or even api endpoint as attached resources which you can change or replace by configs without changing code.
  • 6. V. BUILD, RELEASE, RUN • Strict separate build, release and run • Build stage is a precess to package or bundle codebase and dependencies make it ready for Release stage. • Release stage will combine the output from build stage and config for deployed environment, tagging version and prepare roll-back releases.This stage will not allow changing codebase or config, Just create new release if needed. • Run stage will run the output from release stage on the deployed environment.
  • 7. VI. PROCESSES • Execute an app as stateless processes • Persist data in backing service(datastore) • No shared assets between processes, for example any compiled assets for optimization etc. • No session data saved in local disk or local memory
  • 8. VII. PORT BINDING • Export services via port binding. • It simply says any services will communicate via url to make it easy to change by configuration settings.
  • 9. VIII. CONCURRENCY • Scale out via process model • Support horizontal scaling • App processes should not demonize or write PID files, instead rely on system process manager like “Systemd” to manage output stream, crashed management.
  • 10. IX. DISPOSABILITY • App process can be started or stoped at any time to facilitate scaling and rapid deployment. • Minimize start up time • Process should shut down gracefully when receive SIGTERM(the signal from process manager). In term of Http, it should terminate existing requests and deny incoming requests. In term of long running process like worker, it should return un-success tasks back to queue and stop pulling more task.
  • 11. X. DEV/PROD PARITY • Keep development/staging/production as similar as possible • Embrace continuous integration and delivery by reduce the gaps of developer and deployer, time and technologies stack.
  • 12. XI. LOGS • Treat logs as event stream • App never concerns itself with logging stuff, Let the execution environment to handle routing errors to destination storage • Log should be time ordered • Alert when the error exceed the threshold • Graphing to see error trends
  • 13. XII.ADMIN PROCESSES • Provide one-off administrative console to allow executing migration script or any one-time script command • It should be accomplished by the same environment as production. • Don’t run on local terminal or database directly.