2. PRO·DUC·TION [pruh-duhk-shuhn] (n)
A complex system of applications, services, servers, networking gear, etc.,
upon which we’re going to try to carefully apply a complicated set of
changes and hope that nothing goes wrong.
3. Back in the days
5 years (or so) ago
Waterfall…
Develop for a few months
Test & QA (back and forth) for a few
more months
Plan for downtime/outage
Release (manually) to production
Deployed by Ops, or IT team
Problems?
Large changes = more potential bugs
Infrequent = more surprises
Slow = extra cost & time (see #1)
Unreliable (human errors happen!)
The Bus Factor (people leave)
Rollback is a nightmare (or near
impossible)
Cannot be scaled (without more
people)
Which leads to low confidence
5. Now
How it’s done
Deliver features every few days/weeks
(iterative)
Automate all the things™
UI Testing
Prerequisites & Dependencies
Configurations
Data Migration
Mirror the production environment in
Testing/Staging
Advantages
Low cost (remote)
Low risk (rollback instantly)
High speed (deploy instantly, and in
parallel)
Knowledge of environments and
configurations are well kept,
versioned, and presented.
No surprises (environments are tightly
controlled)
6. Who is continuously deploying?
Google
Microsoft
Apple
Facebook
Amazon
LinkedIn
Netflix
Atlassian
Basically…everyone!