Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

# finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on [email protected] Plan: twitter: @SusanPotter github: mbbx6spp

Slide 5

Slide 5 text

# finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on [email protected] Plan: twitter: @SusanPotter github: mbbx6spp

Slide 6

Slide 6 text

# finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on [email protected] Plan: twitter: @SusanPotter github: mbbx6spp

Slide 7

Slide 7 text

# finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on [email protected] Plan: twitter: @SusanPotter github: mbbx6spp

Slide 8

Slide 8 text

# finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on [email protected] Plan: twitter: @SusanPotter github: mbbx6spp

Slide 9

Slide 9 text

Scope of Talk • Approaches

Slide 10

Slide 10 text

Scope of Talk • Approaches • Best Practices

Slide 11

Slide 11 text

Scope of Talk • Approaches • Best Practices • Pitfalls

Slide 12

Slide 12 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities

Slide 13

Slide 13 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet

Slide 14

Slide 14 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet • (not) Why Cloud?

Slide 15

Slide 15 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet • (not) Why Cloud? • (not) Why DevOps?

Slide 16

Slide 16 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet • (not) Why Cloud? • (not) Why DevOps? • (not) Which Delivery Model?

Slide 17

Slide 17 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet • (not) Why Cloud? • (not) Why DevOps? • (not) Which Delivery Model? • (not) Release Management

Slide 18

Slide 18 text

Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities • (not) Chef vs Puppet • (not) Why Cloud? • (not) Why DevOps? • (not) Which Delivery Model? • (not) Release Management • (not) Monitoring

Slide 19

Slide 19 text

Cloud buzzzzz

Slide 20

Slide 20 text

Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)

Slide 21

Slide 21 text

Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)

Slide 22

Slide 22 text

Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)

Slide 23

Slide 23 text

Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)

Slide 24

Slide 24 text

Cloud: Delivery Models [2/2]

Slide 25

Slide 25 text

Cloud: Characteristics • Instant on-demand

Slide 26

Slide 26 text

Cloud: Characteristics • Instant on-demand • Virtualized performance, reliability

Slide 27

Slide 27 text

Cloud: Characteristics • Instant on-demand • Managed by others • Virtualized performance, reliability

Slide 28

Slide 28 text

Cloud: Characteristics • Instant on-demand • Managed by others • Virtualized performance, reliability • Lack control predictability, reliability, quality

Slide 29

Slide 29 text

Cloud: Characteristics • Instant on-demand • Managed by others • Pay as you go • Virtualized performance, reliability • Lack control predictability, reliability, quality

Slide 30

Slide 30 text

Cloud: Characteristics • Instant on-demand • Managed by others • Pay as you go • Virtualized performance, reliability • Lack control predictability, reliability, quality • Pay as you go!

Slide 31

Slide 31 text

DevOps Is it a command?

Slide 32

Slide 32 text

DevOps: Definition [1/2] • Share responsibility across organizational boundaries

Slide 33

Slide 33 text

DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation]

Slide 34

Slide 34 text

DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation] • Manage infrastructure not priority queues of production issues

Slide 35

Slide 35 text

DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation] • Manage infrastructure not priority queues of production issues • Make infrastructure predictable repeatable, testable, deterministic

Slide 36

Slide 36 text

DevOps: Definition [2/2]

Slide 37

Slide 37 text

Deployment Pipeline commit -> production

Slide 38

Slide 38 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

Slide 39

Slide 39 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable

Slide 40

Slide 40 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes

Slide 41

Slide 41 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc

Slide 42

Slide 42 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc • Test early and often! outside-in development helps

Slide 43

Slide 43 text

Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc • Test early and often! outside-in development helps • Build from the ground up layer infrastructure, inject configuration at boot/load time

Slide 44

Slide 44 text

Deployment: Common Bottlenecks • Automation build, provision, configure, integrate Figure: http://www.flickr.com/people/laenulfean/

Slide 45

Slide 45 text

Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration Figure: http://www.flickr.com/people/laenulfean/

Slide 46

Slide 46 text

Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration • Timeframe restricted window of time Figure: http://www.flickr.com/people/laenulfean/

Slide 47

Slide 47 text

Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration • Timeframe restricted window of time • Data schema updates, data migrations Figure: http://www.flickr.com/people/laenulfean/

Slide 48

Slide 48 text

Solution Approaches Solve problems, don’t use tools!

Slide 49

Slide 49 text

