Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of...

35
Case Study - Continuous Deployment at Outbrain Itai Hochman VP Engineering at Outbrain

Transcript of Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of...

Page 1: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Case Study - Continuous Deployment at Outbrain

Itai Hochman

VP Engineering at Outbrain!

Page 2: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment

• Outbrain – Few Facts • From Releases to CD

• Culture • Architecture • Tools

Page 3: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Outbrain enables readers to discover the most interesting, relevant and timely links to stories (paid and organic)

Page 4: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture
Page 5: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Widget Customization…

Page 6: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Multi Billion Page Views per month

Note: Outbrain is typically installed on *every* article/blog post on each of these sites, immediately under the content.

Page 7: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

What is continuous deployment?

Work procedures and culture that allow releasing code to production in very short

cycles multiple times a day

Page 8: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

What was so bad before ?

Page 9: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Conclusion

Reduce Risk: Deploy your code Often

Page 10: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Conclusion

Release when you are Ready

Page 11: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

How to do it?

• Culture • Architecture • Tools

Page 12: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

HOW

Page 13: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

How does it work?

Continuously Prioritized Tasks Queues

Minimize Work In Progress (WIP)

Page 14: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment -Culture

Developers own their tasks

Page 15: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment -Culture

Definition of Done:

Feature was released Monitoring shows Value

Page 16: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment - Culture

Focus on Production

Environment

Page 17: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment - Culture

• No Code branches • Frequent commits • Unit testing coverage • Fast • Stable Trunk

Page 18: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment Themes

Deployment - engineering decision Release - marketing decision

Page 19: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment -Culture

Feature Flags

Page 20: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Immune System Unit Testing Integration Testing Regression Testing Self Test Monitoring System Alerting

Page 21: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Immune System

Dev-Ops Cooperation

Page 22: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment -Culture

Learn:

Take-Ins (Post Mortem)

Page 23: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment

Architecture

Page 24: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment

Split the backend to

Stand Alone Deployable Services

Page 25: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment

Build to Tolerate Failures

Page 26: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Continuous Deployment

Tools

Page 27: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Code review

Page 28: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Continuous Integration Server

Page 29: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Regerssion Testing

Page 30: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Monitoring

Page 31: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Log collection and Analysis

Page 32: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Deployer – Based on Glu

Page 33: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Communication - Yammer

Page 34: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Tools Service monitoring

Page 35: Case Study - Continuous Deployment at Outbrain · Continuous Deployment -Culture Definition of Done: Feature was released Monitoring shows Value . Continuous Deployment - Culture

Fun Numbers

l  5-50 production changes a day!!! l  More then 5000 unit tests running in

less then 5 minutes. l  More then 8000 regression tests

running every hour. l  It takes ~15 minutes from code

complete to ~50 machines deployed.