3. #continuousdeployment
What is Continuous Deployment?
Code
Development
Continuous
Integration
Staging Production
Continuous
Deployment
Continuous deployment is the Agile philosophy expanded to deployment.
Every change that passes the automated tests is deployed to production
automatically.
(tl;dr: deploy code in smaller chunks, more frequently)
4. #continuousdeployment
Why do Continuous Deployment?
- Ship features to users more quickly
- Experiment and validate assumptions more rapidly
- Be more responsive to unforeseen problems
- Minimize the risk of each deployment*
- Keeps your agile process honest:
- “But we are Agile! We use user stories and have sprints!”
- Many teams have agile process without agile technology
- CD requires both
*But be careful about “switching on” large features
5. #continuousdeployment
3 Criteria for Successful Continuous Deployment
Infrastructure
What tools do
you need?
Culture Testing
Do you have checks &
balances?
How comprehensive is
your testing?
7. #continuousdeployment
Criteria #2: Culture of Collaboration
● Trust your team
● Remove red tape in the code review process
● Involve developers closely in production
operations
● Review pull requests (re: sanity checks)
83% of SaaS companies
with a high CD adoption
rate report that using a
collaboration platform
played a highly important
role in achieving CD. *
* 2015 Evans Research Survey of Software Development Professionals
8. #continuousdeployment
Criteria #3: Test Continuously
Test as early & often as possible
● Unit tests
● UI tests (automated vs. manual)
Production monitoring + Rollbacks
Zenefits was able to scale their
customer base to 10,000+
without an in-house QA team
by supplementing their testing
automation suites with manual
testing.