SlideShare a Scribd company logo
1 of 25
1© Copyright 2016 EMC Corporation. All rights reserved. 1© Copyright 2016 EMC Corporation. All rights reserved.
12-FACTOR APP FTW !!! (FOR THE WIN)
2© Copyright 2016 EMC Corporation. All rights reserved.
Our Asks…..
• Don’t be quiet or shy !!
• Sales Pitch Free Zone!
• Tweet it out Questions! #EMCWorld
@vTexan @bverkley
3© Copyright 2016 EMC Corporation. All rights reserved.
Product Companies Are Creating “Smart Devices”
EVERY INDUSTRY IS BEING DIGITALLY TRANSFORMED
4© Copyright 2016 EMC Corporation. All rights reserved.
APPS ARE GOING FROM
MONOLITHIC…
To Cloud Native
http://catina.co
5© Copyright 2016 EMC Corporation. All rights reserved.
WHAT MAKES CLOUD NATIVE APPS DIFFERENT?
• Operate At Much Greater Scale On Much More Data
• Tend To Be Built On Microservices
• Use New Development Methods
• As Well As New Deployment, Organizational and
Management Models
• With Open Source Components At All Levels
Different Promises:
6© Copyright 2016 EMC Corporation. All rights reserved.
CLOUD NATIVE APPS INFRASTRUCTURE NEEDS
• Programmability (“Infrastructure As Code”)
• Elasticity (Which Demands A Scale-Out Architecture)
• Economics (Steers Towards Commodity + Software-
based)
• Strong Instrumentation And Telemetry Of
Infrastructure Layer
7© Copyright 2016 EMC Corporation. All rights reserved.
DevOps is an operations
model where software
development principles are
applied to operations
8© Copyright 2016 EMC Corporation. All rights reserved.
9© Copyright 2016 EMC Corporation. All rights reserved.
• It’s a methodology for developing what is known as
“Cloud Native Apps”
• It helps minimize divergence between development
and production
• It enables continuous deployment to maximize
agility
• It can be applied to any app written in any
programming language
WHAT IS 12-FACTOR
10© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR I - CODEBASE
• Not just for developers anymore
• Central repository for all
infrastructure Information
– Chef, Ansible, Puppet, Jenkins etc
• Ops: “Dear Ops – can you deploy
this code for me….is it in GitHub? If
not, it doesn’t exist !.”
One codebase tracked in revision control, many deploys
11© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR II - DEPENDENCIES
Explicitly declare and isolate dependencies
• Never make environment assumptions
– Enable automated builds of fresh environments
• Explicitly declare in code
– Track in your code repository
• Ops: “Dear Ops, my app broke, can you update a
dependency for me?” - “No. Declare it and rebuild.”
12© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR III - CONFIG
• Config is everything that is likely to vary between
deploys ! (Staging, Production, Dev etc)
• Include access credentials, logging config
• Not buried into the code (with passwords etc)
• Ops “Hey, can you update the app to reflect this new
password….ah nope….store your config somewhere
other than the code !”
Store config in the environment
13© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR IV - BACKING SERVICES
Treat backing services as attached resources
• URLs allow freedom. Enjoy your freedom.
– Freedom of mobility
– Freedom of scalability
– Freedom of language
– Freedom of provider
• Ops: Hardware changes won’t necessitate
application changes. Delightful.
14© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR V - BUILD, RELEASE, RUN
• Build = Codebase being built
• Release = Build + Config
• Run = deploy to the wild
• Ops: Can you edit this one thing for me…NO ! We
don’t do snowflakes…trust the tools
Strictly separate build and run stages
15© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR VI - PROCESS
Execute the app as one or more stateless processes
• When bad stuff happens to good code
– Failure is not an option… it is a certainty
– Outages are not a choice… how you handle them is
• Be as stateless as possible, so failures are easy to
recover from
• Ops: Do you enjoy waking up at 2am to restart a
process ?
16© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR VII - PORT BINDING
• The app should be completely self contained. Don’t
assume your app is the only thing on that server
• Resources needed to listen (IP Address, Ports)
should be received from the environment (env)
• Multi-level systems (Java in Tomcat, PHP in Apache)
violate this principle.
• Ops: Ahhhh, my app isn’t working anymore, is
someone else using 8080? Is Python 3.5 compatible
with Apache 2.2?
Export services via port binding
17© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR VIII - CONCURRENCY
Scale out via the process model
• One task = one process
• To scale a task up, add processes to do more at once
• To improve concurrency, look to eliminate locking &
increase caching (ie table database locking etc)
• Reduce whack-a-mole scale bottlenecks
• Ops: Infrastructure should be pools of resources and
the applications should allocated them to the tasks
based on demand
18© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR IX - DISPOSABILITY
Maximize robustness with fast startup and graceful shutdown
• Startup times should be low
• No loss of state for users if process is lost
• If it can’t heal itself, kill it and bring up another one.
• Ops: “Can you reboot this app….no….kill it and
respawn it”
19© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR X - DEV/PROD PARITY
Keep development, staging, and production as similar as possible
• “Worked in Dev….no idea why it’s not in Prod”
• Do you want to troubleshoot code or environment?
• Increase deployment confidence
• Performance can be different !
• Ops: Reduce the blame game, and the downtime
20© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR XI - LOGS
• Log absolutely everything !
• Searching is cheap !!
• Logs should be treated as first class citizens !
• Ops: Logs are the canary in the coal mine! It helps
you figure out where things went wrong ! “If I had a $1
for each time my boss said “did you check the logs” when I ask him for
troubleshooting help!”
Treat logs as event streams
21© Copyright 2016 EMC Corporation. All rights reserved.
FACTOR XII - ADMIN PROCESSES
Run admin/management tasks as one-off processes
• No one-off custom scripts
• Everything done live is from the codebase and logs
to the official logging system
• (eg, never update the database from the db cli)
• Ops: “Dear Ops, can you run this for me?” - “No, I
like you too much to be that mean.”
22© Copyright 2016 EMC Corporation. All rights reserved.
• 12 Factor is a mindset, and set of tools/process
• DevOps is a cultural shift combining Operations
teams and Development Teams (embrace it!)
• DevOps is also the most overused term since Cloud

