• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
 

BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"

on

  • 184 views

This is a beta version of a talk I hope to present at a few Java / Software Development conferences this year. Comments are most welcome!

This is a beta version of a talk I hope to present at a few Java / Software Development conferences this year. Comments are most welcome!

Statistics

Views

Total Views
184
Views on SlideShare
184
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications" BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications" Presentation Transcript

    • Cloud  Developer’s  DHARMA…    redefining  ‘done’  for  Cloud  applica3ons   Daniel  Bryant   CTO,  Instant  Access  Technologies     d.bryant@iatltd.com   @taidevcouk    
    • 19/02/2014   @taidevcouk  
    • epoints.com  2012/13  Upgrade…   •  Increasing  traffic     –  Scalability  being  stretched   •  Increasingly  diverse  requirements   •  Our  starPng  point   –  Developers  creaPng  monolithic  applicaPon   –  Manual  QA   –  OperaPons  deploying  to  data  center   19/02/2014   @taidevcouk  
    • Core  Changes…   •  Service-­‐Oriented  Architecture   •  Cloud-­‐based  deployments   •  DevOps  Culture   19/02/2014   @taidevcouk  
    • Core  Changes…   •  Service-­‐Oriented  Architecture   –  TwiTer’s  Story  (bit.ly/1j1WbmI)   •  Cloud-­‐based  deployments   –  Tonight!   •  DevOps  Culture   –  LJC  Event  March  13th  7pm   19/02/2014   @taidevcouk  
    • Moving  to  the  Cloud   •  IAT  chose  Amazon  Web  Services  (AWS)  IaaS   •  Great  choice,  but…   –  Made  a  few  mistakes     –  Learnt  lots  of  lessons   19/02/2014   @taidevcouk  
    •     We’ve  created  a  “Cloud  Developer’s  DHARMA”   to  act  as  a  checklist  when  building  Cloud  apps   19/02/2014   @taidevcouk  
    • dharma   /ˈdɑːmə,ˈdəːmə/     noun     1.  Signifies  behaviors  that  are  considered  to  be  in   accord  with  order  that  makes  life  and  universe   possible  (Hinduism)   2.  "cosmic  law  and  order”,  but  is  also  applied  to   the  teachings  of  the  Buddha  (Buddhism)   19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • 19/02/2014   @taidevcouk  
    • Edge  DocumentaPon  is  Vital   •  Swagger   –  helloreverb.com/developers/swagger   •  Mashery’s  IODocs   –  www.mashery.com/product/io-­‐docs   •  Google’s  Discovery  Documents   –  developers.google.com/discovery/v1/using   19/02/2014   @taidevcouk  
    • 19/02/2014   @taidevcouk  
    • 19/02/2014   @taidevcouk  
    • 19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • High  Cohesion  /  Loose  Coupling…   …all  the  way  down     •  Public  API   –  PayPal  (bit.ly/1hnZNly)   •  Architecture   –  Services   –  Components   19/02/2014   @taidevcouk  
    • High  Cohesion  /  Loose  Coupling…   •  Code   –  SOLID  Principles   •  Datastores  /  Caches   –  Fault  tolerance   –  Zero-­‐downPme  deployments   –  MigraPon  and  upgrades   19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • Automated  from  Commit  to  Cloud   •  ConPnuous  IntegraPon/Delivery   •  Jenkins  Build  Pipeline  Plugin  (bit.ly/1hq9XSN)   19/02/2014   @taidevcouk  
    • Our  Build  Pipeline   •  Component  Build     –  Compile   –  Unit  Tests  (surefire)   –  IntegraPon  Tests  (failsafe)   •  Deployment  onto  QA  Cloud   –  Python  Scripts  +  Chef  to  provision   –  Verify  success  using  Python   19/02/2014   @taidevcouk  
    • Our  Build  Pipeline   •  Acceptance  Tests   –  Cucumber  and  Selenium   –  Work  in  progress…   •  Performance  Tests   –  Jmeter   –  Jenkins  Jmeter  performance  plugin   •  Staging  /  Live  Deployment   –  Human-­‐based  condiPonal  operaPon     19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • Deployment  Planorm:  What  you’ve  got…   19/02/2014   @taidevcouk  
    • What  you  think  you  want…   19/02/2014   @taidevcouk  
    • What  you  get…   Fact:  9  out  of  10  cheetahs  prefer  the  taste  of  an  Ops  team  over  Enned  food     19/02/2014   @taidevcouk  
    • Thou  Shalt  Know  thy  Cloud…   •  AWS  EBS  100  IOPS  (by  default)     –  My  Mac  SSD  does  49K  IOPS   •  1000Mbps  network  max  transfer  ~125Mb/s   –  My  Mac  does  400+  Mb/s  SequenPal  Write  to  SSD    Reference  for  Mac  staPsPcs:  bit.ly/1tJZH8   19/02/2014   @taidevcouk  
    • Thou  Shalt  Know  thy  Cloud…   •  “Noisy  [virtual]  Neighbours”   –  My  Mac  only  deals  with  noisy  colleagues   •  “Things  fail  all  the  Pme  [in  the  Cloud]”   –  My  Mac  is  quite  reliable…     19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • Monitor  All  The  Things!   •  Infrastructure  monitoring   –  Nagios   –  Zabbix   –  Splunk   –  AppDynamics   19/02/2014   @taidevcouk  
    • Component  Metrics   •  Dropwizard’s  Metrics   –  metrics.codahale.com   •  Nenlix’s  Servo   –  github.com/Nenlix/servo   •  Etsy’s  StatsD   –  github.com/etsy/statsd/wiki   19/02/2014   @taidevcouk  
    • Gauges,  Counters,  Meters,  Timers…   19/02/2014   @taidevcouk  
    • Health  Checks   19/02/2014   @taidevcouk  
    • Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • AnPfragile   19/02/2014   @taidevcouk  
    • Black  Swan  Theory     “…is  a  metaphor  that  describes  an  event  that   comes  as  a  surprise,  has  a  major  effect,  and  is   oten  inappropriately  raPonalized  ater  the  fact   with  the  benefit  of  hindsight”       Nassim  Nicholas  Taleb,  The  Black  Swan   19/02/2014   @taidevcouk  
    • AnPfragile   •  The  opposite  of  fragile?   –  Robust…   –  AnPfragile…   •  Nenlix  are  best-­‐in-­‐class   –  bit.ly/1gs5n3q   •  System  must  be  robust  first!   19/02/2014   @taidevcouk  
    • Design  for  Failure   •  Design  paTerns   –  Timeouts  /  retries   –  Bulkheads  /  circuit-­‐breakers   •  InspiraPon   –  Chris  Richardson  (slidesha.re/1t3vsg)   –  Nenlix  (bit.ly/1h5GMid)   19/02/2014   @taidevcouk  
    • Real  AnPfragility   •  Autoscaling   19/02/2014   @taidevcouk  
    • AnPfragile  PaTerns   •  Stateless  components   •  Distributed  data  stores  /  caches   •  Eventual  consistency   •  Asynchronous  communicaPon   –  Message  /  event  driven   19/02/2014   @taidevcouk  
    • So,  Cloud  Apps  are  ‘done’  when…   Documented  (at  the  edge)   Highly  cohesive/loosely  coupled  (all  the  way  down)   Automated  from  commit  to  Cloud   Resource  aware   Monitored  thoroughly   AnPfragile   19/02/2014   @taidevcouk  
    • Thanks  For  Listening   •  Massive  thanks  to  all  the  IAT  team!   •  This  is  a  beta  version  talk     –  Feedback  is  most  appreciated!   •  QuesPons  /  comments?   –  d.bryant@iatltd.com   –  @taidevcouk   19/02/2014   @taidevcouk