SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
10 Deploys a Day
a case study of

continuous
delivery at
envato
AT

john viner
PRESENTATION TEMPLATE from Envato’s Graphic River - http:/
/graphicriver.net/item/karbon-keynote-presentation-template/2580765
envato ABOUT US
7 years ago - a designer scratching an itch
creates a flash-plugin marketplace

and now …
‣
‣
‣

3.2m members
4.6m Items
10 Authors sold > $1m

‣
‣
‣

130m PVs p/m
20M Visits p/M
Item sold every 10 sec
Envato

our marketplace Sites
Envato

wordpress - our biggest market
> 3400+ Themes for Sale

> Most Popular Theme has sold 37,500 times and generated $2m in
gross revenue

> Average price of a Theme is $42

> Average sales per TF author is 2,075

> Provides a Passive Income source

!

19% of the web runs on Wordpress! (4B monthly page view)
Envato

we’ve grown - and continue to grow
> Themeforest is now Ranked ~ #180 on the Alexa Rankings

> My development team was 8, 15 months ago and is now 24
Envato

the marketplace team
40 - in melbourne
‣ 30 - remote around the world
‣

‣

delivery team
- 19 Back End Developers

- 2 Front End Developers

- 1 Operations Developer

- 5 Product Managers and UX Designers


6 Teams
‣ finance,
‣ back office,
‣ front end,
‣ maintenance
‣ search
‣ 10x
‣
Envato

marketplace tech stack
ruby on rails web app
‣ mysql database
‣ elastic Search
‣ rackspace managed hosting in USA
‣

> 90M App Server Requests per Week

> Backend Response time of 148 ms

> Front end Response time of 2.5sec

> 45 Virtual Machines 

> 4 Physical Machines (DBs, NFS)
> Avg 6 deploys a day - Peak of 10

> Average 100 commits a day 

> Peak Load of 15,000 req per minute

> 4 Physical Machines (DBs etc…)
THIS IS HOW WE ROLL
Envato

pull work, talk to Product, write code, test code
deploy code, verify production
repeat … about twice a week per developer
> Story on the wall
> flip or no flip?
> Create a Branch
> write failing test
> write code
> Run Local Tests
> Run full personal build
> create Pull request
> advertise pull request (IRC)
!

optional
> deploy to staging
> show product owner
> manual test

> wait for +1s (code review)
> Merge Pull request
> Full Master Build Green
> notify team in IRC
> deploy master to Production
> watch System - monitoring tools
> rollback if failed
> Rinse and Repeat
ENVATO

in pictures

Story
Tests
Code
ENVATO

flippin good
>Flip allows us to roll out changes to % of users

> Something might be flipped off for months

> But we Always Deploy It
ENVATO

quality
Code Review

CI Build

Deploy
coordinating reviews
and deploys .. by irc
You Need Deep Dev and
Operational Experience right?
> Luke - Graduate with 4 months Exp

> Rakesh - Swinburne Industry Student

> Ben - Front End Developer

> Emmanuel - 2 yrs Dev Exp
4 Other Developers Mentioned

Across 4 Separate Teams
ENVATO

now check the systems

New Relic
Deploy

With Change
Traceability
things can break …
And Do
ENVATO

deploys gone bad

Rollbar Error Logging
Envato

the post incident review recommends?
>1 - Improve our ability to Automatically rollback on monitored 500 errors

!

> 2 - NO Recommendation to Improve Preventative Testing

!

> Why? - Too Costly and complex to simulate production

> Why? - Would slow development flow
so who operates this
site anyway?
Envato

1 developer all developers

you build it
you run it

> 16 Developers on a Weekly Rotation

> They come out of their team

> They are Trained, have a Buddy for First Week

> Supported by a Secondary 

> They are First Line of Support for 168 hours straight
Tooling is:

> Scout , New Relic and Pingdom monitoring and generating alerts

> Pagerduty forwarding to them On-Call Developer

> Rollbar to track Errors

> IRC to find out what went wrong

> ALL Alerts are also pumped into IRC so everyone knows whats going on and to get Help!
Envato

we reflect on failures

and act to correct
Envato

but we aren’t great at operations

> We are just Good Enough right now, Just

> The rotation leaves without a continuous view of system health

> We don’t always clean up behind us, root causes often come back

> Monitoring, Metrics, Performance insights are all Operational Skills
that many developers don’t have
> We are hiring Operational Specialists for the first time

