Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Continuous Delivery at Netflix: Uberconf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Rob Spieldenner
June 27, 2014
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Continuous Delivery at Netflix: Uberconf
Uberconf presentation of Continuous Delivery at Netflix: Speed at Scale
Rob Spieldenner
June 27, 2014
More Decks by Rob Spieldenner
See All by Rob Spieldenner
Migrating Nebula Plugins to the New Model and TestKit
rspieldenner
1
160
Nebula: Netflix's OSS Gradle Plugins (Bay Area Gradle Users Meetup)
rspieldenner
0
130
Nebula: Netflix's OSS Gradle Plugins
rspieldenner
0
820
Continuous Delivery at Netflix
rspieldenner
3
270
Other Decks in Programming
See All in Programming
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
800
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
3.6k
数百円から始めるRuby電子工作
tarosay
0
120
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.5k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
360
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
390
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
180
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
320
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
1
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
440
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
420
Thoughts on Productivity
jonyablonski
76
5.3k
Everyday Curiosity
cassininazir
0
270
The Language of Interfaces
destraynor
162
27k
The Invisible Side of Design
smashingmag
301
52k
Optimizing for Happiness
mojombo
378
71k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
660
Transcript
Continuous Delivery at Netflix Speed at Scale
Rob Spieldenner Senior Software Engineer on Engineering Tools team at
Netflix @robspieldenner -> Twitter
Speed breaks software Scale breaks hardware Speed at
Scale breaks everything
Netflix Culture
Culture Deck http://jobs.netflix.com/
Freedom & Responsibility
Context, not Control
Highly Aligned, Loosely Coupled
Act in Netflix’s Best Interest
Self Service
Developers on call for their services
Netflix OSS http://netflix.github.io/
OODA Loop - Observe, Orient, Decide, Act
Commit Unit Test Build Bake Deploy To Test Integration &
Acceptance Tests Red/Black Push Continuous Delivery Pipeline
Commit and Code Review
Pull Requests
Build simplify build file with plugins add metadata calculate version
output jar/war, sources, javadoc, rpm/deb lock dynamic dependencies
Ant build.xml <project name="example"> <property environment="env"/> <import file="${env.CBF_HOME}/library.xml"/> </project> ivy.xml
list dependencies list publications
Gradle build.gradle apply plugin: ‘nebula’ apply plugin: ‘java’ dependencies
{ testCompile ‘junit:junit:4.+’ }
Nebula Plugins http://nebula-plugins.github.io/
apply plugin: ‘nebula.nebula-project’ Builds Javadoc, Sources and a Test jar
Record information about the build and stores it in the .jar, via gradle-info-plugin Easy specification of people involved in a project via gradle-contacts-plugin
What Goes in the Manifest Module-Source=/mpex-common Module-Origin=ssh://
[email protected]
flix.com:7999/nexmpl/multiprojectexample.git Change=767e5d7 Manifest-Version=1.0 Implementation-Title=netflix#mpex-common;3.0.0
Implementation-Version=3.0.0 Built-Status=snapshot Built-By=rspieldenner Build-Date=2014-06-12_11:24:00 Gradle-Version=1.12-20140604072223+0000 Build-Host=localhost Build-Job=LOCAL Build-Number=LOCAL Build-Id=LOCAL Created-By=1.7.0_51-b13 (Oracle Corporation) Build-Java-Version=1.7.0_51 Nebula-Version=1.48 Implementation-Vendor=Netflix, Inc. X-Compile-Target-JDK=1.7 X-Compile-Source-JDK=1.7 Module-Owner=person@netflix.com Module-Email=team@netflix.com
apply plugin: ‘nebula.gradle- dependency-lock’ dependencies { compile ‘com.google.guava:guava:14.+’ testCompile ‘junit:junit:4.+’
}
dependencies.lock { "com.google.guava:guava": { "locked": "14.0.1", "requested": "14.+" },
”junit:junit": { "locked": "4.11", "requested": "4.+" } }
Jenkins
Job-DSL https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL +Plugin
Job DSL Example example def 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’) } } }
Bake
aminator https://github.com/Netflix/aminator
chef for base image
Apply deb/rpm, snapshot
Unit of deployment
Deploy
Asgard https://github.com/Netflix/asgard
None
UI or REST API
Canary Deploys
Red / Black Push
Testing Webdriver Geb Betamax and manual
Monitoring How many people are watching? Can the new version
handle load? Errors and logging suro, jmx
Alert on issues
Maybe automatic rollback
Resiliency / Anti-Fragility
Simian Army https://github.com/Netflix/SimianArmy Chaos Monkey Chaos Gorilla Chaos Kong Latency
Monkey Janitor Monkey Conformity Monkey
Chaos Monkey randomly kill running instances
Chaos Gorilla take down an availability zone
Chaos Kong take down a region
Latency Monkey inject delays, timeout, latency
Janitor Monkey clean up unused instances
Conformity Monkey make sure instances follow rules
Assume services will break, disappear, have latency
Continuous Delivery Pipeline Commit Unit Test Build Bake Deploy To
Test Integration & Acceptance Tests Red/Black Push
Future Work Mesos based workflow engine Docker containers Build Insight/Metrics
Books
Adrian Cockcroft Flowcon Keynote - Velocity and Volume (or Speed
Wins) - http://www.youtube.com/ watch?v=wyWI3gLpB8o Roy Rapoport - Cloud Operations at Netflix - http:// www.youtube.com/watch?v=7779Wrun5fo AWS re:Invent - http://reinvent.awsevents.com/ recap2013.html Other Presentations
Netflix is Hiring http://jobs.netflix.com/