SlideShare a Scribd company logo
1 of 31
Download to read offline
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

More Related Content

What's hot

Staying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with KafkaStaying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with KafkaRichard Gee
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangDatabricks
 
Oracle 19c initialization parameters
Oracle 19c initialization parametersOracle 19c initialization parameters
Oracle 19c initialization parametersPablo Echeverria
 
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...ScyllaDB
 
redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바NeoClova
 
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Amazon Web Services
 
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - PacemakerTommy Lee
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesAjeet Singh Raina
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08Kenny Gryp
 
Network architecture design for microservices on GCP
Network architecture design for microservices on GCPNetwork architecture design for microservices on GCP
Network architecture design for microservices on GCPRaphaël FRAYSSE
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git labAbdelghani Azri
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScaleMariaDB plc
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperSaurav Haloi
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACKristofferson A
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 

What's hot (20)

Staying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with KafkaStaying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with Kafka
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Data mining tools overall
Data mining tools overallData mining tools overall
Data mining tools overall
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
 
Oracle 19c initialization parameters
Oracle 19c initialization parametersOracle 19c initialization parameters
Oracle 19c initialization parameters
 
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
 
redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바
 
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
 
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
 
Ansible
AnsibleAnsible
Ansible
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
 
Network architecture design for microservices on GCP
Network architecture design for microservices on GCPNetwork architecture design for microservices on GCP
Network architecture design for microservices on GCP
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git lab
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScale
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 

Similar to 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
 

Similar to 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
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

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 ‣ !