• Keep in mind, this is session is a blueprint!
SUMMARY
23© Copyright 2016 EMC Corporation. All rights reserved.
• Brian Verkley - @bverkley
• Tommy Trogden - @vTexan
WANT TO REACH OUT TO US?
24© Copyright 2016 EMC Corporation. All rights reserved. 24© Copyright 2016 EMC Corporation. All rights reserved.
EMC World 2016 12 Factor Apps FTW

More Related Content

What's hot

What's hot (20)

Building Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdfBuilding Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdf
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWS
 
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
 
12 Factor App: Best Practices for JVM Deployment
12 Factor App: Best Practices for JVM Deployment12 Factor App: Best Practices for JVM Deployment
12 Factor App: Best Practices for JVM Deployment
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
 
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
Run your Java code on Cloud Foundry
Run your Java code on Cloud FoundryRun your Java code on Cloud Foundry
Run your Java code on Cloud Foundry
 
Your own kubernetes castle
Your own kubernetes castleYour own kubernetes castle
Your own kubernetes castle
 
Repository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryRepository Management with JFrog Artifactory
Repository Management with JFrog Artifactory
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
 
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web AppsModern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
Infrastructure as Microservices - OReillySACon London 2016
Infrastructure as Microservices - OReillySACon London 2016Infrastructure as Microservices - OReillySACon London 2016
Infrastructure as Microservices - OReillySACon London 2016
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
 
The Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the UnikernalThe Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the Unikernal
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
 
JavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolutionJavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolution
 

Similar to EMC World 2016 12 Factor Apps FTW

The New IT - Your Milestone Plan
The New IT - Your Milestone Plan The New IT - Your Milestone Plan
The New IT - Your Milestone Plan
WSO2
 
The New IT - Your Milestone Plan
The New IT -  Your Milestone PlanThe New IT -  Your Milestone Plan
The New IT - Your Milestone Plan
WSO2
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
WSO2
 

Similar to EMC World 2016 12 Factor Apps FTW (20)

