Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Anatomy of Continuous Deployment
At Scale
John Viner (Development Manager)
CTO Summit 2016
Who is Envato?
We run a two-sided Marketplace for creative assets
that has paid out $450 million to our “Authors” in the
last 10 years
7 ...
25,000 requests a minute
160m Page Views a Month
1 sale a second at Peak
120,000 lines of code (Ruby on Rails)
25,000 test...
Continuous Deployment vs Continuous Delivery
“Continuous Delivery is a software development
discipline where you build sof...
Foundational Engineering Capabilities
Visible Operational
Monitoring
Feature Toggle Tooling
Rollback Capability
Automated ...
Foundational Organisational Behaviours
MTTR Focus
No QA / Approval Gates
Access to Production
Blameless Post Incident Revi...
The Lifecycle of a Change at Envato
Pull Request (PR) for all changes - Github
Developer Merges PR with at least 1 review
...
The Thumbs Up
Communication
The Numbers for June 2016
~ 40 developers
3000 total builds (2.5 builds p/dev/day)
500 Pull Requests Closed
400 deployment...
Scaling the Team
Myths Dispelled
Continuous Deployment is only for:
• Small Teams
• Small Scale
• Low Commercial Impact of Outage
The Benefits for Envato
1. Reduced Risk.
• Small Changes are Easier to Identify and Rollback (or forward)
2. Increases Spe...
How to Get Started
• Start on a Small System
• Encourage a Culture of Developer Ownership
• Invest in Test Automation
• Au...
Thank you!
Upcoming SlideShare
Loading in …5
×

The Anatomy of Continuous Deployment at Scale

862 views

Published on

Envato runs one of the world’s highest traffic websites, Themeforest.net, which is 1 of the 8 sites served by a 2-sided e-commerce platform called Envato Market. The Envato Market engineering team juggles serving around 30,000 requests per minute whilst automatically deploying changes once every 30 minutes across a team of 50 developers that contribute to the one codebase.

This presentation describes how we do this and what our the foundational engineering and organisational practices require to pull this off.

Published in: Technology
  • Login to see the comments

The Anatomy of Continuous Deployment at Scale

  1. 1. The Anatomy of Continuous Deployment At Scale John Viner (Development Manager) CTO Summit 2016
  2. 2. Who is Envato?
  3. 3. We run a two-sided Marketplace for creative assets that has paid out $450 million to our “Authors” in the last 10 years 7 million registered users 10 million items for sale The Business
  4. 4. 25,000 requests a minute 160m Page Views a Month 1 sale a second at Peak 120,000 lines of code (Ruby on Rails) 25,000 tests 75 contributors, 10 years old The Tech
  5. 5. Continuous Deployment vs Continuous Delivery “Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.” “Continuous Deployment is a software development practice in which every code change is deployed to production, automatically.”
  6. 6. Foundational Engineering Capabilities Visible Operational Monitoring Feature Toggle Tooling Rollback Capability Automated Build and Deploy Toolset Comprehensive Automated Test Suite Quality Code Continuous Deployment
  7. 7. Foundational Organisational Behaviours MTTR Focus No QA / Approval Gates Access to Production Blameless Post Incident Reviews Developers on First Line Support Pairing and/or Peer Review Continuous Deployment
  8. 8. The Lifecycle of a Change at Envato Pull Request (PR) for all changes - Github Developer Merges PR with at least 1 review Automated Tests executed (no perf tests) - Buildkite Automated Deploy executed on passed test - Samson + CodeDeploy Rolling Deploy of Application with Zero Downtime Schema Migrations with Zero Downtime
  9. 9. The Thumbs Up
  10. 10. Communication
  11. 11. The Numbers for June 2016 ~ 40 developers 3000 total builds (2.5 builds p/dev/day) 500 Pull Requests Closed 400 deployments (20 p/day, 0.5 p/dev/day, peak 25 per day) 4.5 hour cycle time (from first commit to deploy - working hours) 8000 deployments in the last 2 Years Pull Request Size - 37 lines changed , 3 files changed
  12. 12. Scaling the Team
  13. 13. Myths Dispelled Continuous Deployment is only for: • Small Teams • Small Scale • Low Commercial Impact of Outage
  14. 14. The Benefits for Envato 1. Reduced Risk. • Small Changes are Easier to Identify and Rollback (or forward) 2. Increases Speed to Market • Small Batch Efficiency - Faster Throughput 3. Increases Developer Happiness • Code in Production makes for happy devs • Supporting Production increases empathy with customer
  15. 15. How to Get Started • Start on a Small System • Encourage a Culture of Developer Ownership • Invest in Test Automation • Automate Your Build and Deployment Pipeline • Invest in Feature Toggles • Measure Your Cycle Time • Optimise for Mean Time to Recovery (not Failure)
  16. 16. Thank you!

×