Stop Automating Deployments...
Automate the World!!!
Lansing DevOps Meetup
April 7th, 2015
Brendon Thiede
Eric Fusciardi
Release Engineers
...How many environments?
...How many servers?
...How many variations?
scenario 1:
java certs update
Complications
- Multiple JVMs
- Scheduled job
- Distributed queue
- Downstream systems
Symptoms
- Inconsistent
- Partially processed
Diagnosis
- Customer data
- Bugs in the code
- Inconsistent cacert found
Scenario 2:
Anti-Virus Install
Complications
- Different file structures
- Load balancer
Symptoms
- Inconsistent
- Sometimes works
Diagnosis
- Bugs in code
- Magic files
- Wrong file permissions found
Scenario 3:
Error in the Spec
Complications
- Inconsistent format
- Different configuration methods
- Divergent naming conventions
Symptoms
- Application is "slow"
- Everything still works
- Logs are full of "noise"
Diagnosis
- VM is "bad"
- Poor load balancing scheme
- Increased customer volume
- Found queue was not distributed
Scenario 4:
Upgrade host OS version
...you get the idea
But what about peer review???
The Big Payoff:
The Future
Chef
Infrastructure as Code
Adding a new service
default['microsvcs']['manifest'] = [
{name: 'a-service', user: 'derpy', port: '8000', topology: 'backrail'},
{name: 'b-service', user: 'bigmac', port: '8010', topology: 'dmz'},
{name: 'c-service', user: 'rarity', port: '8020', topology: 'backrail'}
]
default['microsvcs']['manifest'] = [
{name: 'a-service', user: 'derpy', port: '8000', topology: 'backrail'},
{name: 'b-service', user: 'bigmac', port: '8010', topology: 'dmz'},
{name: 'c-service', user: 'rarity', port: '8020', topology: 'backrail'},
{name: 'd-service', user: 'applejack', port: '8030', topology: 'dmz'}
]
Change this:
To this:
Chef is:
- Versionable
- Testable
- Repeatable
- Reusable
Bamboo
Build once
- SCM metadata captured
- Artifact flows through environments
*Panda adds promotion criteria
Bamboo Handles:
- Continuous integration
- Automated testing
- Scheduling
- Auditing*
- Deployments*
Pillar and Liquibase
DML/DDL are Code
- Same SCM
- Versioned
- True rollback
- Continuous integration
- Always ship everything
- Only apply what's needed
Are We There Yet?
End Game
- Lower environments from scratch
- Prod-like setup
- Prod-like deployment
- Realistic data
- Continuous improvement

Stop Automating Deployments!
By Brendon Thiede
Stop Automating Deployments!
- 929