EMC World 2016 - mioaITL.08 Infrastructure as Code: Not Your Parent's Data Ce...
EMC World 2016 - mioaITL.08 Infrastructure as Code: Not Your Parent's Data Ce...EMC World 2016 - mioaITL.08 Infrastructure as Code: Not Your Parent's Data Ce...
EMC World 2016 - mioaITL.08 Infrastructure as Code: Not Your Parent's Data Ce...
 
Cloud Native Applications - DevOps, EMC and Cloud Foundry
Cloud Native Applications - DevOps, EMC and Cloud FoundryCloud Native Applications - DevOps, EMC and Cloud Foundry
Cloud Native Applications - DevOps, EMC and Cloud Foundry
 
EMC World 2016 - code.02 Introduction to Immutable Infrastructure
EMC World 2016 - code.02 Introduction to Immutable InfrastructureEMC World 2016 - code.02 Introduction to Immutable Infrastructure
EMC World 2016 - code.02 Introduction to Immutable Infrastructure
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
Monitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to backMonitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to back
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
 
EMC World 2016 - cnaITL.01 Adopting An Open Source Strategy
EMC World 2016 - cnaITL.01 Adopting An Open Source StrategyEMC World 2016 - cnaITL.01 Adopting An Open Source Strategy
EMC World 2016 - cnaITL.01 Adopting An Open Source Strategy
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020
 
Microservices
MicroservicesMicroservices
Microservices
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
 
The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for you
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017
 
The New IT - Your Milestone Plan
The New IT - Your Milestone Plan The New IT - Your Milestone Plan
The New IT - Your Milestone Plan
 
The New IT - Your Milestone Plan
The New IT -  Your Milestone PlanThe New IT -  Your Milestone Plan
The New IT - Your Milestone Plan
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
 
IDC Architecture 2016 - Devops and Open Source
IDC Architecture 2016 - Devops and Open SourceIDC Architecture 2016 - Devops and Open Source
IDC Architecture 2016 - Devops and Open Source
 
EMC World 2016 - code.05 Automating your Physical Data Center with RackHD
EMC World 2016 - code.05 Automating your Physical Data Center with RackHDEMC World 2016 - code.05 Automating your Physical Data Center with RackHD
EMC World 2016 - code.05 Automating your Physical Data Center with RackHD
 
Sydney mule soft meetup #8 1 August 2019 - all slides
Sydney mule soft meetup #8   1 August 2019 - all slidesSydney mule soft meetup #8   1 August 2019 - all slides
Sydney mule soft meetup #8 1 August 2019 - all slides
 
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
 

Recently uploaded

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Recently uploaded (20)

Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 

