Velocity and Volume (or Speed Wins) Flowcon November 2013 - - PowerPoint PPT Presentation

velocity and volume or speed wins
SMART_READER_LITE
LIVE PREVIEW

Velocity and Volume (or Speed Wins) Flowcon November 2013 - - PowerPoint PPT Presentation

Velocity and Volume (or Speed Wins) Flowcon November 2013 Adrian CockcroB @adrianco @NeDlixOSS hHp://www.linkedin.com/in/adriancockcroB "This is the IT swamp


slide-1
SLIDE 1

Velocity ¡and ¡Volume ¡ (or ¡Speed ¡Wins) ¡

Flowcon ¡November ¡2013 ¡ Adrian ¡CockcroB ¡

@adrianco ¡@NeDlixOSS ¡ hHp://www.linkedin.com/in/adriancockcroB ¡

slide-2
SLIDE 2

"This ¡is ¡the ¡IT ¡swamp ¡draining ¡manual ¡for ¡anyone ¡who ¡is ¡neck ¡deep ¡in ¡alligators." ¡

  • ­‑ ¡Adrian ¡Cockcro-, ¡Cloud ¡Architect ¡at ¡Ne5lix ¡
slide-3
SLIDE 3
slide-4
SLIDE 4

Mainframe ¡ Client-­‑Server ¡ Commodity ¡ Web-­‑scale ¡ Cloud ¡

slide-5
SLIDE 5

Goal ¡of ¡TradiQonal ¡IT: ¡ Reliable ¡hardware ¡ running ¡stable ¡soBware ¡ ¡

slide-6
SLIDE 6
slide-7
SLIDE 7

SCALE ¡

Breaks ¡hardware ¡

slide-8
SLIDE 8

….SPEED ¡

Breaks ¡soBware ¡

slide-9
SLIDE 9

SPEED ¡at ¡ SCALE ¡

Breaks ¡everything ¡

slide-10
SLIDE 10
slide-11
SLIDE 11

Incidents ¡– ¡Impact ¡and ¡MiQgaQon ¡

PR ¡ X ¡Incidents ¡ CS ¡ XX ¡Incidents ¡ Metrics ¡impact ¡– ¡Feature ¡disable ¡ XXX ¡Incidents ¡ No ¡Impact ¡– ¡fast ¡retry ¡or ¡automated ¡failover ¡ XXXX ¡Incidents ¡

Public ¡RelaQons ¡ Media ¡ ¡Impact ¡ High ¡Customer ¡ Service ¡Calls ¡ Affects ¡AB ¡ Test ¡Results ¡ Y ¡incidents ¡miQgated ¡by ¡AcQve ¡ AcQve, ¡game ¡day ¡pracQcing ¡ YY ¡incidents ¡ miQgated ¡by ¡ beHer ¡tools ¡and ¡ pracQces ¡ YYY ¡incidents ¡ miQgated ¡by ¡beHer ¡ data ¡tagging ¡

slide-12
SLIDE 12

Web ¡Scale ¡Architecture ¡

Cassandra ¡Replicas ¡ Zone ¡A ¡ Cassandra ¡Replicas ¡ Zone ¡B ¡ Cassandra ¡Replicas ¡ Zone ¡C ¡

Regional ¡Load ¡Balancers ¡

Cassandra ¡Replicas ¡ Zone ¡A ¡ Cassandra ¡Replicas ¡ Zone ¡B ¡ Cassandra ¡Replicas ¡ Zone ¡C ¡

Regional ¡Load ¡Balancers ¡ UltraDNS ¡ DynECT ¡ DNS ¡ AWS ¡ Route53 ¡ DNS ¡ AutomaQon ¡

slide-13
SLIDE 13

CIO ¡Says ¡Speed ¡IT ¡Up! ¡ ¡

slide-14
SLIDE 14

Colonel ¡Boyd, ¡USAF ¡

“Get ¡inside ¡your ¡adversaries' ¡ OODA ¡loop ¡to ¡disorient ¡them” ¡

slide-15
SLIDE 15

Observe ¡ Orient ¡ Decide ¡ Act ¡

Land ¡grab ¡

  • pportunity ¡

CompeQQve ¡ Move ¡ Customer ¡ Pain ¡Point ¡ Analysis ¡ Get ¡Buy-­‑in ¡ Plan ¡ Response ¡ Commit ¡ Resources ¡ Implement ¡ Deliver ¡ Engage ¡ customers ¡ Model ¡ Hypotheses ¡ Measure ¡ Customers ¡

Colonel ¡Boyd, ¡ USAF ¡ “Get ¡inside ¡your ¡ adversaries' ¡ OODA ¡loop ¡to ¡ disorient ¡them” ¡
slide-16
SLIDE 16

Observe ¡ Orient ¡ Decide ¡ Act ¡

Territory ¡ Expansion ¡ Foreign ¡ CompeQQon ¡ Customer ¡ Pain ¡Point ¡ Systems ¡ Analysis ¡ Board ¡Level ¡ Buy-­‑in ¡ 5 ¡year ¡Plan ¡ Vendor ¡ EvaluaQon ¡ Customize ¡ Vendor ¡SW ¡ Upgrade ¡ Mainframe ¡ Print ¡Ad ¡ Campaign ¡ Capacity ¡ Model ¡ Measure ¡ Revenue ¡

Mainframe ¡ Era ¡-­‑ ¡1 ¡year ¡ cycle ¡

slide-17
SLIDE 17

Mainframe ¡InnovaQon ¡Cycle ¡

  • Cost ¡$1M ¡to ¡$100M ¡
  • DuraQon ¡1 ¡to ¡5 ¡years ¡
  • Bet ¡the ¡whole ¡company ¡
  • Cost ¡of ¡failure ¡– ¡bankrupt ¡or ¡bought ¡
  • Cobol ¡and ¡DB2 ¡on ¡MVS ¡
slide-18
SLIDE 18

Observe ¡ Orient ¡ Decide ¡ Act ¡

Territory ¡ Expansion ¡ Foreign ¡ CompeQQon ¡ Customer ¡ Pain ¡Point ¡ Data ¡ Warehouse ¡ CIO ¡Level ¡ Buy-­‑in ¡ 1 ¡year ¡Plan ¡ Vendor ¡ EvaluaQon ¡ Customize ¡ Vendor ¡SW ¡ Install ¡ Servers ¡ TV ¡Advert ¡ Campaign ¡ Capacity ¡ EsQmate ¡ Measure ¡ Revenue ¡

Client/Server ¡ Era ¡– ¡3 ¡ month ¡cycle ¡

slide-19
SLIDE 19

Client ¡Server ¡InnovaQon ¡Cycle ¡

  • Cost ¡$100K ¡to ¡$10M ¡
  • DuraQon ¡3 ¡– ¡12 ¡months ¡
  • Bet ¡a ¡product ¡line ¡or ¡division ¡
  • Cost ¡of ¡failure ¡– ¡revenue ¡hit, ¡CIO’s ¡job ¡
  • C++ ¡and ¡Oracle ¡on ¡Solaris ¡
slide-20
SLIDE 20

Observe ¡ Orient ¡ Decide ¡ Act ¡

Territory ¡ Expansion ¡ CompeQQve ¡ Moves ¡ Customer ¡ Pain ¡Point ¡ Data ¡ Warehouse ¡ Business ¡ Buy-­‑in ¡ 2 ¡Week ¡ Plan ¡ Feature ¡ Priority ¡ Code ¡ Feature ¡ Install ¡ Capacity ¡ Web ¡ Display ¡Ads ¡ ¡ Capacity ¡ EsQmate ¡ Measure ¡ Sales ¡

Commodity ¡ Era ¡– ¡2 ¡week ¡ agile ¡train ¡

slide-21
SLIDE 21

Commodity ¡Agile ¡InnovaQon ¡Cycle ¡

  • Cost ¡$10K ¡to ¡$1M ¡
  • DuraQon ¡2 ¡– ¡12 ¡weeks ¡
  • Bet ¡a ¡product ¡feature ¡
  • Cost ¡of ¡failure ¡– ¡product ¡mgr ¡reputaQon ¡
  • Java ¡and ¡MySQL ¡on ¡Linux ¡
slide-22
SLIDE 22

Train ¡Model ¡Process ¡Hand-­‑Off ¡Steps ¡

Product ¡Manager ¡ Developer ¡ QA ¡IntegraQon ¡Team ¡ OperaQons ¡Deploy ¡Team ¡ BI ¡AnalyQcs ¡Team ¡

slide-23
SLIDE 23

What ¡Happened? ¡

Rate ¡of ¡change ¡ increased ¡ Cost ¡and ¡size ¡ and ¡risk ¡of ¡ change ¡reduced ¡

slide-24
SLIDE 24

Cloud ¡NaQve ¡

Construct ¡a ¡highly ¡agile ¡and ¡highly ¡ available ¡service ¡from ¡ephemeral ¡and ¡ assumed ¡broken ¡components ¡

slide-25
SLIDE 25

Real ¡Web ¡Server ¡Dependencies ¡Flow ¡

(NeDlix ¡Home ¡page ¡business ¡transacQon ¡as ¡seen ¡by ¡AppDynamics) ¡

Start ¡Here ¡ memcached ¡ Cassandra ¡ Web ¡service ¡ S3 ¡bucket ¡ PersonalizaQon ¡movie ¡group ¡choosers ¡ (for ¡US, ¡Canada ¡and ¡Latam) ¡ Each ¡icon ¡is ¡ three ¡to ¡a ¡few ¡ hundred ¡ instances ¡ across ¡three ¡ AWS ¡zones ¡

slide-26
SLIDE 26

ConQnuous ¡Deployment ¡

No ¡Qme ¡for ¡handoff ¡to ¡IT ¡

slide-27
SLIDE 27

Developer ¡Self ¡Service ¡

Freedom ¡and ¡Responsibility ¡

slide-28
SLIDE 28

Developers ¡run ¡what ¡ they ¡wrote ¡

Root ¡access ¡and ¡pagerduty ¡

slide-29
SLIDE 29

IT ¡is ¡a ¡Cloud ¡API ¡

DEVops ¡automaQon ¡

slide-30
SLIDE 30

Github ¡all ¡the ¡things! ¡

Leverage ¡social ¡coding ¡

slide-31
SLIDE 31
slide-32
SLIDE 32

Pupng ¡it ¡all ¡together… ¡

slide-33
SLIDE 33

Observe ¡ Orient ¡ Decide ¡ Act ¡

Land ¡grab ¡

  • pportunity ¡

CompeQQve ¡ Move ¡ Customer ¡ Pain ¡Point ¡ Analysis ¡ JFDI ¡ Plan ¡ Response ¡ Share ¡Plans ¡ Increment ¡ Implement ¡ AutomaQc ¡ Deploy ¡ Launch ¡AB ¡ Test ¡ Model ¡ Hypotheses ¡ Measure ¡ Customers ¡

ConQnuous ¡ Delivery ¡on ¡ Cloud ¡

slide-34
SLIDE 34

ConQnuous ¡InnovaQon ¡Cycle ¡

  • Cost ¡near ¡zero, ¡variable ¡expense ¡
  • DuraQon ¡hours ¡to ¡days ¡
  • Bet ¡a ¡decoupled ¡microservice ¡code ¡push ¡
  • Cost ¡of ¡failure ¡– ¡near ¡zero, ¡instant ¡rollback ¡
  • Clojure/Scala/Python ¡on ¡NoSQL ¡on ¡Cloud ¡
slide-35
SLIDE 35

ConQnuous ¡Deploy ¡Hand-­‑Off ¡Steps ¡

Product ¡Manager ¡ A/B ¡test ¡setup ¡and ¡enable ¡ Self ¡service ¡hypothesis ¡test ¡results ¡ Developer ¡ Automated ¡test ¡ Self ¡service ¡deploy, ¡on ¡call ¡ Self ¡service ¡analyQcs ¡

slide-36
SLIDE 36

ConQnuous ¡Deploy ¡AutomaQon ¡

Check ¡in ¡code, ¡Jenkins ¡build ¡ Bake ¡AMI, ¡launch ¡in ¡test ¡env ¡ FuncQonal ¡and ¡performance ¡test ¡ ProducQon ¡canary ¡test ¡ ProducQon ¡red/black ¡push ¡

slide-37
SLIDE 37

Bad ¡Canary ¡Signature ¡

slide-38
SLIDE 38

Happy ¡Canary ¡Signature ¡

slide-39
SLIDE 39

Global ¡Deploy ¡AutomaQon ¡

Cassandra ¡Replicas ¡ Zone ¡A ¡ Cassandra ¡Replicas ¡ Zone ¡B ¡ Cassandra ¡Replicas ¡ Zone ¡C ¡ West ¡Coast ¡Load ¡Balancers ¡ Cassandra ¡Replicas ¡ Zone ¡A ¡ Cassandra ¡Replicas ¡ Zone ¡B ¡ Cassandra ¡Replicas ¡ Zone ¡C ¡ East ¡Coast ¡Load ¡Balancers ¡ Cassandra ¡Replicas ¡ Zone ¡A ¡ Cassandra ¡Replicas ¡ Zone ¡B ¡ Cassandra ¡Replicas ¡ Zone ¡C ¡ Europe ¡Load ¡Balancers ¡

ABernoon ¡in ¡California ¡ Night-­‑Qme ¡in ¡Europe ¡ Next ¡day ¡on ¡East ¡Coast ¡ Next ¡day ¡on ¡West ¡Coast ¡ ABer ¡peak ¡in ¡Europe ¡ If ¡passes ¡test ¡suite, ¡canary ¡then ¡deploy ¡ Canary ¡then ¡deploy ¡ Canary ¡then ¡deploy ¡

slide-40
SLIDE 40

InspiraQon ¡

slide-41
SLIDE 41

Takeaway ¡

¡Speed ¡Wins ¡ Assume ¡Broken ¡ Cloud ¡NaDve ¡AutomaDon ¡ Github ¡is ¡your ¡“app ¡store” ¡and ¡resumé ¡

¡

¡

@adrianco ¡@NeDlixOSS ¡ hHp://neDlix.github.com ¡

slide-42
SLIDE 42

A/B ¡Test ¡Hypothesis ¡

You ¡would ¡prefer ¡the ¡Halloween ¡ Scooby ¡Doo ¡Ending ¡

slide-43
SLIDE 43

I’d ¡have ¡got ¡away ¡with ¡it ¡if ¡it ¡wasn’t ¡for ¡ you ¡meddlesome ¡kids! ¡