DEVOPS ANTIPATTERNS
~WHOAMI
ANTONS KRANGA
▸ Full stack developer ~ 15years
▸ Cloud Architect
▸ DevOps Advocate
▸ Full-Stack Developer
▸ Speaker
▸ Marathon runner
@acankr
TALK STRUCTURE
PRESO PLAN
▸ Smell Symptoms: organizational anti patterns for devops
▸ Vitamins: proposed solutions from devops library
▸ Painkillers: deployment anti patterns
▸ Antibiotics: environment anti patterns brought by devops
pic from wonderful “matrix” movie
WHY DEVOPS
DEVELOPERS VERSION
DEFINITION OF DEVOPS
What is DevOps?
pic from “hitchhiker's guide to the galaxy” movie
DEFINITION OF DEVOPS
What is DevOps?
BFG900 from classical game DOOM (c) id software
DEFINITION OF DEVOPS
What is DevOps?
▸ Development teams ▸ Operations
▸ Security and compliance ▸ Management
▸ Strategy, IT Strategy
BFG900 from classical game DOOM (c) id software
▸ QA▸ HR
DRIVERS FOR SOFTWARE DEVELOPMENT
▸ development price
BEFORE AFTER
▸ innovations speed
DRIVERS FOR SOFTWARE DEVELOPMENT
▸ development price
BEFORE AFTER
▸ innovations speed
▸ specialization silos
▸ ops comes first
▸ cross functional
▸ software defined

data centers
▸ complex communication ▸ complexity theory
SMELL SYMPTOM
DEVOPS ANTIPATTERNS
ANTIPATTERN # 0
BI MODAL IT
Sparky from Frankenweenie
▸ Slow IT
▸ Safe and Predictable
▸ IT Centric
▸ Secure and Regulated
▸ Fast IT
▸ Fast and Agile
▸ Business Centric
▸ Innovative
ANTIPATTERN # 1
DEVOPS IN A BOX
You cannot buy culture!
▸ Buy a Golden DevOps LVL5
▸ Become certified DevOps master
▸ Give me DevOps compliance checklist
▸ Give me 5 key DevOps control metrics
ANTIPATTERN # 1.1
REBRANDED IT
DevOps != Configuration Management

DevOps != Release Management|

DevOps != Product Management

…

DevOps != (*) Management
DEVOPS IS THE CULTURE YOU
CANNOT FIND IN IN ITIL CATALOG
ANTIPATTERN # 2
DEVOPS AS SEPARATE TEAM
You don’t need to change
anything in your org
You extend organization
with new capabilities
ANTIPATTERN # 2
DEVOPS AS SEPARATE TEAM
Creates Unicorn vs Horses dilemma
DevOps builds their own Silo
Often loses focus on value
and speed
ANTIPATTERN # 2.1
DEVOPS AS A SILO
DevOps teams build their own Silo
▸ You cannot talk to DevOps
▸ Use Jira instead !!!!
▸ RTFM Architecture
ANTIPATTERN # 2: PROPOSED SOLUTION
SORRY, NOT MY DEPARTMENT
Bread ownership and
specialization with
autonomous teams
vs
http://martinfowler.com/bliki/DevOpsCulture.html
ANTIPATTERN # 3
DEVOPS IN AGILE
▸ DoD fails with “ilities”
▸ Services can be easily “undone”
ANTIPATTERN # 4
FEAR OF RELEASE
RELEASE === RISK
NO RELEAE NO REVENUE
vs
ANTIPATTERN # 5
SNOWFLAKE SERVER
Applying changes to Server Instance
manually leads to unique and distinct
server configuration footprint
(TECHNICAL DEBT)
http://martinfowler.com/bliki/SnowflakeServer.html
VITAMINS
DEVOPS ANTIPATTERNS
VITAMINS
INFRASTRUCTURE AS CODE
ENV
ENV
ENV
DEV …CODE
VITAMINS
INFRASTRUCTURE AS CODE
DEV
Code is a

