Continuous Delivery at Netflix: Uberconf

Continuous Delivery at Netflix: Uberconf

Uberconf presentation of Continuous Delivery at Netflix: Speed at Scale

1071b90008ea3819b0106e374600e7e1?s=128

Rob Spieldenner

June 27, 2014
Tweet

Transcript

  1. 14.

    Commit Unit Test Build Bake Deploy To Test Integration &

    Acceptance Tests Red/Black Push Continuous Delivery Pipeline
  2. 17.

    Build simplify build file with plugins add metadata calculate version

    output jar/war, sources, javadoc, rpm/deb lock dynamic dependencies
  3. 21.

    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
  4. 22.

    What Goes in the Manifest Module-Source=/mpex-common Module-Origin=ssh://git@stash.corp.netflix.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
  5. 24.

    dependencies.lock {
 "com.google.guava:guava": { "locked": "14.0.1", 
 "requested": "14.+" },


    ”junit:junit": { "locked": "4.11", "requested": "4.+" }
 }

  6. 25.
  7. 27.

    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’)
 }
 }
 }
  8. 28.
  9. 33.
  10. 35.
  11. 40.

    Monitoring How many people are watching? Can the new version

    handle load? Errors and logging suro, jmx
  12. 52.

    Continuous Delivery Pipeline Commit Unit Test Build Bake Deploy To

    Test Integration & Acceptance Tests Red/Black Push
  13. 54.
  14. 55.

    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