> Our Single DevOps guy is actively training all the devs - AJs Cafe
Envato

so what do we not do
> No - testing role or formal testing gate
> NO - change control gate
> No - formal comms of every change
> NO - release management
> No - separate deployment team
> NO - Separate operations team

all of these are not feasible
at 10 deploys a day
Envato

how do we solve the problems that these practices solve ?
‣

No Testing Capability

> TDD and 1000s of automated tests

> Use Production Users as your test team

> Flips help us control the rollout

> We test major infrastructure and architecture
changes in production as well … using Flips

> We Fail Fast and Loud
‣

No release management

> Releases are SMALL, no need to define
or document

> Release self-document and radiate
through IRC

‣

No change control
> Operations (i.e. Developers) know of changes
before they happen because they review them as PRs

> There are changes we cannot “signoff” as testing in
pre-prod environments

> A green build is our sign off

> Devs have skin-in-game so are incentivised for the
code to work!

> Small Batch efficiency (small deltas are easier to
identify and rollback)
Envato

OK How did we do it?
‣

it was our startup dNA
> The Team started and stayed very small (less
than 8 devs) for 4 years

> They started with this structure and process
and have never changed.

‣

it scales

> We’ve tripled the team, and split into 5 streams

> We’ve been able to scale this model
‣

but with a lag

> But it took 3 months to see the results
Envato

so do you want to drink the kooL-aid?
‣

it might not be for you

‣

> We have a tolerant savvy users

> We have users that come back to
complete a purchase if it fails

> We are in CONTROL of our full stack

‣

If you want it, you have to change

> people
‣ > processes
‣ > assumptions

‣‣

> Tech is the easy part

> You can’t optimise your “gatekeeping” processes to 10 deploys


a leap is required

> Existing processes can get you close, say once a fortnight or a week

> A leap is required to get to many times a day
Envato

distributed collaboration vs central control
quality
‣ release planning
‣ deployment
‣ operations
‣

!
did I say Continuous
Delivery or deployment?

meet the real
rockstars at
Envato …
Envato

the microlancer team
automatically deploy every
commit to master … always
Envato

whats the difference?
Envato

what our next challenges?
continuous automated reactive deployments
‣ flips + split testing and with every product feature
‣ flexibility of our infrastructure
‣ improved operations
‣

!
envato THANK YOU
@envato
@veztek
webuild.envato.com

Weitere ähnliche Inhalte

Was ist angesagt?

Quartz to Implement Scheduling Service
Quartz to Implement Scheduling ServiceQuartz to Implement Scheduling Service
Quartz to Implement Scheduling ServiceAkila Senevirathne
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD processHYS Enterprise
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouseAltinity Ltd
 
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...HostedbyConfluent
 
Version Control System
Version Control SystemVersion Control System
Version Control Systemguptaanil
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in MicroservicesRandy Shoup
 
The Anatomy Of A Performance Audit
The Anatomy Of A Performance AuditThe Anatomy Of A Performance Audit
The Anatomy Of A Performance AuditSam Bhagwat
 
Git Terminologies
Git TerminologiesGit Terminologies
Git TerminologiesYash
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Seungmin Yu
 
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out중선 곽
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for MicroservicesVõ Duy Tuấn
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Brian Brazil
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flowKnoldus Inc.
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...ScyllaDB
 
Introduction to Tensorflow.js
Introduction to Tensorflow.jsIntroduction to Tensorflow.js
Introduction to Tensorflow.jsRiza Fahmi
 
Gaganjot Kaur- The Nx Workspace.docx
Gaganjot Kaur- The Nx Workspace.docxGaganjot Kaur- The Nx Workspace.docx
Gaganjot Kaur- The Nx Workspace.docxGaganjot kaur
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case studyWoo Jin Kim
 

Was ist angesagt? (20)

Quartz to Implement Scheduling Service
Quartz to Implement Scheduling ServiceQuartz to Implement Scheduling Service
Quartz to Implement Scheduling Service
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouse
 
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...
Advanced Change Data Streaming Patterns in Distributed Systems | Gunnar Morli...
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in Microservices
 
The Anatomy Of A Performance Audit
The Anatomy Of A Performance AuditThe Anatomy Of A Performance Audit
The Anatomy Of A Performance Audit
 
Git Terminologies
Git TerminologiesGit Terminologies
Git Terminologies
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
 
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for Microservices
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flow
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...
Use ScyllaDB Alternator to Use Amazon DynamoDB API, Everywhere, Better, More ...
 
