SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Text

12 Steps to DevOps Nirvana
Bhavin Javia
@bhavinjavia

Founder @
!=
+
- by Adam Wiggins
co-founder

http://12factor.net
What is
methodology to build SaaS apps
triangulation of best practices
development, deployment, scaling of 100,000s of apps
organic growth, collaboration, avoid software erosion
awareness, shared vocabulary, conceptual solutions
Who should read ?
Devs building SaaS apps
Ops engineers managing
SaaS apps
Apps written in any
programming language
Apps deployed on the
cloud
I. Codebase
Tracked in version control
One codebase per app
Many deploys
Same codebase, different
versions
Mutiple apps == Multiple
Codebases (and Apps)
Extract Libraries to share code
II. Dependencies
Never rely on system-wide
packages
Dependency declaration &
Dependency isolation
Use tools for both
Simplifies setup for new devs
Vendored system tools
(controversial)
III. Config
Anything that varies across
deployments
Except internal app config
Strictly separate config from code
Litmus Test: Can you open source it
RIGHT NOW ?
Store config in Files (good) or ENV
vars (better)
Grouping of ENV vars (does not scale)
IV. Backing Services
Any services consumed over the network
Attached resources
No distinction b/w
Local & Third Party services
Service == Resource
Resources attached or detached at will
V. Build, release, run
Strictly separate stages
1. Build
Convert code to executable ‘build’
Can be complex
2. Release
Combine build
	

& config
Immutable

3. Run
run the release
keep it simple
VI. Processes
One or more processes
Stateless and share-nothing
Process Memory/FS ==
transactional cache
Store persistent data in
stateful backing storage
No sticky sessions
(controversial)
VII. Port binding
Export services via port
binding
App binds to HTTP port
Most server software
can use port binding
One app == backing
service for another
VIII. Concurrency
Scale out via process model
Scale == Running Processes
Workload Diversity = Process Types
Does not exclude internal threads,
evented model
Adding concurrency is simple and
reliable
Never daemonize and use a
Process Manager
IX. Disposability
Processes are disposable
Minimize startup time
Shut down gracefully
Should handle hardware
failure
Return jobs back to the
queue on failures
X. Dev/prod parity
Keep Dev, Staging, Production similar
Reduce gaps in Time, Personnel and
Tools
Design for Continuous Deployment
Mind parity issues in Backing Services
Lightweight, local services less
compelling
Use same type & version of backing
services
XI. Logs
Logs == Event streams
Provide visibility into running app
App not concerned about routing/storage
Route all logs to single destination
Index and analyse logs for
Find past events
Graphing of trends
Alerting
XII. Admin processes
Run admin tasks as one-off
processes
DB migrations
REPL shell
One-time scripts
Run Admin process in identical env
Run against same release
Ship admin code with app code
Is it for me ?
These are broad, conceptual
guidelines
You might have
Env specific differences
Organizational constraints
Infrastructural constraints
YMMV
See what works
Thank You
@bhavinjavia
bhavin@mavenhive.in
https://speakerdeck.com/bhavinjavia
http://www.slideshare.net/bhavinjavia

Contenu connexe

Tendances

Tendances (20)

Demystifying DevOps
Demystifying DevOpsDemystifying DevOps
Demystifying DevOps
 
DevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss BankingDevOps & DevSecOps in Swiss Banking
DevOps & DevSecOps in Swiss Banking
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Software Alliance - Hire Remote Developers Team Europe
Software Alliance -  Hire Remote Developers Team EuropeSoftware Alliance -  Hire Remote Developers Team Europe
Software Alliance - Hire Remote Developers Team Europe
 
The State of DevOps Tools: A Primer
The State of DevOps Tools: A PrimerThe State of DevOps Tools: A Primer
The State of DevOps Tools: A Primer
 
Devops
DevopsDevops
Devops
 
#SheSharp Conference - Azure DevOps for .NET
#SheSharp Conference - Azure DevOps for .NET#SheSharp Conference - Azure DevOps for .NET
#SheSharp Conference - Azure DevOps for .NET
 
Painless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps PipelinePainless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps Pipeline
 
Kelis king - engineering approach to develop software.
Kelis king -  engineering approach to develop software.Kelis king -  engineering approach to develop software.
Kelis king - engineering approach to develop software.
 
From Continuous Integration to DevOps
From Continuous Integration to DevOpsFrom Continuous Integration to DevOps
From Continuous Integration to DevOps
 
Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1
 
Mark Harrison AppDev 2021
Mark Harrison AppDev 2021Mark Harrison AppDev 2021
Mark Harrison AppDev 2021
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Azure DevOps Day - Kochi
Azure DevOps Day - KochiAzure DevOps Day - Kochi
Azure DevOps Day - Kochi
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
 
What manufacturing teaches about DevOps
What manufacturing teaches about DevOpsWhat manufacturing teaches about DevOps
What manufacturing teaches about DevOps
 
Are you ready for cloud-native Java?
Are you ready for cloud-native Java?Are you ready for cloud-native Java?
Are you ready for cloud-native Java?
 
Azure DevOps Day - Trivandrum
Azure DevOps Day - TrivandrumAzure DevOps Day - Trivandrum
Azure DevOps Day - Trivandrum
 
Containerization Strategy
Containerization StrategyContainerization Strategy
Containerization Strategy
 
