Engineering Velocity: Shifting the Curve at Netflix

33
Engineering Velocity: Shifting the Curve at Netflix Dianne Marsh (@dmarsh) QConNY 2014
  • date post

    17-Oct-2014
  • Category

    Engineering

  • view

    4.346
  • download

    1

description

QCon New York keynote

Transcript of Engineering Velocity: Shifting the Curve at Netflix

Page 1: Engineering Velocity: Shifting the Curve at Netflix

Engineering Velocity: Shifting the Curve at NetflixDianne Marsh (@dmarsh)

QConNY 2014

Page 2: Engineering Velocity: Shifting the Curve at Netflix

en-gi-neer-ing + ve-loc-i-ty !

applying science and technology to designing and building speed into a system

Page 3: Engineering Velocity: Shifting the Curve at Netflix

Availability vs. Rate of Change

Avai

labl

ity (i

n 9’

s)

0

1

2

3

4

5

6

Rate of Change0 10 100 1000

Page 4: Engineering Velocity: Shifting the Curve at Netflix

Shift the Curve

Avai

labl

ity (i

n 9’

s)

0

1

2

3

4

5

6

Rate of Change0 10 100 1000 10000

Page 5: Engineering Velocity: Shifting the Curve at Netflix

Free the People. Optimize the Tools.

Page 6: Engineering Velocity: Shifting the Curve at Netflix

CultureFreedom and Responsibility

http://www.slideshare.net/reed2001/culture-1798664

Page 7: Engineering Velocity: Shifting the Curve at Netflix

With Freedom comes Responsibility

Page 8: Engineering Velocity: Shifting the Curve at Netflix

Managers’ Role

Context, not Control Loosely coupled, Tightly aligned Attract and retain great talent!

Page 9: Engineering Velocity: Shifting the Curve at Netflix

Get out of the Way

Freedom to Innovate

Page 10: Engineering Velocity: Shifting the Curve at Netflix

Support Experimentation !

How We Built a Predictive Autoscaling Engine

http://techblog.netflix.com/2013/11/scryer-netflixs-predictive-auto-scaling.html

Page 11: Engineering Velocity: Shifting the Curve at Netflix

Support Independent Paths of Exploration

Page 12: Engineering Velocity: Shifting the Curve at Netflix

Build a Blameless Culture

Page 13: Engineering Velocity: Shifting the Curve at Netflix

Developers deploy their own code

Rapid

Innovation Detection Response

Page 14: Engineering Velocity: Shifting the Curve at Netflix

Optimize your Tools

Page 15: Engineering Velocity: Shifting the Curve at Netflix

Netflix Build Language

• Based on Gradle

• Internal and Open Source

• Gradle Summit talk:

http://www.slideshare.net/quidryan/gradle-summit-2014-nebula

https://github.com/nebula-plugins

Page 16: Engineering Velocity: Shifting the Curve at Netflix

Jenkins Job DSL

Configuration as Code

Groovy Script

Scripts go in Version Control

http://www.slideshare.net/quidryan/configuration-as-code

Page 17: Engineering Velocity: Shifting the Curve at Netflix

Aminator

Create AMI from Base AMI

Image contains service and everything needed to run it

Builds Unit of Deployment for Test and Prod

Abstracts Cloud Details

http://techblog.netflix.com/2013/03/ami-creation-with-aminator.html

Page 18: Engineering Velocity: Shifting the Curve at Netflix

Asgard

Deploys Netflix to the Cloud

Red/Black push

Developed to address delays in rollback

http://www.infoq.com/presentations/asgard

Page 19: Engineering Velocity: Shifting the Curve at Netflix

Red/Black Push• Scale up new instances while running the old version

• Cloud Native

• Turn on traffic to new ASG

• Canary Analysis

• Turn off traffic to old ASG

• Wait … Analyze … Roll Back?

Page 20: Engineering Velocity: Shifting the Curve at Netflix

Canary Analysis

!

• Production Deployment Pattern

• Compare Metrics vs. Baseline Version

• “Canary Analyze All The Things: How we learned to Keep Calm and Release Often”, Roy Rapoport

www.slideshare.net/royrapoport/20140612-q-con-canary-analysis

Page 21: Engineering Velocity: Shifting the Curve at Netflix

Continuous Delivery Workflow

Support the Journey

Judges between Stages

Represent Best Practices

http://techblog.netflix.com/2013/09/glisten-groovy-way-to-use-amazons.html

Page 22: Engineering Velocity: Shifting the Curve at Netflix

One Click Deployment?

Page 23: Engineering Velocity: Shifting the Curve at Netflix

Regional Isolation

Limit Impact of Human Error

• Stagger Deployments?

• Canary Testing per Region?

Know your Service!

Page 24: Engineering Velocity: Shifting the Curve at Netflix

Multi-Region Consistency

Build Tooling to:

• Schedule Deployments

• Prefer Off-Peak

• Choose Next Available Region

• Provide Visibility by Region

Page 25: Engineering Velocity: Shifting the Curve at Netflix

http://www.infoq.com/presentations/netflix-resiliency-failure-cloud

Page 26: Engineering Velocity: Shifting the Curve at Netflix

Chaos Monkey

Kills Running Instances

• Simulates failures inherent to running in the cloud

• In Production

Page 27: Engineering Velocity: Shifting the Curve at Netflix

Latency Monkey

Introduces Latency between services

Page 28: Engineering Velocity: Shifting the Curve at Netflix

Conformity Monkey

Have Deployments Diverged?

• Balance Regional Consistency with Regional Isolation

• Build Best Practices into Tooling and Reporting

Page 29: Engineering Velocity: Shifting the Curve at Netflix

Janitor Monkey

Reduce Cognitive Load and Cost

• Remove unused instances

• Uniform way to clean up

Page 30: Engineering Velocity: Shifting the Curve at Netflix

Shifting the Curve with Tools at Netflix• Value Self-Service

• Test Everywhere

• Awareness of Multiple Regions

• Best Practices Represented in Tooling

• Recover Quickly and Easily

• Be Cloud Native

• Respect the Journey

Page 31: Engineering Velocity: Shifting the Curve at Netflix

Shifting the Curve with Culture at Netflix

• Free the People!

• Context not Control

• Freedom to Experiment

• Blameless Culture

Page 32: Engineering Velocity: Shifting the Curve at Netflix

ArsTechnica, November 2012

“As the number of applications and the scale of the campaign's AWS infrastructure use climbed, the DevOps team shifted to using Asgard—an open-source tool developed by Netflix to

manage cloud deployments.”

Page 33: Engineering Velocity: Shifting the Curve at Netflix

Thanks!

Dianne Marsh (@dmarsh)

[email protected]