How to Replace a Jet Engine of Your System In-Flight Aysylu - - PowerPoint PPT Presentation

how to replace a jet engine of your system in flight
SMART_READER_LITE
LIVE PREVIEW

How to Replace a Jet Engine of Your System In-Flight Aysylu - - PowerPoint PPT Presentation

How to Replace a Jet Engine of Your System In-Flight Aysylu Greenberg, Software Engineer, Google Aysylu Greenberg @aysylu22 Photo by imanka / CC BY Build System Story Towards Distributed Build System Towards Distributed Build System Towards


slide-1
SLIDE 1

How to Replace a Jet Engine of Your System In-Flight

Aysylu Greenberg, Software Engineer, Google

slide-2
SLIDE 2

Aysylu Greenberg

@aysylu22

slide-3
SLIDE 3

Build System Story

Photo by imanka / CC BY

slide-4
SLIDE 4

Towards Distributed Build System

slide-5
SLIDE 5

Towards Distributed Build System

slide-6
SLIDE 6

Towards Distributed Build System

slide-7
SLIDE 7

Towards Distributed Build System

slide-8
SLIDE 8

Towards Distributed Build System

slide-9
SLIDE 9

Towards Distributed Build System

slide-10
SLIDE 10

Continuous integration system

BuildRabbit

Source System Google engineers & teams Release infrastructure Integration testing infrastructure Build artifact storage

Blaze

slide-11
SLIDE 11

Scale

  • Engineers: >30,000 developers in 40+ offices
slide-12
SLIDE 12

Scale

  • Engineers: >30,000 developers in 40+ offices
  • Commits: 15K by humans + 30K by robots/day
slide-13
SLIDE 13

Scale

  • Engineers: >30,000 developers in 40+ offices
  • Commits: 15K by humans + 30K by robots/day
  • Source code: 2 billion LOC
slide-14
SLIDE 14

Scale

  • Engineers: >30,000 developers in 40+ offices
  • Commits: 15K by humans + 30K by robots/day
  • Source code: 2 billion LOC
  • Builds and tests: 5M per day through BuildRabbit
slide-15
SLIDE 15

Scale

  • Engineers: >30,000 developers in 40+ offices
  • Commits: 15K by humans + 30K by robots/day
  • Source code: 2 billion LOC
  • Builds and tests: 5M per day through BuildRabbit
  • Petabytes of output arRfacts
slide-16
SLIDE 16

Architecture Upgrade

https://thetravelintern.com/hangzhou-things-to-do/

slide-17
SLIDE 17

Architecture Upgrade

Photo by vermazeren / CC BY

slide-18
SLIDE 18

Continuous integration system

BuildRabbit

Source System Google engineers & teams Release infrastructure Integration testing infrastructure Build artifact storage

Blaze

slide-19
SLIDE 19

How to Replace a Jet Engine of your System In-Flight

slide-20
SLIDE 20

https://en.wikipedia.org/wiki/File:Helicopter_aerial_refueling.jpg

slide-21
SLIDE 21
slide-22
SLIDE 22

MigraRon with Zero DownRme

Photo by moonjazz / CC BY SA

slide-23
SLIDE 23

Old Architecture: Client / Server

Client for User

BuildRabbit Scheduler BuildRabbit Worker

slide-24
SLIDE 24

New Architecture: Build Service

Client for User Persistent Queue BuildRabbit Worker Build Artifacts Build Progress Info event RPC stream

slide-25
SLIDE 25

Persistent Queue BuildRabbit Worker Build Artifacts Build Progress Info event RPC stream

New Architecture: Build Service

Client for User

slide-26
SLIDE 26

Client for User

BuildRabbit Scheduler BuildRabbit Worker

slide-27
SLIDE 27

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue BuildRabbit Worker Build Progress Info Build Artifacts Client for User

slide-28
SLIDE 28

Photo by goosmurf / CC BY

FOCUS ON INTERMEDIATE STATE

slide-29
SLIDE 29

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue

slide-30
SLIDE 30

Photo by goosmurf / CC BY

FOCUS ON INTERMEDIATE STATE

slide-31
SLIDE 31

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue BuildRabbit Worker Build Progress Info Build Artifacts Client for User

slide-32
SLIDE 32

Photo by goosmurf / CC BY

FOCUS ON INTERMEDIATE STATE

slide-33
SLIDE 33

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue BuildRabbit Worker Build Progress Info Build Artifacts Client for User

slide-34
SLIDE 34

Photo by goosmurf / CC BY

FOCUS ON INTERMEDIATE STATE

slide-35
SLIDE 35

ROLL OUT INCREMENTALLY

Photo by firepile / CC BY

slide-36
SLIDE 36
slide-37
SLIDE 37

ROLL OUT INCREMENTALLY

Photo by firepile / CC BY

slide-38
SLIDE 38

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue BuildRabbit Worker Build Progress Info Build Artifacts Client for User

slide-39
SLIDE 39

ROLL OUT INCREMENTALLY

Photo by firepile / CC BY

slide-40
SLIDE 40
slide-41
SLIDE 41

PRACTICE ROLLOUT

Photo by greg_photos / CC BY SA

slide-42
SLIDE 42

Client for User

BuildRabbit Scheduler BuildRabbit Worker Persistent Queue

slide-43
SLIDE 43

PRACTICE ROLLOUT

Photo by greg_photos / CC BY SA

slide-44
SLIDE 44
  • To prevent

simplest mistakes

  • For
  • rganization

resilience

slide-45
SLIDE 45

PRACTICE ROLLOUT FOCUS ON INTERMEDIATE STATE ROLL OUT INCREMENTALLY

slide-46
SLIDE 46

How to Replace a Jet Engine of Your System In-Flight

Aysylu Greenberg, Software Engineer, Google