DevOps
DevOpsDevOps
DevOps
 

Similaire à 12 Steps to DevOps Nirvana

Similaire à 12 Steps to DevOps Nirvana (20)

The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
The Twelve-Factor App
The Twelve-Factor AppThe Twelve-Factor App
The Twelve-Factor App
 
Jfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the CloudJfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the Cloud
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor App
 
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 ...
 
Adopting a PaaS Solution (Part 2) - Red Hat DevOps & Microservices Conference...
Adopting a PaaS Solution (Part 2) - Red Hat DevOps & Microservices Conference...Adopting a PaaS Solution (Part 2) - Red Hat DevOps & Microservices Conference...
Adopting a PaaS Solution (Part 2) - Red Hat DevOps & Microservices Conference...
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Hello cloud 6
Hello  cloud 6Hello  cloud 6
Hello cloud 6
 
Twelve factor apps
Twelve factor appsTwelve factor apps
Twelve factor apps
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
 
Mordernizing Traditional Applications. An Introduction to Containerization
Mordernizing Traditional Applications. An Introduction to ContainerizationMordernizing Traditional Applications. An Introduction to Containerization
Mordernizing Traditional Applications. An Introduction to Containerization
 
Azure Modern Cloud App Development Approaches 2017
Azure Modern Cloud App Development Approaches 2017Azure Modern Cloud App Development Approaches 2017
Azure Modern Cloud App Development Approaches 2017
 
Fast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWSFast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWS
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
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
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
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
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Sequence Like a Boss - BriForum 2015 Denver
Sequence Like a Boss - BriForum 2015 DenverSequence Like a Boss - BriForum 2015 Denver
Sequence Like a Boss - BriForum 2015 Denver
 

Plus de Bhavin Javia (7)

Make ruby talk to your users - literally
Make ruby talk to your users - literallyMake ruby talk to your users - literally
Make ruby talk to your users - literally
 
Write your Ruby in Style
Write your Ruby in StyleWrite your Ruby in Style
Write your Ruby in Style
 
Agile for Startups
Agile for StartupsAgile for Startups
Agile for Startups
 
Get on "The Cloud" with AWS
Get on "The Cloud" with AWSGet on "The Cloud" with AWS
Get on "The Cloud" with AWS
 
Agile Team Dynamics
Agile Team DynamicsAgile Team Dynamics
Agile Team Dynamics
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...
 

Dernier

Dernier (20)

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

12 Steps to DevOps Nirvana

  • 1. Text 12 Steps to DevOps Nirvana Bhavin Javia @bhavinjavia Founder @
  • 3. - by Adam Wiggins co-founder http://12factor.net
  • 4. What is methodology to build SaaS apps triangulation of best practices development, deployment, scaling of 100,000s of apps organic growth, collaboration, avoid software erosion awareness, shared vocabulary, conceptual solutions
  • 5. Who should read ? Devs building SaaS apps Ops engineers managing SaaS apps Apps written in any programming language Apps deployed on the cloud
  • 6. I. Codebase Tracked in version control One codebase per app Many deploys Same codebase, different versions Mutiple apps == Multiple Codebases (and Apps) Extract Libraries to share code
  • 7. II. Dependencies Never rely on system-wide packages Dependency declaration & Dependency isolation Use tools for both Simplifies setup for new devs Vendored system tools (controversial)
  • 8. III. Config Anything that varies across deployments Except internal app config Strictly separate config from code Litmus Test: Can you open source it RIGHT NOW ? Store config in Files (good) or ENV vars (better) Grouping of ENV vars (does not scale)
  • 9. IV. Backing Services Any services consumed over the network Attached resources No distinction b/w Local & Third Party services Service == Resource Resources attached or detached at will
  • 10. V. Build, release, run Strictly separate stages 1. Build Convert code to executable ‘build’ Can be complex 2. Release Combine build & config Immutable 3. Run run the release keep it simple
  • 11. VI. Processes One or more processes Stateless and share-nothing Process Memory/FS == transactional cache Store persistent data in stateful backing storage No sticky sessions (controversial)
  • 12. VII. Port binding Export services via port binding App binds to HTTP port Most server software can use port binding One app == backing service for another
  • 13. VIII. Concurrency Scale out via process model Scale == Running Processes Workload Diversity = Process Types Does not exclude internal threads, evented model Adding concurrency is simple and reliable Never daemonize and use a Process Manager
  • 14. IX. Disposability Processes are disposable Minimize startup time Shut down gracefully Should handle hardware failure Return jobs back to the queue on failures
  • 15. X. Dev/prod parity Keep Dev, Staging, Production similar Reduce gaps in Time, Personnel and Tools Design for Continuous Deployment Mind parity issues in Backing Services Lightweight, local services less compelling Use same type & version of backing services
  • 16. XI. Logs Logs == Event streams Provide visibility into running app App not concerned about routing/storage Route all logs to single destination Index and analyse logs for Find past events Graphing of trends Alerting
  • 17. XII. Admin processes Run admin tasks as one-off processes DB migrations REPL shell One-time scripts Run Admin process in identical env Run against same release Ship admin code with app code
  • 18. Is it for me ? These are broad, conceptual guidelines You might have Env specific differences Organizational constraints Infrastructural constraints YMMV