Contract
OPS
Essence to collectively create and share knowledge
VITAMINS
INFRASTRUCTURE AS CODE
DEV
Code is a

Contract
OPS
Enables: built in quality
VITAMINS
INFRASTRUCTURE AS CODE
DEV
Code is a

Contract
OPS
Put infrastructure into SCM
VITAMINS
INFRASTRUCTURE AS CODE
DEV
Code is a

Contract
OPS`
Make infrastructure part of app
VITAMINS
USE CI ENVIRONMENT
CI
test infra depl AT
..
.
release
VITAMINS
USE CI ENVIRONMENT
▸ We need feedback not to be afraid
▸ Feedback != SPAM
▸ It’s about size of release not frequency
▸ Don’t judge for broken builds
▸ Go home when build is green
PAINKILLERS
DEVOPS ANTIPATTERNS
CONTINUOUS DELIVERY
CI/CD PROCESS
CI
test infra depl AT
..
.
release
ANTIPATTERN # 6
SLOW PIPELINES
CI
..
.
release
test infra depl DT
test DT depl infra
infra depl DT AT
ANTIPATTERN # 6: PROPOSED SOLUTION
SLOW PIPELINES
`
`
`
Design for parallelization
ANTIPATTERN # 6
“JENKINS” DRIVEN DEVELOPMENT
With single master CI you easily get a
single point of failure
CI master
ANTIPATTERN # 6: PROPOSED SOLUTION
MULTI MASTER “JENKINS”
Multi-master CI can dedicate CI Master
per group of related components
CI master CI master CI master
ANTIPATTERN # 6: PROPOSED SOLUTION # 2
SHARE RESPONSIBILITY
CI users (DEVs or OPs) are best for managing their jobs
▸ Implement Pipeline as Code
▸ Store CI/CD pipelines in git
▸ Let pipeline evolve together with your app
ANTIPATTERN # 7
MANUAL PROMOTION
Tester PRODUATIntegr TestsDEV System Tests
ENVENVENV ENV
ANTIPATTERN # 7: PROPOSED SOLUTION
KILL SWITCH FOR MANUAL TESTING
PRODUATIntegr TestsDEV System Tests
ENVENVENV ENV
TEST
ANTIPATTERN # 7: PROPOSED SOLUTION
KILL SWITCH FOR MANUAL TESTING
PRODUATIntegr TestsDEV System Tests
ENVENVENV ENV
TEST
Time adjustable

if TREND is good
ANTIPATTERN # 7: PROPOSED SOLUTION
AB TESTING
PROD A
Integr TestsDEV System Tests
ENV
ENVENV
TEST A
PROD B
ENV
TEST B
feedback
feedback
measure
ANTIPATTERN # 7.1
CODEREVIEW
PRODUATIntegr Tests System Tests
ENVENVENV ENV
DEV B
feature 

branch DEV C
code 

review
ANTIPATTERN # 7.1: PROPOSED SOLUTION
REACTIVE CODEREVIEW
ReleaseIntegr Tests System Tests
ENVENV ENV
Full 

Regression
Calc technical

debt
ENV
Nightly
DEV A
Standup
code 

review
…
ANTIPATTERN # 7.1
CODEREVIEW
PRODUATIntegr TestsDEV A System Tests
ENVENVENV ENV
master
DEV B
feature 

branch DEV C
code 

review
ANTIPATTERN # 7.2
GIT FLOWS
▸ Git flow helps to work feature dev isolated
▸ Indirectly breaks Continuous Delivery Principle
▸ Complex merge routine distracts teams
http://classicprogrammerpaintings.com/post/142586036029/junior-programmer-learns-git-rebase
ANTIPATTERN # 7.2: PROPOSED SOLUTION
GIT FLOWS
develop
master
test
merge
CI
DEV
pull
push
ANTIPATTERN # 7.2: PROPOSED SOLUTION
GIT FLOWS
develop
master
test
merge
CI
DEV
DEV
pull
push
ANTIPATTERN # 8
DEV DOESN’T CONTROL DEV ENV
DEV

ENV
DEV