EMC World 2016 12 Factor Apps FTW

  • 1. 1© Copyright 2016 EMC Corporation. All rights reserved. 1© Copyright 2016 EMC Corporation. All rights reserved. 12-FACTOR APP FTW !!! (FOR THE WIN)
  • 2. 2© Copyright 2016 EMC Corporation. All rights reserved. Our Asks….. • Don’t be quiet or shy !! • Sales Pitch Free Zone! • Tweet it out Questions! #EMCWorld @vTexan @bverkley
  • 3. 3© Copyright 2016 EMC Corporation. All rights reserved. Product Companies Are Creating “Smart Devices” EVERY INDUSTRY IS BEING DIGITALLY TRANSFORMED
  • 4. 4© Copyright 2016 EMC Corporation. All rights reserved. APPS ARE GOING FROM MONOLITHIC… To Cloud Native http://catina.co
  • 5. 5© Copyright 2016 EMC Corporation. All rights reserved. WHAT MAKES CLOUD NATIVE APPS DIFFERENT? • Operate At Much Greater Scale On Much More Data • Tend To Be Built On Microservices • Use New Development Methods • As Well As New Deployment, Organizational and Management Models • With Open Source Components At All Levels Different Promises:
  • 6. 6© Copyright 2016 EMC Corporation. All rights reserved. CLOUD NATIVE APPS INFRASTRUCTURE NEEDS • Programmability (“Infrastructure As Code”) • Elasticity (Which Demands A Scale-Out Architecture) • Economics (Steers Towards Commodity + Software- based) • Strong Instrumentation And Telemetry Of Infrastructure Layer
  • 7. 7© Copyright 2016 EMC Corporation. All rights reserved. DevOps is an operations model where software development principles are applied to operations
  • 8. 8© Copyright 2016 EMC Corporation. All rights reserved.
  • 9. 9© Copyright 2016 EMC Corporation. All rights reserved. • It’s a methodology for developing what is known as “Cloud Native Apps” • It helps minimize divergence between development and production • It enables continuous deployment to maximize agility • It can be applied to any app written in any programming language WHAT IS 12-FACTOR
  • 10. 10© Copyright 2016 EMC Corporation. All rights reserved. FACTOR I - CODEBASE • Not just for developers anymore • Central repository for all infrastructure Information – Chef, Ansible, Puppet, Jenkins etc • Ops: “Dear Ops – can you deploy this code for me….is it in GitHub? If not, it doesn’t exist !.” One codebase tracked in revision control, many deploys
  • 11. 11© Copyright 2016 EMC Corporation. All rights reserved. FACTOR II - DEPENDENCIES Explicitly declare and isolate dependencies • Never make environment assumptions – Enable automated builds of fresh environments • Explicitly declare in code – Track in your code repository • Ops: “Dear Ops, my app broke, can you update a dependency for me?” - “No. Declare it and rebuild.”
  • 12. 12© Copyright 2016 EMC Corporation. All rights reserved. FACTOR III - CONFIG • Config is everything that is likely to vary between deploys ! (Staging, Production, Dev etc) • Include access credentials, logging config • Not buried into the code (with passwords etc) • Ops “Hey, can you update the app to reflect this new password….ah nope….store your config somewhere other than the code !” Store config in the environment
  • 13. 13© Copyright 2016 EMC Corporation. All rights reserved. FACTOR IV - BACKING SERVICES Treat backing services as attached resources • URLs allow freedom. Enjoy your freedom. – Freedom of mobility – Freedom of scalability – Freedom of language – Freedom of provider • Ops: Hardware changes won’t necessitate application changes. Delightful.
  • 14. 14© Copyright 2016 EMC Corporation. All rights reserved. FACTOR V - BUILD, RELEASE, RUN • Build = Codebase being built • Release = Build + Config • Run = deploy to the wild • Ops: Can you edit this one thing for me…NO ! We don’t do snowflakes…trust the tools Strictly separate build and run stages
  • 15. 15© Copyright 2016 EMC Corporation. All rights reserved. FACTOR VI - PROCESS Execute the app as one or more stateless processes • When bad stuff happens to good code – Failure is not an option… it is a certainty – Outages are not a choice… how you handle them is • Be as stateless as possible, so failures are easy to recover from • Ops: Do you enjoy waking up at 2am to restart a process ?
  • 16. 16© Copyright 2016 EMC Corporation. All rights reserved. FACTOR VII - PORT BINDING • The app should be completely self contained. Don’t assume your app is the only thing on that server • Resources needed to listen (IP Address, Ports) should be received from the environment (env) • Multi-level systems (Java in Tomcat, PHP in Apache) violate this principle. • Ops: Ahhhh, my app isn’t working anymore, is someone else using 8080? Is Python 3.5 compatible with Apache 2.2? Export services via port binding
  • 17. 17© Copyright 2016 EMC Corporation. All rights reserved. FACTOR VIII - CONCURRENCY Scale out via the process model • One task = one process • To scale a task up, add processes to do more at once • To improve concurrency, look to eliminate locking & increase caching (ie table database locking etc) • Reduce whack-a-mole scale bottlenecks • Ops: Infrastructure should be pools of resources and the applications should allocated them to the tasks based on demand
  • 18. 18© Copyright 2016 EMC Corporation. All rights reserved. FACTOR IX - DISPOSABILITY Maximize robustness with fast startup and graceful shutdown • Startup times should be low • No loss of state for users if process is lost • If it can’t heal itself, kill it and bring up another one. • Ops: “Can you reboot this app….no….kill it and respawn it”
  • 19. 19© Copyright 2016 EMC Corporation. All rights reserved. FACTOR X - DEV/PROD PARITY Keep development, staging, and production as similar as possible • “Worked in Dev….no idea why it’s not in Prod” • Do you want to troubleshoot code or environment? • Increase deployment confidence • Performance can be different ! • Ops: Reduce the blame game, and the downtime
  • 20. 20© Copyright 2016 EMC Corporation. All rights reserved. FACTOR XI - LOGS • Log absolutely everything ! • Searching is cheap !! • Logs should be treated as first class citizens ! • Ops: Logs are the canary in the coal mine! It helps you figure out where things went wrong ! “If I had a $1 for each time my boss said “did you check the logs” when I ask him for troubleshooting help!” Treat logs as event streams
  • 21. 21© Copyright 2016 EMC Corporation. All rights reserved. FACTOR XII - ADMIN PROCESSES Run admin/management tasks as one-off processes • No one-off custom scripts • Everything done live is from the codebase and logs to the official logging system • (eg, never update the database from the db cli) • Ops: “Dear Ops, can you run this for me?” - “No, I like you too much to be that mean.”
  • 22. 22© Copyright 2016 EMC Corporation. All rights reserved. • 12 Factor is a mindset, and set of tools/process • DevOps is a cultural shift combining Operations teams and Development Teams (embrace it!) • DevOps is also the most overused term since Cloud  • Keep in mind, this is session is a blueprint! SUMMARY
  • 23. 23© Copyright 2016 EMC Corporation. All rights reserved. • Brian Verkley - @bverkley • Tommy Trogden - @vTexan WANT TO REACH OUT TO US?
  • 24. 24© Copyright 2016 EMC Corporation. All rights reserved. 24© Copyright 2016 EMC Corporation. All rights reserved.