Automation Approaches Figure: http://www.flickr.com/people/krazydad/ • Full stack server-driven e.g. Chef/Knife, Puppet Master

Slide 50

Slide 50 text

Automation Approaches Figure: http://www.flickr.com/people/krazydad/ • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo

Slide 51

Slide 51 text

Automation Approaches Figure: http://www.flickr.com/people/krazydad/ • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo • Application-tier client e.g. Capistrano, Vlad the Deployer

Slide 52

Slide 52 text

Automation Approaches Figure: http://www.flickr.com/people/krazydad/ • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo • Application-tier client e.g. Capistrano, Vlad the Deployer • Command & control e.g. Vertibrae (inactive), Nanite

Slide 53

Slide 53 text

Distribution Approaches Figure: http://www.flickr.com/people/nsalt • Shared filesystem less security and reliability in community/public or across zones/regions

Slide 54

Slide 54 text

Distribution Approaches Figure: http://www.flickr.com/people/nsalt • Shared filesystem less security and reliability in community/public or across zones/regions • Pull from source control higher time variance as target nodes increase

Slide 55

Slide 55 text

Distribution Approaches Figure: http://www.flickr.com/people/nsalt • Shared filesystem less security and reliability in community/public or across zones/regions • Pull from source control higher time variance as target nodes increase • Bittorrent or similar e.g. Twitter’s Murder

Slide 56

Slide 56 text

Timeframe Approaches Figure: http://www.flickr.com/people/athenicsword • Hot upgrades e.g. Erlang/OTP appup/code_change/3

Slide 57

Slide 57 text

Timeframe Approaches Figure: http://www.flickr.com/people/athenicsword • Hot upgrades e.g. Erlang/OTP appup/code_change/3 • Rolling upgrades Software design considerations

Slide 58

Slide 58 text

Timeframe Approaches Figure: http://www.flickr.com/people/athenicsword • Hot upgrades e.g. Erlang/OTP appup/code_change/3 • Rolling upgrades Software design considerations • Environment replacement Flip a switch, acceptance <-> production

Slide 59

Slide 59 text

Data Approaches Figure: http://www.flickr.com/people/shanghaidaddy • Scriptable schema Alternative: NoSQL, but. . .

Slide 60

Slide 60 text

Data Approaches Figure: http://www.flickr.com/people/shanghaidaddy • Scriptable schema Alternative: NoSQL, but. . . • Automated migrations e.g. Rails’ Migrations

Slide 61

Slide 61 text

Data Approaches Figure: http://www.flickr.com/people/shanghaidaddy • Scriptable schema Alternative: NoSQL, but. . . • Automated migrations e.g. Rails’ Migrations • Sanity checks e.g. cherry picked, consistency checks

Slide 62

Slide 62 text

Common Pitfalls & Workarounds

Slide 63

Slide 63 text

Organizational Culture Figure: http://www.flickr.com/people/lucgaloppin/

Slide 64

Slide 64 text

Organizational Culture [Workaround] Figure: http://www.flickr.com/photos/42682395@N04/

Slide 65

Slide 65 text

Feature Branching Figure: http://www.flickr.com/photos/33939293@N02/

Slide 66

Slide 66 text

Feature Branching [Workaround]

Slide 67

Slide 67 text

Feature Branching [Workaround] DON’T!

Slide 68

Slide 68 text

Live by the meter. Die by the meter. Figure: WARNING

Slide 69

Slide 69 text

Live by the meter. Die by the meter. [Workarounds] Figure: http://www.flickr.com/people/dirkjankraan/

Slide 70

Slide 70 text

Great Expectations Figure: http://www.flickr.com/people/atoxinsocks/

Slide 71

Slide 71 text

Great Expectations [Workaround] Figure: http://www.flickr.com/people/dirkjankraan/

Slide 72

Slide 72 text

Note: Design & Idempotency Figure: A Twitter dialog between me and @jlouis666

Slide 73

Slide 73 text

Possibilities Where.next?

Slide 74

Slide 74 text

Possibilities

Slide 75

Slide 75 text

Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month

Slide 76

Slide 76 text

Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month • Canary deployments (e.g. A/B testing)

Slide 77

Slide 77 text

Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month • Canary deployments (e.g. A/B testing) • Multi-region or multi-provider relocate based on time of day, failover

Slide 78

Slide 78 text

Questions? Figure: http://www.flickr.com/photos/42682395@N04/

Slide 79

Slide 79 text

Questions? Figure: http://www.flickr.com/photos/42682395@N04/ @SusanPotter