ENV
DEV

ENV
…DEV CI
ANTIPATTERN # 8: PROPOSED SOLUTION
DEV DOESN’T CONTROL DEV ENV
DEV …NO CI
DEV

ENV
DEV

ENV
DEV

ENV
ANTIPATTERN # 8: PROPOSED SOLUTION
DEV DOESN’T CONTROL DEV ENV
ENV
ENV
DEV

ENV
…DEV NO CI
WANT TO HACK? SURE!
ANTIPATTERN # 8: PROPOSED SOLUTION
DEV DOESN’T CONTROL DEV ENV
ENV
ENV
DEV

ENV
…
YOU BROKE IT? YOU FIX IT!
DEV NO CI
ANTIBIOTICS
DEVOPS ANTIPATTERNS
ANTIPATTERN # 9
GOLDEN IMAGE
VM
OS
Problems
▸ Maintained manually
▸ No collaboration
▸ Hard to distribute
▸ Non versioning
Chnorr Service
ANTIPATTERN # 9: PROPOSED SOLUTION
PROVISIONING
OS Chnorr Service
ANTIPATTERN # 9: PROPOSED SOLUTION
PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
Chnorr Service
ANTIPATTERN # 9: PROPOSED SOLUTION
PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
Chnorr Service
ANTIPATTERN # 9: PROPOSED SOLUTION
PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
cmdb
Chnorr Service
ANTIPATTERN # A
FRAGILE PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
▸ Provisioning success < 100%
▸ Time to provision
Chnorr Service
ANTIPATTERN # A
FRAGILE PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
▸ Provisioning success < 100%
▸ Time to provision
Chnorr Service
ANTIPATTERN # A
FRAGILE PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
▸ Provisioning success < 100%
▸ Time to provision
Chnorr Service
ANTIPATTERN # A
FRAGILE PROVISIONING
OS
Configure
Infrastructure

code
Harden Download Install
▸ Provisioning success < 100%
▸ Time to provision
Chnorr Service
ANTIPATTERN # A.1
PRIVATE DATA CENTER PROVISIONING
PRIVATE DATA CENTER: NO INTERNET!!!
OS
ConfigureHarden Download Install
Chnorr Service
ANTIPATTERN # A.1
PRIVATE DATA CENTER PROVISIONING
PRIVATE DATA CENTER: NO INTERNET!!!
OS
ConfigureHarden Download Install
…
apt yum gem
Chnorr Service
ANTIPATTERN # A.1
PRIVATE DATA CENTER PROVISIONING
PRIVATE DATA CENTER: NO INTERNET!!!
OS
ConfigureHarden Download Install
…
apt yum gem
complicated?
Chnorr Service
ANTIPATTERN # A.1: PROPOSED SOLUTION
STEM CELLS
static dynamic
OS
ConfigureHarden Download Install
Chnorr Service
ANTIPATTERN # A.1: PROPOSED SOLUTION
STEM CELLS
OS
ConfigureHarden Download Install
LAB PRIVATE DATA CENTER
Chnorr Service
ANTIPATTERN # A.1: PROPOSED SOLUTION
STEM CELLS
OS
ConfigureHarden Download Install
LAB PRIVATE DATA CENTER
code
packer
PROVISION
MAKE

SNAPSHOT
docker
Chnorr Service
RECONFIGURE
ANTIPATTERN # B
DEPENDENCY HELL
OS
Configure
Infrastructure

code
Harden Download Install
▸ Version of libraries
▸ Version of packages
▸ Maintain dependencies
Chnorr Service
ANTIPATTERN # B
DEPENDENCY HELL
OS
Configure
Infrastructure

