16
The Anatomy of Continuous Deployment At Scale John Viner (Development Manager) CTO Summit 2016

The Anatomy of Continuous Deployment at Scale

Embed Size (px)

Citation preview

Page 1: The Anatomy of Continuous Deployment at Scale

The Anatomy of Continuous Deployment

At Scale

John Viner (Development Manager)

CTO Summit 2016

Page 2: The Anatomy of Continuous Deployment at Scale

Who is Envato?

Page 3: The Anatomy of Continuous Deployment at Scale

We run a two-sided Marketplace for creative assets that has paid out $450 million to our

“Authors” in the last 10 years7 million registered

users10 million items for

sale

The Business

Page 4: The Anatomy of Continuous Deployment at Scale

25,000 requests a minute160m 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

Page 5: The Anatomy of Continuous Deployment at Scale

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.”

Page 6: The Anatomy of Continuous Deployment at Scale

Foundational Engineering Capabilities

Visible Operational Monitoring

Feature Toggle Tooling

Rollback Capability

Automated Build and Deploy Toolset

Comprehensive Automated Test Suite

Quality Code

Continuous Deployment

Page 7: The Anatomy of Continuous Deployment at Scale

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

Page 8: The Anatomy of Continuous Deployment at Scale

The Lifecycle of a Change at Envato

Pull Request (PR) for all changes - GithubDeveloper 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 DowntimeSchema Migrations with Zero Downtime

Page 9: The Anatomy of Continuous Deployment at Scale

The Thumbs Up

Page 10: The Anatomy of Continuous Deployment at Scale

Communication

Page 11: The Anatomy of Continuous Deployment at Scale

The Numbers for June 2016

~ 40 developers3000 total builds (2.5 builds p/dev/day)

500 Pull Requests Closed400 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 YearsPull Request Size - 37 lines changed , 3 files

changed

Page 12: The Anatomy of Continuous Deployment at Scale

Scaling the Team

Page 13: The Anatomy of Continuous Deployment at Scale

Myths Dispelled

Continuous Deployment is only for:• Small Teams• Small Scale• Low Commercial Impact of Outage

Page 14: The Anatomy of Continuous Deployment at Scale

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

Page 15: The Anatomy of Continuous Deployment at Scale

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)

Page 16: The Anatomy of Continuous Deployment at Scale

Thank you!