Introduction to Tensorflow.js
Introduction to Tensorflow.jsIntroduction to Tensorflow.js
Introduction to Tensorflow.js
 
Gaganjot Kaur- The Nx Workspace.docx
Gaganjot Kaur- The Nx Workspace.docxGaganjot Kaur- The Nx Workspace.docx
Gaganjot Kaur- The Nx Workspace.docx
 
Source control
Source controlSource control
Source control
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case study
 

Ähnlich wie 10 Deploys a Day - A Case Study of Continuous Delivery at Envato

Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...AgileNetwork
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015Yuval Yeret
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015Yuval Yeret
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Paul Boocock
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Tieturi Oy
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentSmartling
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysAndreas Grabner
 
Unit Test + Functional Programming = Love
Unit Test + Functional Programming = LoveUnit Test + Functional Programming = Love
Unit Test + Functional Programming = LoveAlvaro Videla
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJwooldridge
 
Frappé / ERPNext Open Day February 2016
Frappé / ERPNext Open Day February 2016Frappé / ERPNext Open Day February 2016
Frappé / ERPNext Open Day February 2016Anand Doshi
 
How to approach Enterprise transformation
How to approach Enterprise transformationHow to approach Enterprise transformation
How to approach Enterprise transformationMirco Hering
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsAgile Lietuva
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0Joakim Lindbom
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJoão Miranda
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...Gene Kim
 
How NOT to scale agile
How NOT to scale agileHow NOT to scale agile
How NOT to scale agileRenato Willi
 

Ähnlich wie 10 Deploys a Day - A Case Study of Continuous Delivery at Envato (20)

Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
 
Enterprise DevOps
Enterprise DevOps Enterprise DevOps
Enterprise DevOps
 
Unit Test + Functional Programming = Love
Unit Test + Functional Programming = LoveUnit Test + Functional Programming = Love
Unit Test + Functional Programming = Love
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and Small
 
Frappé / ERPNext Open Day February 2016
Frappé / ERPNext Open Day February 2016Frappé / ERPNext Open Day February 2016
Frappé / ERPNext Open Day February 2016
 
How to approach Enterprise transformation
How to approach Enterprise transformationHow to approach Enterprise transformation
How to approach Enterprise transformation
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wants
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
 
How NOT to scale agile
How NOT to scale agileHow NOT to scale agile
How NOT to scale agile
 