Editor's Notes

  1. By 2020, more than seven billion people and businesses, and at least 30 billion devices, will be connected to the Internet. With people, businesses and things communicating, transacting, and even negotiating with each other, a new world comes into being – the world of digital business. This expansion promises an unprecedented convergence of digitally enabled people, business and things. This convergence will disrupt business models in powerful ways – even those that have long dominated the Internet and e-business eras. All of this change is driven by SOFTWARE. But don’t wait for 2020 for this expansion to start impacting markets. In many places, it’s happening right now. Digital businesses don’t just re-tool old processes and paradigms. Using software, they are reinventing the very way people have for decades gotten things done—from personal transportation to healthcare monitoring, home maintenance, and shipping logistics. These are new business designs that are blurring the physical and digital world.   No longer are we humans providing intelligence to power equipment, tools, and devices. With the help of software, intelligent devices are gathering and providing highly valuable information to us. It is about the interaction and negotiations between business and things driving more immersive customer experience and seamless engagement.   But these smart devices are doing more than helping us monitor blood sugar, avoid traffic jams and regulate home energy consumption. They’re inspiring a new generation of data-driven industries, services and business opportunities and with rapid advances in nanotechnology, you can expect smart sensors to be found in almost everything. What we see today is just the beginning.
  2. Built Using New Development Tools …Build Using New Development Methods …Built In New Organizational Models …Leveraging New “Polyglot” Data Fabrics …That has open-source at it’s core For community/innovation more than commercials: think “free speech,” not “free beer”
  3. Factor I = essentially this is the foundation for which your application will be built upon. The one center of truth in the process. If it’s not in a version controll system, it shouldn’t exist and that should be a hard and fast rule. It’s imperative that you, as an operations individual have a good understanding of how these sorts of source code repositories work. An easy, and well established solution is our friends over at GitHub. Github, as well as other solutions like Mercurial, Subversion and even Visual Studio Team Foundation Server would be the central location your developers would use to store their code. To get more familiar with these types of solutions, I’d recommend creating a free GitHub account and play around with things live version control. Everything should be in Revision control – this allows you to do things Git Blame
  4. This is why containers are so popular
  5. If you don’t have logs, you can’t do root cause analysis – if you don’t have that – how can you trust the issue won’t happen again !
  6. When you don’t know what you are doing – follow the rules – until you are comfortable – and then you can do variations. Its like cooking, follow the recipe the first time, then alter the second time.