Getting to
Continuous Deployment
Kevin Bell
Developer Evangelist
Fred Stevens-Smith
CEO & Co-Founder
#continuousdeployment
Agenda
● What is CD and why do it?
● Infrastructure
● Culture
● Testing
● Q&A
#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)
#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
#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?
#continuousdeployment
Criteria #1: Infrastructure Basics
Continuous
Integration
(CI) Servers
Version Control
Unit +
Integration
Testing
Monitoring
#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
#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.
#continuousdeployment
But wait! Other things to consider…..
Zero downtime deployments
Feature Flags
Gradual roll-outs
Questions?
Kevin Bell
Developer Evangelist
Fred Stevens-Smith
CEO & Co-Founder
Thank you!

Getting to Continuous Deployment (Webinar Slides)

  • 1.
    Getting to Continuous Deployment KevinBell Developer Evangelist Fred Stevens-Smith CEO & Co-Founder
  • 2.
    #continuousdeployment Agenda ● What isCD and why do it? ● Infrastructure ● Culture ● Testing ● Q&A
  • 3.
    #continuousdeployment What is ContinuousDeployment? 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 ContinuousDeployment? - 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 forSuccessful Continuous Deployment Infrastructure What tools do you need? Culture Testing Do you have checks & balances? How comprehensive is your testing?
  • 6.
    #continuousdeployment Criteria #1: InfrastructureBasics Continuous Integration (CI) Servers Version Control Unit + Integration Testing Monitoring
  • 7.
    #continuousdeployment Criteria #2: Cultureof 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: TestContinuously 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.
  • 9.
    #continuousdeployment But wait! Otherthings to consider….. Zero downtime deployments Feature Flags Gradual roll-outs
  • 10.
  • 11.