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
Rob Spieldenner
June 27, 2014
Programming
0
200
Continuous Delivery at Netflix: Uberconf
Uberconf presentation of Continuous Delivery at Netflix: Speed at Scale
Rob Spieldenner
June 27, 2014
Tweet
Share
More Decks by Rob Spieldenner
See All by Rob Spieldenner
Migrating Nebula Plugins to the New Model and TestKit
rspieldenner
1
120
Nebula: Netflix's OSS Gradle Plugins (Bay Area Gradle Users Meetup)
rspieldenner
0
89
Nebula: Netflix's OSS Gradle Plugins
rspieldenner
0
700
Continuous Delivery at Netflix
rspieldenner
3
250
Other Decks in Programming
See All in Programming
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
160
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
810
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
240
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
4
790
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
210
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1k
103 Early Hints
sugi_0000
1
260
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
310
iOS開発におけるCopilot For XcodeとCode Completion / copilot for xcode
fuyan777
1
150
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
2
460
情報漏洩させないための設計
kubotak
4
870
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
530
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Faster Mobile Websites
deanohume
305
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Gamification - CAS2011
davidbonilla
80
5.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Testing 201, or: Great Expectations
jmmastey
41
7.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Facilitating Awesome Meetings
lara
50
6.1k
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/