Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Next Level: DevOps

4c50caee0c6a446a0b60f827a2a1e5e5?s=47 Ole Michaelis
November 07, 2013

Next Level: DevOps

Gave this talk at Developer Conference Hamburg on November 7th, 2013
Follow me on Twitter: @CodeStars

My current company hired me as a Software Engineer. Their software has organically grown over the past six years and it really looks like what you would expect, when you hear that a software system is that old. There was no real abstraction, no idea of services - nothing fancy.
I realized that if I wanted to change the software I had to start with the system architecture. Thus, I joined the infrastructure team where I learned a lot of new stuff as well as what it meant to be on call.

4c50caee0c6a446a0b60f827a2a1e5e5?s=128

Ole Michaelis

November 07, 2013
Tweet

Transcript

  1. NEXT LEVEL: DEVOPS Developer Conference - November 7th - Hamburg

  2. ! @CodeStars! github.com/nesQuick! codestars.eu OLE MICHAELIS

  3. ! @CodeStars! github.com/nesQuick! codestars.eu OLE MICHAELIS

  4. ! @CodeStars! github.com/nesQuick! codestars.eu OLE MICHAELIS

  5. None
  6. I ALWAYS WANTED TO USE THIS

  7. ANYWAY! WHAT ABOUT YOU?

  8. MY DEVOPS STORY

  9. 
 “Open Source Rockstar” WORKING @JIMDO

  10. None
  11. None
  12. None
  13. None
  14. WHY IS IT GOOD?

  15. WHY IS IT GOOD? dedicated technical-debt team

  16. WHY IS IT GOOD? dedicated technical-debt team making others faster

  17. WHY IS IT GOOD? dedicated technical-debt team making others faster

    cross-functional
  18. WHY IS IT GOOD? dedicated technical-debt team making others faster

    cross-functional full-stack engineering
  19. LET’S TRY TO DEFINE DEVOPS

  20. YOU BUILD IT, YOU RUN IT! “The DevOps prime directive”

  21. ANTI-PATTERNS “You are doing it wrong!” NO! BECAUSE NO http://i.huffpost.com/gen/1143905/original.jpg

  22. ANTI-ANTI-PATTERNS “Ahhh... better!”

  23. BECOME A DEVOPS

  24. EXTEND YOUR DEV SKILLS

  25. you must walk through hell! tests, tests, tests (BDD, Integration

    tests)! branch by abstraction REFACTORING
  26. OPEN SOURCE working with upstream! do not patch the framework!

    join the community & gather credits
  27. KNOW THE PITFALLS wrong expectations! “hipster” technologies! 2nd system effect

  28. GATHER OPS KNOWLEDGE

  29. THE 4  BOTTLENECKS

  30. None
  31. 1ns

  32. L1 CACHE REFERENCE 1ns

  33. L2 CACHE REFERENCE 1ns

  34. 1ns MUTEX LOCK/UNLOCK

  35. 1ns MAIN MEMORY REF.

  36. 1ns MAIN MEMORY REF.

  37. 1ns 100ns ~ 0.1μs MAIN MEMORY REF.

  38. 1ns 100ns ~ 0.1μs MAIN MEMORY REF.

  39. 1ns 100ns ~ 0.1μs SEND 2KB OVER COMMODITY NETWORK

  40. 1ns 100ns ~ 0.1μs COMPRESS 1KB/W ZIPPY

  41. 1ns 100ns ~ 0.1μs

  42. 1ns 100ns ~ 0.1μs

  43. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs

  44. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs

  45. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs READ 1MB SEQ.

    FROM MEMORY
  46. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs READ 1MB SEQ.

    FROM SSD
  47. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs ROUND TRIP IN

    SAME DATACENTER
  48. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs

  49. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs

  50. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs 1,000,000ns ~ 1ms

  51. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs 1,000,000ns ~ 1ms

  52. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs 1,000,000ns ~ 1ms

    READ 1MB SEQ. FROM DISK
  53. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs 1,000,000ns ~ 1ms

    DISK SEEK
  54. 1ns 100ns ~ 0.1μs 10,000ns ~ 10μs 1,000,000ns ~ 1ms

    PACKET ROUNDTRIP CA TO NETHERLANDS
  55. http://www.eecs.berkeley.edu/~rcs/research/ interactive_latency.html

  56. None
  57. BEING ON-CALL keep calm!! important things first! first in, first

    out, but...
  58. TOPICS YOU MIGHT CARE ABOUT

  59. * AS A SERVICE

  60. DEPLOYMENT

  61. None
  62. CONTINUOUS DELIVERY Ship when it’s done!

  63. CONTINUOUS DEPLOYMENT Shipin’ all the time!

  64. PULL DEPLOY Stop pushing, start pulling!

  65. STRATEGIES

  66. ONE, SOME, MANY

  67. ONE, SOME, MANY

  68. ONE, SOME, MANY

  69. ONE, SOME, MANY

  70. GREEN / BLUE

  71. METRICS

  72. SYSTEM VS. APPLICATION

  73. WHAT TO MEASURE?

  74. WHAT TO MEASURE? requests

  75. WHAT TO MEASURE? requests querys

  76. WHAT TO MEASURE? requests querys exceptions

  77. WHAT TO MEASURE? requests querys exceptions connections

  78. WHAT TO MEASURE? requests querys exceptions connections user

  79. WHAT TO MEASURE?

  80. None
  81. MEASURE WHATEVER MAKES FUCKING SENSE!

  82. None
  83. None
  84. VISUALIZE IT!

  85. VISUALIZE IT! #M ONITORINGLOVE

  86. AUTOMATION

  87. SCALE

  88. TOOLS LOVE

  89. DATABASES

  90. PROGRAMMING LANGUAGES

  91. 3RD-PARTY TOOLS

  92. QUEUES

  93. None
  94. FAILURE IS GOOD

  95. BE AGILE

  96. FEEDBACK

  97. METHODS

  98. KEEP LEARNING

  99. THANK YOU! @CodeStars

  100. None
  101. ! ! http://nikic.github.io/2011/12/27/Dont-be-STUPID-GRASP-SOLID.html! http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)! http://www.shutterstock.com! http://icomoon.io/app/! http://apievangelist.com/2012/01/12/the-secret-to-amazons-success-internal-apis/! http://en.wikipedia.org/wiki/Structural_pattern! http://en.wikipedia.org/wiki/Creational_pattern! http://en.wikipedia.org/wiki/Behavioral_pattern!

    http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html! http://bfwa.com/pitfalls/! http://farm9.staticflickr.com/8491/8344781525_5787255ec2_z.jpg! http://docs.hostedgraphite.com/_images/sample_dashboard_conc_users_advanced.png! http://oss.oetiker.ch/rrdtool/gallery/btdmd8.png! http://www.wadsam.com/wp-content/uploads/2012/11/stock-exchagne.jpeg! http://s3.amazonaws.com/crunchbase_prod_assets/assets/images/original/0018/2843/182843v2.png! http://2.bp.blogspot.com/-t2FW5rx_yn0/TxVwhmqAXgI/AAAAAAAAA7s/DSdFmMZ5ecM/s1600/trading-floor.jpg! http://en.wikipedia.org/wiki/Mutual_exclusion! Thanks to all the people helped me so much! Elena ! Ingo! Nils! Nadja! Fridel! Spring! Jimdo!! Sources: