+ All Categories
Home > Documents > om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802...

om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802...

Date post: 03-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
46
Zero Downtime Deployment Golden Rules Tugberk Ugurlu Redgate Software @tourismgeek http://tugberkugurlu.com #itakeunconf
Transcript
Page 1: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Zero Downtim

e Deployment

Golden Rules

Tugberk UgurluRedgate

Software

@tourism

geekhttp://tugberkugurlu.com

#itakeunconf

Page 2: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

@tourism

geek

tugberkugurlu.com

github.com/tugberkugurlu

stackoverflow.com

/users/463785/tugberk

Page 3: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

@redgate

Page 4: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

Example

HTTP APIsv1

Example

Android iPhone

Example

Android Client

Example

Web Client

Example

HTTP APIsv1.1

Page 5: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Why Should I Care?

#itakeunconf

Page 6: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

http://customers.agriya.com

/products/private-shop/features/maintenance-course

#itakeunconf

Page 7: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

https://twitter.com

/tourismgeek/status/580270772402393088

#itakeunconf

Page 8: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Continuous Delivery

#itakeunconf

Page 9: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

Page 10: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Type of Products

#itakeunconf

Page 11: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Type of Applications

•HTTP Services

•W

eb Sites

#itakeunconf

Page 12: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4
Page 13: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Write Dow

n the Deployment Strategy

#itakeunconf

Page 14: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

Page 15: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Script out the Deployment Strategy

#itakeunconf

Page 16: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

Page 17: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Release Managem

ent Software

https://octopus.com/

#itakeunconf

Page 18: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

Page 19: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

True Staging Environment

#itakeunconf

Page 20: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

example-api-v0-6786234

example

Products

example-api-v0-6327638

example

Products

Router

v0.example.com

Page 21: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Blue-green Deployment

http://martinfow

ler.com/bliki/BlueGreenDeploym

ent.html

#itakeunconf

Page 22: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Router

v0.example.com

#itakeunconf

example-api-v0-6327638

example

Products

example-api-v0-6786234

example

Products

Page 23: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Drain Requests

#itakeunconf

Page 24: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Router

v0.example.com

#itakeunconf

example-api-v0-6327638

example

Products

example-api-v0-6786234

example

Products

Page 25: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Router

v0.example.com

#itakeunconf

example-api-v0-6327638

example

Products

example-api-v0-6786234

example

Products

Page 26: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

SemVerYour Softw

arehttp://w

ww

.tugberkugurlu.com/archive/versioning-softw

are-builds-based-on-git-tags-and-semantic-versioning-sem

ver

#itakeunconf

Page 27: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

SemVerYour Softw

are

•See sem

ver.org•

Support 2 Major versions of the HTTP Service, not 1, not 3.

•Define a support policy for support lifetim

e for versions

#itakeunconf

Page 28: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Type of Changes

•Patch: N

o user facing changes, all internal.•

Minor: Add functionality in a backw

ards-compatible m

anner•

Major: Introducing incom

patible changes•

See semver.org for m

ore information

#itakeunconf

Page 29: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Minor-Patch Releases

•N

o breaking changes

#itakeunconf

Page 30: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

example-api-v0-6327638

example-api-v0-7814219

example-api-v0-9528392

LB

v0.example.com

example

Products

example

Products

example

Products

example-api-v0-6786234

example-api-v0-3266280

example-api-v0-8429842

example

Products

example

Products

example

Products

Page 31: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

DEMO

https://github.com/tugberkugurlu/aspnetcoresam

ples/tree/itakeu16/haproxy-zero-downtim

e-sample

#itakeunconf

Page 32: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

HAProxy

ConfigReload

http://engineeringblog.yelp.com/2015/04/true-zero-dow

ntime-haproxy-reloads.htm

l

#itakeunconf

Page 33: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

InternalLB-1

LB-1

InternalLB-2

server1

server2

server3

server4

server5

server6

server7

server8

server9

server10

client

client

client

client

client

client

#itakeunconf

Page 34: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Multiple Load Balancer N

odeshttp://robert.penz.nam

e/386/howto-setup-a-haproxy-as-fault-tolerant-high-available-load-balancer-for-m

ultiple-caching-web-proxies-on-rhelcentossl/

#itakeunconf

Page 35: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconfhttp://robert.penz.nam

e/386/howto-setup-a-haproxy-as-fault-tolerant-high-available-load-balancer-for-m

ultiple-caching-web-proxies-on-rhelcentossl/

Page 36: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Major Releases

•Breaking Changes

•First M

ajor Release•

Non-first M

ajor Releases

#itakeunconf

Page 37: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

example-api-v0-6327638

example-api-v0-7814219

example-api-v0-9528392

LB

v0.example.com

example

Products

example

Products

example

Products

example-api-v1-2276168

example-api-v1-5677802

example

Products

example

Products

LB

v1.example.com

example-api-v1-7182721

example

Products

Page 38: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Prefer Fast-forward Database Changes

#itakeunconf

Page 39: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

IdM

akeM

odelColour

1Renault

ClioRed

2M

ercedesGLA

Black3

Volkswagen

PoloW

hite4

ToyotaYaris

Yellow

IdM

akeM

odelColour

1Renault

ClioRed

2M

ercedesGLA

Black3

Volkswagen

PoloW

hite4

ToyotaYaris

Yellow

v1v2

Page 40: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Do Not O

verride Client Side Assets

#itakeunconf

Page 41: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

v1v1.1

Page 42: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

#itakeunconf

v1v1.1

Page 43: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Be Aware of the Context

#itakeunconf

Page 44: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Be Aware of the Context

•Cookies

•Sessions

•Authentication Tokens

Page 45: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Sticky Sessionshttp://blog.haproxy.com

/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know

/

Page 46: om e u Golden Rulest eitakeunconf.com/wp-content/uploads/2016/05/Zero-Downtime-Deplo… · 5677802 e e LB om e-api-v1-7182721 e ts. t-es # f # f Id e l r 1 t o d 2 s A k 3 n o e 4

Helpful Tools

•HAProxy

•O

ctopus Deploy•

node-semverCLI

•Docker

•Docker Cloud (a.k.a. Tutum

)•

DLM Autom

ation Tools from Redgate

#itakeunconf


Recommended