code
Harden Download Install
▸ Version of libraries
▸ Version of packages
▸ Maintain dependencies
▸ Version of your infra code
▸ Maintain dependencies
Chnorr Service
ANTIPATTERN # B: PROPOSED SOLUTION
CANARY BUILDS
Accept Tests
CI
Unit Test Provision
…
PRECISE version libs
Accept Tests
CI
Unit Test Provision
…
LATEST version libs
Chnorr Service
Chnorr Service
ANTIPATTERN # C
INFRASTRUCTURE PET
Attributes of Pet
▸ Have meaningful names
▸ Long living instance
▸ Often needs manual nursing
▸ Requires scary patching
▸ Leads to snowflakes
▸ PaaS is modern pet
ANTIPATTERN # C: PROPOSED SOLUTION
INFRASTRUCTURE CATTLE
Attributes of Pet
▸ Have numbers in its name
▸ Short living instance
▸ Immutable configuration
▸ Recreate instead of patching
▸ Requires careful planning
ANTIPATTERN # C: PROPOSED SOLUTION
PET TO TRANSFORMATION CATTLE EXAMPLE
Chnorr Service
Database
ANTIPATTERN # C: PROPOSED SOLUTION
PET TO TRANSFORMATION CATTLE EXAMPLE
Chnorr Service
Database
ANTIPATTERN # C: PROPOSED SOLUTION
PET TO TRANSFORMATION CATTLE EXAMPLE
Chnorr Service
Database
Cattle
Pet
ANTIPATTERN # C: PROPOSED SOLUTION
PET TO TRANSFORMATION CATTLE EXAMPLE
Chnorr Service
Database
Cattle
Pet
User Data
ANTIPATTERN # D
SECRETS LEAK
OS
Configure
Infrastructure

code
Install
cmdb
wrong place 

for your secrets
wrong place 

for your secrets
Chnorr Service
ANTIPATTERN # D: PROPOSED SOLUTION
SECRETS LEAK
▸ Don’t store secrets with code
▸ Don’t store secrets with configuration
▸ Don’t leave secrets in service
Secrets DON’Ts
ANTIPATTERN # D: PROPOSED SOLUTION
SECRETS LEAK
▸ Secret can be leased and rotated
▸ tmpfs is your fiend
Secrets DOs
ANTIPATTERN # D: PROPOSED SOLUTION
SECURITY LEASING EXAMPLE
Chnorr Service vault
consul
IAM
Database
api
x hours leasing
AWS
TAKEAWAYS
GOOD INFRA CODE
TAKEAWAYS
PATTERNS GOES BEFORE TOOLS
Patterns Tools
vs
TAKEAWAYS
EVERYTHING MUST HAVE AN API
REST
DSL
CLI
TAKEAWAYS
SPLIT YOUR SECRETS FROM CODE OR CONFIGURATION
(c) @eduardsi
TAKEAWAYS
SELF TESTABLE CODE
▸ Use assertions for infrastructure code
▸ Use acceptance test frameworks
Tests improves your confidence
CHEF MINITEST
		package	"mysql"	
		assert_file	"/etc/my.cnf",	"mysql",	"mysql",	"644"
SHELL
		apt-get	install	-yqq	mysql	
		test	!	-f	/etc/my.cnf	||	error_exit	“boo”
TAKEAWAYS
HOW TO START DEVOPS
▸ Fastest way to start with Vitamins and Coaching
▸ Apply measures early
▸ Apply right measures
▸ Tools comes later
TAKEAWAYS
READING
▸ Book: The Phoenix Project
▸ Author: Gene Kim

Kevin Behr

George Stafford
▸ ISBN: 978-0988262508
TAKEAWAYS
READING
▸ Book: The Lean Startup
▸ Author: Eric Ries
▸ ISBN: 978-0307887894
TAKEAWAYS
READING
▸ Book: A Human Error Approach to
Aviation Accident Analysis
▸ Author: Douglas A. Wiegmann

Scott A. Shappell
▸ ISBN: 978-0754618737
THANK YOU
Download me here: http://www.slideshare.net/akranga/dev-ops-with-smell-v12
Twitter: @acankr

