Your SlideShare is downloading. ×
0
Automang	  Life	  in	  the	  Cloud	                  Joshua	  Buss	  &	  Ma+hew	  Kemp	  
Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  disclosed,	  reproduced,	  or	  distributed	  without	  ...
There	  are	  no	  Silver	  Bullets	  (but	  if	  you	  find	  one	  let	  us	  know)	                             Confiden5...
Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  disclosed,	  reproduced,	  or	  distributed	  without	  ...
Virtual	  Machines	  Designing	  for	  the	  Cloud	  Have	  to	  go	  with	  what	  cloud	  provider	  offers.	  	  Not	  a...
Scalability	  Designing	  for	  the	  Cloud	                                                                              ...
Service	  Oriented	  Architecture	  Applica5on	  Design	  Wikipedia	  Defini5on:	  SOA	  as	  an	  architecture	  relies	  ...
Case	  Study:	  Services	  Applica5on	  Design	                         tagserve	                                         ...
Service	  Division	  of	  Labor	  Applica5on	  Design	                                                                    ...
Backwards	  Compa5bility	  Applica5on	  Design	  Changes	  need	  to	  be	  allowed,	  but	  compa5bility	  needs	  to	  b...
Asynchronous	  vs	  Synchronous	  Applica5on	  Design	  Dependent	  on	  needs	  of	  business,	  SLAs	  and	  technology....
Failures	  Happen	  Cloud	  Design	  Some5mes	  the	  failures	  are	  outside	  your	  control.	                        C...
Design	  for	  Failure	  Cloud	  Design	  Keep	  failures	  self	  contained.	                        Confiden5al,	  Proper...
Case	  Study:	  Redundancy	  Applica5on	  Design	  Run	  a	  full	  stack	  in	  each	  region.	              tagserve	   ...
Inter-­‐Region	  Communica5on	  Applica5on	  Design	                                                                      ...
Case	  Study:	  Cassandra	  Applica5on	  Design	                             East                                         ...
Run5me	  Controls	  Applica5on	  Design	  Provide	  mul5ple	  modes	  of	  opera5on.	                     Confiden5al,	  Pr...
Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  disclosed,	  reproduced,	  or	  distributed	  without	  ...
Smooth	  Code	  Pushes	  Deployment	                   Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  d...
Mirror	  Environment	  Cutover	  Deployment	                                                                              ...
Rolling	  Deploy	  Deployment	    More	  complicated	    migra5ons	  and	  upgrades.	    	    Longer	  deploy	  window.	  ...
Case	  Study:	  Fabric	  Rolling	  Deploy	  Deployment	  	  for	  region	  in	  regions:	  	  	  for	  app	  in	  apps:	  ...
Fabric	  vs	  Puppet	  Deployment	    Fabric	  is	  push,	  puppet	  is	  pull.	    	    Businesses	  dont	  move	  as	  f...
Consistency	  >	  *	  Puppet	  Need	  a	  rock-­‐solid	  founda5on	  to	  deploy	  onto.	                Confiden5al,	  Pro...
Single	  Puppet	  Master	  Puppet	  Set	  environment	  per-­‐instance:	  /etc/puppet/puppet.conf	  	  Symlink	  /etc/pupp...
Source	  Controlled	  Puppet	  Configs	  Puppet	                                                                           ...
Confidential, Property of BrightTag, Inc. Not to be disclosed, reproduced, or distributed without  BrightTag, Inc.s prior ...
What	  is	  Zerg?	  Management	                                                                          +	               ...
How	  to	  Reach	  Servers?	  Management	  DNS	  vs	  /etc/hosts	                   Confiden5al,	  Property	  of	  BrightTa...
Case	  Study:	  /etc/hosts	  Management	  $	  curl	  –s	  http://zerg/etchosts/us-­‐west-­‐1	  	  #	  The	  following	  li...
Instance	  Crea5on	  Management	                                                                                          ...
Case	  Study:	  Instance	  Crea5on	  Management	  ROLE_MAPPING	  =	  {	  	  	  "stage"	  :	  {	  	  	  	  	  "supercloud"	...
Case	  Study:	  Instance	  Configura5on	  Management	  /etc/instanceinfo	  filled	  out	  with	  values	  based	  on	  Zergs...
Loadbalancer	  Configura5on	  Management	    Update	  5ming	  tricky	  to	  get	    right.	    	    Too	  important	  to	  ...
HAProxy	  Configura5on	  Workflow	    Management	                                                                   Zerg	   ...
Applica5on	  Descrip5ons	  Management	  APP_DEFS	  :	  {	  	  	  "zerg"	  :	  {"type":	  "http",	  "healthcheck":	  {"port...
Case	  Study:	  HAProxy	  Configura5on	  Management	  $	  curl	  -­‐s	  http://zerg/haproxy/<env>/<region>/<service>	  	  g...
The	  Manual	  Step	  Management	  $	  ./update_haproxy.sh	  <env>	  <region>	  <service>	  	  **	  Git	  is	  clean	  and...
Trust	  is	  a	  Luxury	  Best	  Prac5ces	                         Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	 ...
Uniform	  Environments	  Best	  Prac5ces	                         Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  ...
Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  disclosed,	  reproduced,	  or	  distributed	  without	  ...
Why	  monitor?	  Monitoring	  How	  do	  you	  know	  whats	  going	  on?	  	                   Confiden5al,	  Property	  o...
What	  to	  monitor?	  Monitoring	  Iden5fy	  metrics	  that	  act	  as	  signals.	  	  Add	  alerts	  ater	  every	  inci...
Data	  Collec5on	  Monitoring	  Need	  system	  level	  metrics	  and	  applica5on	  metrics	  to	  get	  full	  picture.	...
Case	  Study:	  Metric	  Polling	  at	  BrightTag	  Monitoring	                                                           ...
Graphite	  Monitoring	                                                                                                    ...
Branches	  and	  Leaves	  Monitoring	  Expose	  a	  "metrics"	  service	  per	  region.	  	  Enables	  a	  flexible	  topol...
Real5me	  Numbers	  Across	  Regions	  Monitoring	  Requests are farmed out to each metrics service.                 Confid...
Visualiza5on	  Monitoring	  Different	  visualiza5ons	  tell	  you	  different	  things.	                   Confiden5al,	  Pr...
Red-­‐Yellow-­‐Green	  Monitoring	  Dashboards	  provide	  at-­‐a-­‐glance	  high	  level	  overviews.	                   ...
Ques5ons?	          Confiden5al,	  Property	  of	  BrightTag,	  Inc.	  Not	  to	  be	  disclosed,	  reproduced,	  or	  dist...
Upcoming SlideShare
Loading in...5
×

Automating Life in the Cloud - PuppetCamp Chicago '12

1,165

Published on

Joshua Buss and Matthew Kemp of Bright Tag talk on "Automating Life in the Cloud" at PuppetCamp Chicago '12.

Learn More: www.puppetlabs.com

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,165
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Automating Life in the Cloud - PuppetCamp Chicago '12"

  1. 1. Automang  Life  in  the  Cloud   Joshua  Buss  &  Ma+hew  Kemp  
  2. 2. Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     2  
  3. 3. There  are  no  Silver  Bullets  (but  if  you  find  one  let  us  know)   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     3  
  4. 4. Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     4  
  5. 5. Virtual  Machines  Designing  for  the  Cloud  Have  to  go  with  what  cloud  provider  offers.    Not  always  ideal  for  every  workload.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     5  
  6. 6. Scalability  Designing  for  the  Cloud   Focus  on  scaling   applica5ons  horizontally.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     6  
  7. 7. Service  Oriented  Architecture  Applica5on  Design  Wikipedia  Defini5on:  SOA  as  an  architecture  relies  on  service-­‐orienta3on  as  its  fundamental  design  principle.  If  a  service  presents  a  simple  interface  that  abstracts  away  its  underlying  complexity,  users  can  access  independent  services  without  knowledge  of  the  services  plaBorm  implementa3on.    Layman’s  terms:  A  complex  system  is  broken  into  simple  components  that  are  able  to  interact  with  each  other  (and  possibly  outside  sources).   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     7  
  8. 8. Case  Study:  Services  Applica5on  Design   tagserve   datahub   database   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     8  
  9. 9. Service  Division  of  Labor  Applica5on  Design   When  should  you  split   services  up?   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     9  
  10. 10. Backwards  Compa5bility  Applica5on  Design  Changes  need  to  be  allowed,  but  compa5bility  needs  to  be  maintained.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     10  
  11. 11. Asynchronous  vs  Synchronous  Applica5on  Design  Dependent  on  needs  of  business,  SLAs  and  technology.    Can  introduce  more  complexity  and  moving  pieces.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     11  
  12. 12. Failures  Happen  Cloud  Design  Some5mes  the  failures  are  outside  your  control.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     12  
  13. 13. Design  for  Failure  Cloud  Design  Keep  failures  self  contained.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     13  
  14. 14. Case  Study:  Redundancy  Applica5on  Design  Run  a  full  stack  in  each  region.   tagserve   datahub   tagserve   datahub   database   database   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     14  
  15. 15. Inter-­‐Region  Communica5on  Applica5on  Design   Need  some  data  available   in  all  regions,  but  keep   inter-­‐region   communica5on  to  a   minimum.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     15  
  16. 16. Case  Study:  Cassandra  Applica5on  Design   East West cassandra04   cassandra01   cassandra04   cassandra01   [192-­‐255]   [0-­‐63]   [193-­‐0]   [1-­‐64]   cassandra03   cassandra02   cassandra03   cassandra02   [128-­‐191]   [64-­‐127]   [129-­‐192]   [65-­‐128]   Key hashes to 157 Writes go here Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     16  
  17. 17. Run5me  Controls  Applica5on  Design  Provide  mul5ple  modes  of  opera5on.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     17  
  18. 18. Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     18  
  19. 19. Smooth  Code  Pushes  Deployment   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     19  
  20. 20. Mirror  Environment  Cutover  Deployment   Easy  migra5ons  and   upgrade  path.   Can  be  more  expensive.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     20  
  21. 21. Rolling  Deploy  Deployment   More  complicated   migra5ons  and  upgrades.     Longer  deploy  window.     Usually  cheaper.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     21  
  22. 22. Case  Study:  Fabric  Rolling  Deploy  Deployment    for  region  in  regions:      for  app  in  apps:          for  server  in  region:              if  app  on  server:                  maintenance  app                  scp  new  code  to  <d_tag>  dir                  symlink  app/current  to  app/<d_tag>                  restart  app                  wait  for  healthy   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     22  
  23. 23. Fabric  vs  Puppet  Deployment   Fabric  is  push,  puppet  is  pull.     Businesses  dont  move  as  fast  as  infrastructure  changes,   but  configs  have  to  stay  up  to  date  all  the  5me.  (/etc/hosts)  (systempoller.py)  (mashed_potatoes.env)                        (dataserver.war)  puppet  =====================================  fabric  (real-­‐time  up-­‐to-­‐date)                  (moderately  up-­‐to-­‐date)                                    (weekly)     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     23  
  24. 24. Consistency  >  *  Puppet  Need  a  rock-­‐solid  founda5on  to  deploy  onto.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     24  
  25. 25. Single  Puppet  Master  Puppet  Set  environment  per-­‐instance:  /etc/puppet/puppet.conf    Symlink  /etc/puppet/environments/  on  master  to  various  folders  with  read/write  access  by  our  main  user.    $  cd  /etc/puppet/environments  $  sudo  ln  –s  ~/src/puppet/prod_stable  $  sudo  ln  –s  ~/src/puppet/stage_stable  $  sudo  ln  –s  ~/src/puppet/dev_test     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     25  
  26. 26. Source  Controlled  Puppet  Configs  Puppet   Each  environment  has  its   own  branch.     Make  a  new  branch  for   every  new  feature.     Merge  into  a  test  branch   to  test.     Merge  into  stable.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     26  
  27. 27. Confidential, Property of BrightTag, Inc. Not to be disclosed, reproduced, or distributed without BrightTag, Inc.s prior written authorization. © 2011 BrightTag, Inc. All Rights Reserved.
  28. 28. What  is  Zerg?  Management   +   =   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     28  
  29. 29. How  to  Reach  Servers?  Management  DNS  vs  /etc/hosts   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     29  
  30. 30. Case  Study:  /etc/hosts  Management  $  curl  –s  http://zerg/etchosts/us-­‐west-­‐1    #  The  following  lines  are  desirable  for  IPv6  capable  hosts"  ::1  ip6-­‐localhost  ip6-­‐loopback  fe00::0  ip6-­‐localnet  ff00::0  ip6-­‐mcastprefix  ff02::1  ip6-­‐allnodes  ff02::2  ip6-­‐allrouters  ff02::3  ip6-­‐allhosts  10.0.0.10                  server01                        #  External:  123.123.123.123  10.0.0.11                  server02                        #  External:  123.123.123.124  10.0.0.12                  server03                        #  External:  123.123.123.125  10.0.0.13                  server04                        #  External:  123.123.123.126  10.0.0.14                  server05                        #  External:  123.123.123.127  10.0.0.15                  server06                        #  External:  123.123.123.128   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     30  
  31. 31. Instance  Crea5on  Management   Amazon  API  is  easy   ...  but  just  crea5ng  the   instance  is  10%  of  the  work     Gesng  the  right  sotware.     Surviving  internal  API   failures.     Staying  hos5ng  provider   agnos5c.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     31  
  32. 32. Case  Study:  Instance  Crea5on  Management  ROLE_MAPPING  =  {      "stage"  :  {          "supercloud"  :  {                  "ops"  :  ["zerg"],                  "awesome"  :  ["awesome",  "haproxy_awesome"],                  "shabang"  :  ["shabang",  "mashed_potatoes",  "haproxy_shabang"],                  "whistles"  :  ["gowhooo",  "shabang",  "thehardproblem",  "redis"],                  "data"  :  ["dataserver",  "dataleaf"],                  "nosql"  :  ["itshards",  "devnull"],                  "lb"  :  ["haproxy"],                  "redis"  :  ["redis"],                  "graph"  :  ["graphite",  "tattle"]          },      "prod"  :  {          "evenmoresupercloud"  :  {                  ...          }      }  }   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     32  
  33. 33. Case  Study:  Instance  Configura5on  Management  /etc/instanceinfo  filled  out  with  values  based  on  Zergs  defini5ons:   §  hostname   §  environment   §  region   §  roles   §  wheres  my  local  zerg  server?   §  wheres  my  local  graphite  server?   §  cloud  meta  info   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     33  
  34. 34. Loadbalancer  Configura5on  Management   Update  5ming  tricky  to  get   right.     Too  important  to  leave   completely  autonomous.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     34  
  35. 35. HAProxy  Configura5on  Workflow   Management   Zerg   (genera5on)   Git  (ops)   Script   (human)   Large  changes  to  templates   Git  (puppet)   (human)   Server   Server   Server   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     35  
  36. 36. Applica5on  Descrip5ons  Management  APP_DEFS  :  {      "zerg"  :  {"type":  "http",  "healthcheck":  {"port":  19999,  "resource":  "/zerghealth"}},      "awesome"  :  {"type":  "http",  "healthcheck":  {"port":  20000,  "resource":  "/ahc"}  },      "haproxy_awesome"  :  {"type":  "http",  "healthcheck":  {"port":  20001,  "resource":  "/"}},      "shabang"  :  {"type":  "http",  "healthcheck":  {"port":  20002,  "resource":  "/"}},      "mashed_potatoes"  :  {"type":  "http",  "healthcheck":  {"port":  20003,  "resource":  "/"}},      "haproxy_shabang"  :  {"type":  "http",  "healthcheck":  {"port":  20004,  "resource":  "/hc"}},      "gowhooo"  :  {"type":  "http",  "healthcheck":  {"port":  20005,  "resource":  "/"}},      "thehardproblem"  :  {"type":  "http",  "healthcheck":  {"port":  20006,  "resource":  "/"}},      "redis"  :  {  "type":  "tcp",  "healthcheck":  {"port":  20007,  "resource":  "/rhc"}},      "dataserver"  :  {  "type":  "http",  "healthcheck":  {"port":  20008,  "resource":  "/"}},      "itshards"  :  {  "type":  "http",  "healthcheck":  {"port":  20009,  "resource":  "/"}},      "devnull"  :  {  "type":  "http",  "healthcheck":  {"port":  200010,  "resource":  "/hc"}},      "graphite"  :  {  "type":  "http",  "healthcheck":  {"port":  80,  "resource":  "/composer"}}  }   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     36  
  37. 37. Case  Study:  HAProxy  Configura5on  Management  $  curl  -­‐s  http://zerg/haproxy/<env>/<region>/<service>    global    log  127.0.0.1  local0    log  127.0.0.1  local1  notice                  stats  socket  /tmp/haproxy    blah  blah    defaults    log  global    mode  http    blah  blah    frontend  mashedpotatoes_vip                  bind  *:30000                  default_backend  data    backend  mashedpotatoes                  blah  blah  options                  server  shabang01  10.0.0.30:30001  check                  server  shabang02  10.0.0.31:30001  check   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     37  
  38. 38. The  Manual  Step  Management  $  ./update_haproxy.sh  <env>  <region>  <service>    **  Git  is  clean  and  in  sync  with  origin..  now  waiting  for  zerg  http  response..  [prod_stable  f4qijo]  [puppetry]  Haproxy  Auto-­‐Commit  for  <env>  <region>  <service>    1  files  changed,  2  insertions(+),  2  deletions(-­‐)  **  Template  pulled  and  committed  **  Here  is  the  diff  from  origin  to  the  new  version:  diff  -­‐-­‐git  a/modules/haproxy/templates/haproxy_<env>_<region>_<service>_cfg.erb    b/modules/haproxy/templates/haproxy_<env>_<region>_<service>_cfg.erb  -­‐-­‐-­‐  a/modules/haproxy/templates/haproxy_prod_us-­‐east-­‐1_tagserve_cfg.erb  +++  b/modules/haproxy/templates/haproxy_prod_us-­‐east-­‐1_tagserve_cfg.erb  -­‐                oldyuckyserver01  -­‐                oldyuckyserver02  +                fastwonderfulnewserver01  +                fastwonderfulnewserver02  **  Do  you  want  to  push  this  change?  (y/n)  y  blah  blah  successful  git  push  message  **  Commit  successfully  pushed  to  origin  **  All  done!   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     38  
  39. 39. Trust  is  a  Luxury  Best  Prac5ces   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     39  
  40. 40. Uniform  Environments  Best  Prac5ces   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     40  
  41. 41. Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     41  
  42. 42. Why  monitor?  Monitoring  How  do  you  know  whats  going  on?     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     42  
  43. 43. What  to  monitor?  Monitoring  Iden5fy  metrics  that  act  as  signals.    Add  alerts  ater  every  incident.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     43  
  44. 44. Data  Collec5on  Monitoring  Need  system  level  metrics  and  applica5on  metrics  to  get  full  picture.    Everything  is  in  a  different  format.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     44  
  45. 45. Case  Study:  Metric  Polling  at  BrightTag  Monitoring   datahub   datahub   redis   tagserve   redis   tagserve   mpoller   cassandra   haproxy   cassandra   haproxy   mpoller   mpoller   graphite   graphite   carbon   carbon   mpoller   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     45  
  46. 46. Graphite  Monitoring   Storage  of  historical   metrics  allows  for  trending   and  comparisons.     Aggrega5on  is  performed   on  data  retrieval  via  the   webapp.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     46  
  47. 47. Branches  and  Leaves  Monitoring  Expose  a  "metrics"  service  per  region.    Enables  a  flexible  topology.     Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     47  
  48. 48. Real5me  Numbers  Across  Regions  Monitoring  Requests are farmed out to each metrics service. Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     48  
  49. 49. Visualiza5on  Monitoring  Different  visualiza5ons  tell  you  different  things.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     49  
  50. 50. Red-­‐Yellow-­‐Green  Monitoring  Dashboards  provide  at-­‐a-­‐glance  high  level  overviews.   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     50  
  51. 51. Ques5ons?   Confiden5al,  Property  of  BrightTag,  Inc.  Not  to  be  disclosed,  reproduced,  or  distributed  without  BrightTag,  Inc.s   prior  wri+en  authoriza5on.      ©  2011  BrightTag,  Inc.    All  Rights  Reserved.     51  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×