Kürzlich hochgeladen

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Kürzlich hochgeladen (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

10 Deploys a Day - A Case Study of Continuous Delivery at Envato

  • 1. 10 Deploys a Day a case study of continuous delivery at envato AT john viner PRESENTATION TEMPLATE from Envato’s Graphic River - http:/ /graphicriver.net/item/karbon-keynote-presentation-template/2580765
  • 2. envato ABOUT US 7 years ago - a designer scratching an itch creates a flash-plugin marketplace and now … ‣ ‣ ‣ 3.2m members 4.6m Items 10 Authors sold > $1m ‣ ‣ ‣ 130m PVs p/m 20M Visits p/M Item sold every 10 sec
  • 4. Envato wordpress - our biggest market > 3400+ Themes for Sale > Most Popular Theme has sold 37,500 times and generated $2m in gross revenue > Average price of a Theme is $42 > Average sales per TF author is 2,075 > Provides a Passive Income source ! 19% of the web runs on Wordpress! (4B monthly page view)
  • 5. Envato we’ve grown - and continue to grow > Themeforest is now Ranked ~ #180 on the Alexa Rankings > My development team was 8, 15 months ago and is now 24
  • 6. Envato the marketplace team 40 - in melbourne ‣ 30 - remote around the world ‣ ‣ delivery team - 19 Back End Developers - 2 Front End Developers - 1 Operations Developer - 5 Product Managers and UX Designers 6 Teams ‣ finance, ‣ back office, ‣ front end, ‣ maintenance ‣ search ‣ 10x ‣
  • 7. Envato marketplace tech stack ruby on rails web app ‣ mysql database ‣ elastic Search ‣ rackspace managed hosting in USA ‣ > 90M App Server Requests per Week > Backend Response time of 148 ms > Front end Response time of 2.5sec > 45 Virtual Machines > 4 Physical Machines (DBs, NFS) > Avg 6 deploys a day - Peak of 10 > Average 100 commits a day > Peak Load of 15,000 req per minute > 4 Physical Machines (DBs etc…)
  • 8. THIS IS HOW WE ROLL
  • 9. Envato pull work, talk to Product, write code, test code deploy code, verify production repeat … about twice a week per developer > Story on the wall > flip or no flip? > Create a Branch > write failing test > write code > Run Local Tests > Run full personal build > create Pull request > advertise pull request (IRC) ! optional > deploy to staging > show product owner > manual test > wait for +1s (code review) > Merge Pull request > Full Master Build Green > notify team in IRC > deploy master to Production > watch System - monitoring tools > rollback if failed > Rinse and Repeat
  • 11. ENVATO flippin good >Flip allows us to roll out changes to % of users > Something might be flipped off for months > But we Always Deploy It
  • 13. coordinating reviews and deploys .. by irc You Need Deep Dev and Operational Experience right? > Luke - Graduate with 4 months Exp > Rakesh - Swinburne Industry Student > Ben - Front End Developer > Emmanuel - 2 yrs Dev Exp 4 Other Developers Mentioned Across 4 Separate Teams
  • 14. ENVATO now check the systems New Relic Deploy With Change Traceability
  • 15. things can break … And Do
  • 17. Envato the post incident review recommends? >1 - Improve our ability to Automatically rollback on monitored 500 errors ! > 2 - NO Recommendation to Improve Preventative Testing ! > Why? - Too Costly and complex to simulate production > Why? - Would slow development flow
  • 18. so who operates this site anyway?
  • 19. Envato 1 developer all developers you build it you run it > 16 Developers on a Weekly Rotation > They come out of their team > They are Trained, have a Buddy for First Week > Supported by a Secondary > They are First Line of Support for 168 hours straight Tooling is: > Scout , New Relic and Pingdom monitoring and generating alerts > Pagerduty forwarding to them On-Call Developer > Rollbar to track Errors > IRC to find out what went wrong > ALL Alerts are also pumped into IRC so everyone knows whats going on and to get Help!
  • 20. Envato we reflect on failures and act to correct
  • 21. Envato but we aren’t great at operations > We are just Good Enough right now, Just > The rotation leaves without a continuous view of system health > We don’t always clean up behind us, root causes often come back > Monitoring, Metrics, Performance insights are all Operational Skills that many developers don’t have > We are hiring Operational Specialists for the first time > Our Single DevOps guy is actively training all the devs - AJs Cafe
  • 22. Envato so what do we not do > No - testing role or formal testing gate > NO - change control gate > No - formal comms of every change > NO - release management > No - separate deployment team > NO - Separate operations team all of these are not feasible at 10 deploys a day
  • 23. Envato how do we solve the problems that these practices solve ? ‣ No Testing Capability > TDD and 1000s of automated tests > Use Production Users as your test team > Flips help us control the rollout > We test major infrastructure and architecture changes in production as well … using Flips > We Fail Fast and Loud ‣ No release management > Releases are SMALL, no need to define or document > Release self-document and radiate through IRC ‣ No change control > Operations (i.e. Developers) know of changes before they happen because they review them as PRs > There are changes we cannot “signoff” as testing in pre-prod environments > A green build is our sign off > Devs have skin-in-game so are incentivised for the code to work! > Small Batch efficiency (small deltas are easier to identify and rollback)
  • 24. Envato OK How did we do it? ‣ it was our startup dNA > The Team started and stayed very small (less than 8 devs) for 4 years > They started with this structure and process and have never changed. ‣ it scales > We’ve tripled the team, and split into 5 streams > We’ve been able to scale this model ‣ but with a lag > But it took 3 months to see the results
  • 25. Envato so do you want to drink the kooL-aid? ‣ it might not be for you ‣ > We have a tolerant savvy users > We have users that come back to complete a purchase if it fails > We are in CONTROL of our full stack ‣ If you want it, you have to change > people ‣ > processes ‣ > assumptions ‣‣ > Tech is the easy part > You can’t optimise your “gatekeeping” processes to 10 deploys a leap is required > Existing processes can get you close, say once a fortnight or a week > A leap is required to get to many times a day
  • 26. Envato distributed collaboration vs central control quality ‣ release planning ‣ deployment ‣ operations ‣ !
  • 27. did I say Continuous Delivery or deployment? meet the real rockstars at Envato …
  • 28. Envato the microlancer team automatically deploy every commit to master … always
  • 30. Envato what our next challenges? continuous automated reactive deployments ‣ flips + split testing and with every product feature ‣ flexibility of our infrastructure ‣ improved operations ‣ !