Dev ops with smell v1.2

  • 1.
  • 2.
    ~WHOAMI ANTONS KRANGA ▸ Fullstack developer ~ 15years ▸ Cloud Architect ▸ DevOps Advocate ▸ Full-Stack Developer ▸ Speaker ▸ Marathon runner @acankr
  • 3.
    TALK STRUCTURE PRESO PLAN ▸Smell Symptoms: organizational anti patterns for devops ▸ Vitamins: proposed solutions from devops library ▸ Painkillers: deployment anti patterns ▸ Antibiotics: environment anti patterns brought by devops pic from wonderful “matrix” movie
  • 4.
  • 5.
    DEFINITION OF DEVOPS Whatis DevOps? pic from “hitchhiker's guide to the galaxy” movie
  • 6.
    DEFINITION OF DEVOPS Whatis DevOps? BFG900 from classical game DOOM (c) id software
  • 7.
    DEFINITION OF DEVOPS Whatis DevOps? ▸ Development teams ▸ Operations ▸ Security and compliance ▸ Management ▸ Strategy, IT Strategy BFG900 from classical game DOOM (c) id software ▸ QA▸ HR
  • 8.
    DRIVERS FOR SOFTWAREDEVELOPMENT ▸ development price BEFORE AFTER ▸ innovations speed
  • 9.
    DRIVERS FOR SOFTWAREDEVELOPMENT ▸ development price BEFORE AFTER ▸ innovations speed ▸ specialization silos ▸ ops comes first ▸ cross functional ▸ software defined
 data centers ▸ complex communication ▸ complexity theory
  • 10.
  • 11.
    ANTIPATTERN # 0 BIMODAL IT Sparky from Frankenweenie ▸ Slow IT ▸ Safe and Predictable ▸ IT Centric ▸ Secure and Regulated ▸ Fast IT ▸ Fast and Agile ▸ Business Centric ▸ Innovative
  • 12.
    ANTIPATTERN # 1 DEVOPSIN A BOX You cannot buy culture! ▸ Buy a Golden DevOps LVL5 ▸ Become certified DevOps master ▸ Give me DevOps compliance checklist ▸ Give me 5 key DevOps control metrics
  • 13.
    ANTIPATTERN # 1.1 REBRANDEDIT DevOps != Configuration Management
 DevOps != Release Management|
 DevOps != Product Management
 …
 DevOps != (*) Management DEVOPS IS THE CULTURE YOU CANNOT FIND IN IN ITIL CATALOG
  • 14.
    ANTIPATTERN # 2 DEVOPSAS SEPARATE TEAM You don’t need to change anything in your org You extend organization with new capabilities
  • 15.
    ANTIPATTERN # 2 DEVOPSAS SEPARATE TEAM Creates Unicorn vs Horses dilemma DevOps builds their own Silo Often loses focus on value and speed
  • 16.
    ANTIPATTERN # 2.1 DEVOPSAS A SILO DevOps teams build their own Silo ▸ You cannot talk to DevOps ▸ Use Jira instead !!!! ▸ RTFM Architecture
  • 17.
    ANTIPATTERN # 2:PROPOSED SOLUTION SORRY, NOT MY DEPARTMENT Bread ownership and specialization with autonomous teams vs http://martinfowler.com/bliki/DevOpsCulture.html
  • 18.
    ANTIPATTERN # 3 DEVOPSIN AGILE ▸ DoD fails with “ilities” ▸ Services can be easily “undone”
  • 19.
    ANTIPATTERN # 4 FEAROF RELEASE RELEASE === RISK NO RELEAE NO REVENUE vs
  • 20.
    ANTIPATTERN # 5 SNOWFLAKESERVER Applying changes to Server Instance manually leads to unique and distinct server configuration footprint (TECHNICAL DEBT) http://martinfowler.com/bliki/SnowflakeServer.html
  • 21.
  • 22.
  • 23.
    VITAMINS INFRASTRUCTURE AS CODE DEV Codeis a
 Contract OPS Essence to collectively create and share knowledge
  • 24.
    VITAMINS INFRASTRUCTURE AS CODE DEV Codeis a
 Contract OPS Enables: built in quality
  • 25.
    VITAMINS INFRASTRUCTURE AS CODE DEV Codeis a
 Contract OPS Put infrastructure into SCM
  • 26.
    VITAMINS INFRASTRUCTURE AS CODE DEV Codeis a
 Contract OPS` Make infrastructure part of app
  • 27.
    VITAMINS USE CI ENVIRONMENT CI testinfra depl AT .. . release
  • 28.
    VITAMINS USE CI ENVIRONMENT ▸We need feedback not to be afraid ▸ Feedback != SPAM ▸ It’s about size of release not frequency ▸ Don’t judge for broken builds ▸ Go home when build is green
  • 29.
  • 30.
  • 31.
    ANTIPATTERN # 6 SLOWPIPELINES CI .. . release test infra depl DT test DT depl infra infra depl DT AT
  • 32.
    ANTIPATTERN # 6:PROPOSED SOLUTION SLOW PIPELINES ` ` ` Design for parallelization
  • 33.
    ANTIPATTERN # 6 “JENKINS”DRIVEN DEVELOPMENT With single master CI you easily get a single point of failure CI master
  • 34.
    ANTIPATTERN # 6:PROPOSED SOLUTION MULTI MASTER “JENKINS” Multi-master CI can dedicate CI Master per group of related components CI master CI master CI master
  • 35.
    ANTIPATTERN # 6:PROPOSED SOLUTION # 2 SHARE RESPONSIBILITY CI users (DEVs or OPs) are best for managing their jobs ▸ Implement Pipeline as Code ▸ Store CI/CD pipelines in git ▸ Let pipeline evolve together with your app
  • 36.
    ANTIPATTERN # 7 MANUALPROMOTION Tester PRODUATIntegr TestsDEV System Tests ENVENVENV ENV
  • 37.
    ANTIPATTERN # 7:PROPOSED SOLUTION KILL SWITCH FOR MANUAL TESTING PRODUATIntegr TestsDEV System Tests ENVENVENV ENV TEST
  • 38.
    ANTIPATTERN # 7:PROPOSED SOLUTION KILL SWITCH FOR MANUAL TESTING PRODUATIntegr TestsDEV System Tests ENVENVENV ENV TEST Time adjustable
 if TREND is good
  • 39.
    ANTIPATTERN # 7:PROPOSED SOLUTION AB TESTING PROD A Integr TestsDEV System Tests ENV ENVENV TEST A PROD B ENV TEST B feedback feedback measure
  • 40.
    ANTIPATTERN # 7.1 CODEREVIEW PRODUATIntegrTests System Tests ENVENVENV ENV DEV B feature 
 branch DEV C code 
 review
  • 41.
    ANTIPATTERN # 7.1:PROPOSED SOLUTION REACTIVE CODEREVIEW ReleaseIntegr Tests System Tests ENVENV ENV Full 
 Regression Calc technical
 debt ENV Nightly DEV A Standup code 
 review …
  • 42.
    ANTIPATTERN # 7.1 CODEREVIEW PRODUATIntegrTestsDEV A System Tests ENVENVENV ENV master DEV B feature 
 branch DEV C code 
 review
  • 43.
    ANTIPATTERN # 7.2 GITFLOWS ▸ Git flow helps to work feature dev isolated ▸ Indirectly breaks Continuous Delivery Principle ▸ Complex merge routine distracts teams http://classicprogrammerpaintings.com/post/142586036029/junior-programmer-learns-git-rebase
  • 44.
    ANTIPATTERN # 7.2:PROPOSED SOLUTION GIT FLOWS develop master test merge CI DEV pull push
  • 45.
    ANTIPATTERN # 7.2:PROPOSED SOLUTION GIT FLOWS develop master test merge CI DEV DEV pull push
  • 46.
    ANTIPATTERN # 8 DEVDOESN’T CONTROL DEV ENV DEV
 ENV DEV
 ENV DEV
 ENV …DEV CI
  • 47.
    ANTIPATTERN # 8:PROPOSED SOLUTION DEV DOESN’T CONTROL DEV ENV DEV …NO CI DEV
 ENV DEV
 ENV DEV
 ENV
  • 48.
    ANTIPATTERN # 8:PROPOSED SOLUTION DEV DOESN’T CONTROL DEV ENV ENV ENV DEV
 ENV …DEV NO CI WANT TO HACK? SURE!
  • 49.
    ANTIPATTERN # 8:PROPOSED SOLUTION DEV DOESN’T CONTROL DEV ENV ENV ENV DEV
 ENV … YOU BROKE IT? YOU FIX IT! DEV NO CI
  • 50.
  • 51.
    ANTIPATTERN # 9 GOLDENIMAGE VM OS Problems ▸ Maintained manually ▸ No collaboration ▸ Hard to distribute ▸ Non versioning Chnorr Service
  • 52.
    ANTIPATTERN # 9:PROPOSED SOLUTION PROVISIONING OS Chnorr Service
  • 53.
    ANTIPATTERN # 9:PROPOSED SOLUTION PROVISIONING OS Configure Infrastructure
 code Harden Download Install Chnorr Service
  • 54.
    ANTIPATTERN # 9:PROPOSED SOLUTION PROVISIONING OS Configure Infrastructure
 code Harden Download Install Chnorr Service
  • 55.
    ANTIPATTERN # 9:PROPOSED SOLUTION PROVISIONING OS Configure Infrastructure
 code Harden Download Install cmdb Chnorr Service
  • 56.
    ANTIPATTERN # A FRAGILEPROVISIONING OS Configure Infrastructure
 code Harden Download Install ▸ Provisioning success < 100% ▸ Time to provision Chnorr Service
  • 57.
    ANTIPATTERN # A FRAGILEPROVISIONING OS Configure Infrastructure
 code Harden Download Install ▸ Provisioning success < 100% ▸ Time to provision Chnorr Service
  • 58.
    ANTIPATTERN # A FRAGILEPROVISIONING OS Configure Infrastructure
 code Harden Download Install ▸ Provisioning success < 100% ▸ Time to provision Chnorr Service
  • 59.
    ANTIPATTERN # A FRAGILEPROVISIONING OS Configure Infrastructure
 code Harden Download Install ▸ Provisioning success < 100% ▸ Time to provision Chnorr Service
  • 60.
    ANTIPATTERN # A.1 PRIVATEDATA CENTER PROVISIONING PRIVATE DATA CENTER: NO INTERNET!!! OS ConfigureHarden Download Install Chnorr Service
  • 61.
    ANTIPATTERN # A.1 PRIVATEDATA CENTER PROVISIONING PRIVATE DATA CENTER: NO INTERNET!!! OS ConfigureHarden Download Install … apt yum gem Chnorr Service
  • 62.
    ANTIPATTERN # A.1 PRIVATEDATA CENTER PROVISIONING PRIVATE DATA CENTER: NO INTERNET!!! OS ConfigureHarden Download Install … apt yum gem complicated? Chnorr Service
  • 63.
    ANTIPATTERN # A.1:PROPOSED SOLUTION STEM CELLS static dynamic OS ConfigureHarden Download Install Chnorr Service
  • 64.
    ANTIPATTERN # A.1:PROPOSED SOLUTION STEM CELLS OS ConfigureHarden Download Install LAB PRIVATE DATA CENTER Chnorr Service
  • 65.
    ANTIPATTERN # A.1:PROPOSED SOLUTION STEM CELLS OS ConfigureHarden Download Install LAB PRIVATE DATA CENTER code packer PROVISION MAKE
 SNAPSHOT docker Chnorr Service RECONFIGURE
  • 66.
    ANTIPATTERN # B DEPENDENCYHELL OS Configure Infrastructure
 code Harden Download Install ▸ Version of libraries ▸ Version of packages ▸ Maintain dependencies Chnorr Service
  • 67.
    ANTIPATTERN # B DEPENDENCYHELL OS Configure Infrastructure
 code Harden Download Install ▸ Version of libraries ▸ Version of packages ▸ Maintain dependencies ▸ Version of your infra code ▸ Maintain dependencies Chnorr Service
  • 68.
    ANTIPATTERN # B:PROPOSED SOLUTION CANARY BUILDS Accept Tests CI Unit Test Provision … PRECISE version libs Accept Tests CI Unit Test Provision … LATEST version libs Chnorr Service Chnorr Service
  • 69.
    ANTIPATTERN # C INFRASTRUCTUREPET Attributes of Pet ▸ Have meaningful names ▸ Long living instance ▸ Often needs manual nursing ▸ Requires scary patching ▸ Leads to snowflakes ▸ PaaS is modern pet
  • 70.
    ANTIPATTERN # C:PROPOSED SOLUTION INFRASTRUCTURE CATTLE Attributes of Pet ▸ Have numbers in its name ▸ Short living instance ▸ Immutable configuration ▸ Recreate instead of patching ▸ Requires careful planning
  • 71.
    ANTIPATTERN # C:PROPOSED SOLUTION PET TO TRANSFORMATION CATTLE EXAMPLE Chnorr Service Database
  • 72.
    ANTIPATTERN # C:PROPOSED SOLUTION PET TO TRANSFORMATION CATTLE EXAMPLE Chnorr Service Database
  • 73.
    ANTIPATTERN # C:PROPOSED SOLUTION PET TO TRANSFORMATION CATTLE EXAMPLE Chnorr Service Database Cattle Pet
  • 74.
    ANTIPATTERN # C:PROPOSED SOLUTION PET TO TRANSFORMATION CATTLE EXAMPLE Chnorr Service Database Cattle Pet User Data
  • 75.
    ANTIPATTERN # D SECRETSLEAK OS Configure Infrastructure
 code Install cmdb wrong place 
 for your secrets wrong place 
 for your secrets Chnorr Service
  • 76.
    ANTIPATTERN # D:PROPOSED SOLUTION SECRETS LEAK ▸ Don’t store secrets with code ▸ Don’t store secrets with configuration ▸ Don’t leave secrets in service Secrets DON’Ts
  • 77.
    ANTIPATTERN # D:PROPOSED SOLUTION SECRETS LEAK ▸ Secret can be leased and rotated ▸ tmpfs is your fiend Secrets DOs
  • 78.
    ANTIPATTERN # D:PROPOSED SOLUTION SECURITY LEASING EXAMPLE Chnorr Service vault consul IAM Database api x hours leasing AWS
  • 79.
  • 80.
    TAKEAWAYS PATTERNS GOES BEFORETOOLS Patterns Tools vs
  • 81.
    TAKEAWAYS EVERYTHING MUST HAVEAN API REST DSL CLI
  • 82.
    TAKEAWAYS SPLIT YOUR SECRETSFROM CODE OR CONFIGURATION (c) @eduardsi
  • 83.
    TAKEAWAYS SELF TESTABLE CODE ▸Use assertions for infrastructure code ▸ Use acceptance test frameworks Tests improves your confidence CHEF MINITEST package "mysql" assert_file "/etc/my.cnf", "mysql", "mysql", "644" SHELL apt-get install -yqq mysql test ! -f /etc/my.cnf || error_exit “boo”
  • 84.
    TAKEAWAYS HOW TO STARTDEVOPS ▸ Fastest way to start with Vitamins and Coaching ▸ Apply measures early ▸ Apply right measures ▸ Tools comes later
  • 85.
    TAKEAWAYS READING ▸ Book: ThePhoenix Project ▸ Author: Gene Kim
 Kevin Behr
 George Stafford ▸ ISBN: 978-0988262508
  • 86.
    TAKEAWAYS READING ▸ Book: TheLean Startup ▸ Author: Eric Ries ▸ ISBN: 978-0307887894
  • 87.
    TAKEAWAYS READING ▸ Book: AHuman Error Approach to Aviation Accident Analysis ▸ Author: Douglas A. Wiegmann
 Scott A. Shappell ▸ ISBN: 978-0754618737
  • 88.
    THANK YOU Download mehere: http://www.slideshare.net/akranga/dev-ops-with-smell-v12 Twitter: @acankr