continuous delivery at netflix

39
Continuous Delivery at Netflix Speed at Scale Monday, December 23, 13

Upload: rob-spieldenner

Post on 15-Jan-2015

1.504 views

Category:

Technology


1 download

DESCRIPTION

A high level view of how Netflix culture, open source technology, and custom software can build a continuous delivery pipeline to allow multiple deployments a day.

TRANSCRIPT

Page 1: Continuous Delivery at Netflix

Continuous Delivery at NetflixSpeed at Scale

Monday, December 23, 13

Page 2: Continuous Delivery at Netflix

Rob Spieldenner

Senior Software Engineer on Engineering Tools at Netflix

@robspieldenner -> Twitter

Monday, December 23, 13

Page 3: Continuous Delivery at Netflix

Netflix Culture

Monday, December 23, 13

Page 4: Continuous Delivery at Netflix

Culture Deckhttp://jobs.netflix.com/

Monday, December 23, 13

Page 5: Continuous Delivery at Netflix

Freedom & Responsibility

Monday, December 23, 13

Page 6: Continuous Delivery at Netflix

Context, not Control

Monday, December 23, 13

Page 7: Continuous Delivery at Netflix

Self Service

Monday, December 23, 13

Page 8: Continuous Delivery at Netflix

Developers on call for their services

Monday, December 23, 13

Page 9: Continuous Delivery at Netflix

Netflix OSShttp://netflix.github.io/

Monday, December 23, 13

Page 10: Continuous Delivery at Netflix

OODA Loop - Observe, Orient, Decide, Act

Monday, December 23, 13

Page 11: Continuous Delivery at Netflix

Commit Unit TestBuild Bake Deploy To Test

Integration & Acceptance

Tests

Red/Black Push

Continuous Delivery Pipeline

Monday, December 23, 13

Page 12: Continuous Delivery at Netflix

Commit and Code Review

Monday, December 23, 13

Page 13: Continuous Delivery at Netflix

Build

simplify build file with plugins

add metadata

calculate version

output jar/war, sources, javadoc, rpm/deb

Monday, December 23, 13

Page 14: Continuous Delivery at Netflix

Ant

build.xml<project name="example"> <property environment="env"/> <import file="${env.CBF_HOME}/library.xml"/></project>

ivy.xml

list dependencies

list publications

Monday, December 23, 13

Page 15: Continuous Delivery at Netflix

Gradle

build.gradleapply plugin: ‘nebula’publications { JAR JAVADOC SOURCES}dependencies { testCompile ‘junit:junit:4.+’}

Monday, December 23, 13

Page 16: Continuous Delivery at Netflix

Jenkins

Monday, December 23, 13

Page 18: Continuous Delivery at Netflix

Job DSL Example

exampledef project = 'quidryan/aws-sdk-test'def branchApi = new URL(“https://api.github.com/repos/${project}/branches”)def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())branches.each { def branchName = it.name job { name “${project}-${branchName}”.replaceAll(‘/’, ‘-’) scm { git(“git://github.com/${project}.git”, branchName) } steps { gradle(‘test’) } }}

Monday, December 23, 13

Page 19: Continuous Delivery at Netflix

Bake

Monday, December 23, 13

Page 20: Continuous Delivery at Netflix

aminatorhttps://github.com/Netflix/aminator

Monday, December 23, 13

Page 21: Continuous Delivery at Netflix

chef for base image

Monday, December 23, 13

Page 22: Continuous Delivery at Netflix

Apply deb/rpm, snapshot

Monday, December 23, 13

Page 23: Continuous Delivery at Netflix

Unit of deployment

Monday, December 23, 13

Page 24: Continuous Delivery at Netflix

Deploy

Monday, December 23, 13

Page 25: Continuous Delivery at Netflix

Asgardhttps://github.com/Netflix/asgard

Monday, December 23, 13

Page 26: Continuous Delivery at Netflix

Monday, December 23, 13

Page 27: Continuous Delivery at Netflix

UI or REST API

Monday, December 23, 13

Page 28: Continuous Delivery at Netflix

Canary Deploys

Monday, December 23, 13

Page 29: Continuous Delivery at Netflix

Red / Black Push

Monday, December 23, 13

Page 30: Continuous Delivery at Netflix

Testing

Webdriver

Geb

Betamax

and manual

Monday, December 23, 13

Page 31: Continuous Delivery at Netflix

Monitoring

How many people are watching?

Can the new version handle load?

Errors and logging

suro, jmx

Monday, December 23, 13

Page 32: Continuous Delivery at Netflix

Alert on issues

Monday, December 23, 13

Page 33: Continuous Delivery at Netflix

Maybe automatic rollback

Monday, December 23, 13

Page 34: Continuous Delivery at Netflix

Resiliency / Anti-Fragility

Monday, December 23, 13

Page 35: Continuous Delivery at Netflix

Simian Armyhttps://github.com/Netflix/SimianArmy

Chaos Monkey

Chaos Gorilla

Chaos Kong

Latency Monkey

Janitor Monkey

Conformity Monkey

Monday, December 23, 13

Page 36: Continuous Delivery at Netflix

Assume services will break, disappear, slow

Monday, December 23, 13

Page 37: Continuous Delivery at Netflix

Books

Monday, December 23, 13

Page 39: Continuous Delivery at Netflix

Netflix is Hiringhttp://jobs.netflix.com/

Monday, December 23, 13