Next Level: DevOps

4c50caee0c6a446a0b60f827a2a1e5e5?s=47 Ole Michaelis
September 22, 2013

Next Level: DevOps

Gave this talk at PHP unconference on September 22nd, 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

September 22, 2013
Tweet

Transcript

  1. NEXT LEVEL: DEVOPS PHP unconference - September 22nd - Hamburg

    (GER)
  2. @CodeStars github.com/nesQuick codestars.eu OLE MICHAELIS

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

  4. “Open Source Rockstar” WORKING @JIMDO

  5. MY DEVOPS STORY

  6. None
  7. None
  8. None
  9. None
  10. WHY IS IT GOOD?

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

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

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

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

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

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

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

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

  19. BECOME A DEVOPS

  20. EXTEND YOUR DEV SKILLS

  21. you must walk through hell tests, tests, tests (BDD, Integration

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

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

  24. GATHER OPS KNOWLEDGE

  25. THE 4 BOTTLENECKS

  26. None
  27. 1ns

  28. L1 CACHE REFERENCE 1ns

  29. L2 CACHE REFERENCE 1ns

  30. 1ns MUTEX LOCK/UNLOCK

  31. 1ns MAIN MEMORY REF.

  32. 1ns MAIN MEMORY REF.

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

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

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

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

  37. 1ns 100ns ~ 0.1μs

  38. 1ns 100ns ~ 0.1μs

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

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

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

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

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

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

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

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

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

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

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

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

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

  52. None
  53. BEING ON-CALL keep calm! important things first first in, first

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

  55. * AS A SERVICE

  56. DEPLOYMENT

  57. None
  58. CONTINUOUS DELIVERY Ship when it’s done!

  59. CONTINUOUS DEPLOYMENT Shipin’ all the time!

  60. PULL DEPLOY Stop pushing, start pulling!

  61. STRATEGIES

  62. ONE, SOME, MANY

  63. ONE, SOME, MANY

  64. ONE, SOME, MANY

  65. ONE, SOME, MANY

  66. GREEN / BLUE

  67. METRICS

  68. SYSTEM VS. APPLICATION

  69. WHAT TO MEASURE?

  70. WHAT TO MEASURE? requests

  71. WHAT TO MEASURE? requests querys

  72. WHAT TO MEASURE? requests querys exceptions

  73. WHAT TO MEASURE? requests querys exceptions connections

  74. WHAT TO MEASURE? requests querys exceptions connections user

  75. WHAT TO MEASURE?

  76. None
  77. MEASURE WHATEVER MAKES FUCKING SENSE!

  78. None
  79. None
  80. VISUALIZE IT!

  81. VISUALIZE IT! #M ONITORINGLOVE

  82. AUTOMATION

  83. SCALE

  84. TOOLS LOVE

  85. DATABASES

  86. PROGRAMMING LANGUAGES

  87. 3RD-PARTY TOOLS

  88. QUEUES

  89. None
  90. FAILURE IS GOOD

  91. BE AGILE

  92. FEEDBACK

  93. METHODS

  94. KEEP LEARNING

  95. THANK YOU! @CodeStars

  96. None
  97. 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 Fridel Spring Jimdo! Sources: