Transitioning Towards Continuous Delivery

A brief overview of how Continuous Delivery was adopted at Instagram and how it is/can be used at Bloomberg

Spencer Carver - October 14, 2016

Pretext

The information from Instagram in these slides is summarized from was Michael Gorven's talk "Continuous Deployment to Millions of Users 40 Times A Day" at Velocity NY on September 21, 2016.

If anything differs from the way it was originally presented, it is the fault of the current presenter's memory.

Instagram's Delivery Process
v1

1. Developer opens a PR

1

2. Code Review

2

4. Staging Verification

3

5. Canary Prod Verification

4

6. Staged Rollout (Cluster -> Region -> Fleet)

5

6

3. Test Suite

Manual

Automated

Instagram's Delivery Process
v2

1. Developer opens a PR

1

2. Code Review

2

4. Staging Verification

3

5. Canary Prod Verification

4

6. Staged Rollout (Cluster -> Region -> Fleet)

5

6

3. Test Suite

Manual

Automated

Instagram's Delivery Process
v2.5

1. Developer opens a PR

1

2. Code Review

2

4. Staging Verification

3

5. Canary Prod Verification

4

6. Staged Rollout (Cluster -> Region -> Fleet)

5

6

3. Test Suite

Manual

Automated

Instagram's Delivery Process
v3

1. Developer opens a PR

2

2. Code Review

1

4. Staging Verification

3

5. Canary Prod Verification

4

6. Staged Rollout (Cluster -> Region -> Fleet)

5

6

3. Test Suite

Manual

Automated

Instagram's Delivery Process
v3 (Pipelining)

Failure

Success

New deploy becomes base, grab next PR in queue

Old deploy still base, mark error and grab next PR in queue

Bloomberg Javelin Delivery Process

1. Developer opens a PR

1

2. Code Review

2

4. Staging Verification

3

5. Canary Prod Verification

4

6. Production Rollout

6

3. Test Suite

Manual

Automated

Build This

Stage This

Deploy This

Comparing Instagram v2, v3, and Javelin

1

2

3

4

5

6

2

1

3

4

5

6

1

2

3

4

6

Javelin

Instagram v2 (powered by human)

Instagram v3 (powered by Sauron)

My Takeaways

  • Canary Prod
  • Better Heathchecks / Automated Scan
  • (Potentially) Change our workflow so that the tools we have are more fully able to pipeline deployments
  • Most Importantly, remember this takes time. Instagram adopted it slowly over 2 years until all developers were comfortable with each step.

Transitioning Towards Continuous Delivery

By Spencer Carver

Transitioning Towards Continuous Delivery

  • 147