タップルSREはタップルの成長をどこまで支えられるか / tapple-SRE

2016ba6b977a2e6691811fa66d5f4336?s=47 CyberAgent
February 22, 2019

タップルSREはタップルの成長をどこまで支えられるか / tapple-SRE

サイバーエージェントの技術者(エンジニア・クリエイター)向けカンファレンス『CA BASE CAMP 2019』

タップルSREはタップルの成長をどこまで支えられるか
袴田 類

2016ba6b977a2e6691811fa66d5f4336?s=128

CyberAgent

February 22, 2019
Tweet

Transcript

  1. λοϓϧSRE͸ λοϓϧͷ੒௕Λ Ͳ͜·Ͱࢧ͑ΒΕΔ͔ λοϓϧͷकΓͷϛογϣϯΛ୲͏λοϓϧSRE͸ʮ҆શͱ࠷దʯͷ׆ಈ࣠ Ͱ2018೥4݄͔Β׆ಈ։࢝͠·ͨ͠ɻ λοϓϧSREͷݱࡏͷ׆ಈ಺༰ͱɺࠓޙλοϓϧͷ੒௕ΛSREͱͯ͠ͲͷΑ ͏ʹࢧ͔͑ͯ͘ʹ͍͓ͭͯ࿩͠·͢ɻ ϚονϯάΤʔδΣϯτɹއా ྨ !1

  2. 1. αʔϏε঺հ 2. λοϓϧSREͷઃཱഎܠ 3. ׆ಈ಺༰ 4. ՝୊ղܾͷํ਑ 5. ୹ظ՝୊

    6. த௕ظઓུ 7. ·ͱΊ 8. ࠷ޙʹ !2
  3. ϓϩϑΟʔϧ • 2012೥4݄ αΠόʔΤʔδΣϯτ৽ଔೖࣾ
 Ξϝʔόϐά ։ൃΤϯδχΞ
 ίΞγε
 ৽نΞϓϦ্ཱͪ͛ • 2018೥6݄

    ϚονϯάΤʔδΣϯτग़޲
 λοϓϧ஀ੜ ։ൃΤϯδχΞ SREΤϯδχΞ !3
  4. αʔϏε঺հ !4

  5. λοϓϧ஀ੜʹ͍ͭͯ ए͍உঁ͕झຯͰܨ͕Δ࿀׆αʔϏε !5

  6. λοϓϧ஀ੜʹ͍ͭͯ झຯͰ޷ΈͷҟੑΛ୳͢ एऀͷར༻ׂ߹͕ߴ͍ !6

  7. ϚονϯάΞϓϦͷར༻཰ !7

  8. 20~30୅ͷएऀͷ5ਓʹ1ਓ !8 શࠃͷʙࡀͷະࠗͷஉঁʹฉ͍ͨʮϚονϯάΞϓϦʹؔ͢Δௐࠪʯ IUUQTQSUJNFTKQNBJOIUNMSEQIUNM

  9. ϚονϯάΞϓϦʹର͢Δ ੈؒͷΠϝʔδ͸มΘΓͭͭ͋Δ !9

  10. λοϓϧ͸ॱௐʹ੒௕ 2018೥ʹձһ਺400ສಥഁ !10

  11. λοϓϧ͸ॱௐʹ੒௕ ࡢ೥ൺͰ७རӹ͸2ഒҎ্ͷ੒௕ !11

  12. ϚονϯάΤʔδΣϯτͷϝϯόʔ !12

  13. ϚονϯάΤʔδΣϯτͷϝϯόʔ ຊؾͰʮग़ձ͍ͰੈքΛม͑ΔʯͨΊʹऔΓ૊Ή೤͍ϝϯόʔ͹͔Γ !13

  14. ·ͣ͸ɺϚʔέοτγΣΞͰ ೔ຊҰΛ໨ࢦ͠·͢ !14

  15. λοϓϧSREͷઃཱഎܠ !15

  16. ೔ຊҰΛ໨ࢦͯ͠ λοϓϧͰߦͳ͍ͬͯΔ͜ͱ !16

  17. νʔϜ੍։ൃ • νʔϜ੍ͷ։ൃελΠϧ ՝ۚ / UXվળ / ւ֎ / CS

    ... • Ϛονϯάࢢ৔͸ܹԽ ػೳͷඪ४Խ ৽ػೳͷఏڙ • ߴ଎ʹ։ൃΛਐΊ͍ͨ !17
  18. ΤϯδχΞෆ଍ !18

  19. ૊৫Λεέʔϧͤ͞Δ !19

  20. ૊৫Λεέʔϧͤ͞Δ ୯७ʹਓΛ૿΍ͤ͹ྑ͍Θ͚Ͱ͸ͳ͍ !20

  21. ૊৫Λεέʔϧͤ͞Δ ඼࣭΍ੜ࢈ੑΛ୲อͯ͠։ൃʹઐ೦Ͱ͖Δ؀ڥΛ࡞Δඞཁ !21

  22. ϩʔϧϞσϧͱͳΔνʔϜ !22

  23. Google SRE • αΠτͷ৴པੑΛकΔ • SRE͸DevOpsͷGoogleతͳ࣮ફ • ಠࣗͷӡ༻ϓϥΫςΟε ੜ࢈ੑͷ୲อ ඼࣭ͷ୲อ

    ... etc • ॻ੶ͰମܥతʹGoogle SREͷϓϥΫ ςΟεΛशಘՄೳ !23
  24. λοϓϧ SRE • λοϓϧͰ͸૊৫Λεέʔϧ͍ͤͨ͞ • αʔϏεͷ඼࣭΍ੜ࢈ੑΛ୲อ͍ͨ͠ • GoogleSREͷ׆ಈ಺༰Ͱཁ࣮݅ݱՄೳ • 2018೥4݄ʹSREΛλοϓϧʹઃཱ

    2018೥10݄ΑΓ2ਓମ੍ !24
  25. ׆ಈ಺༰ !25

  26. ଞࣾͷSREͷ׆ಈࣄྫ !26

  27. SREͷ׆ಈ಺༰͸༷ʑ SREͷަྲྀձ SRE LoungeͰ֤ࣾͷSREΛൃද !27

  28. SREͷ׆ಈ಺༰͸༷ʑ • SRE͸؀ڥʹԠͯ͡׆ಈ಺༰͕ҟͳΔ ΞʔΩςΫνϟ SREͷઃཱίϯςΩετ SREͷਓһ ϝϯόʔͷಘҙ෼໺ ϓϩμΫτͷ੒௕ஈ֊ ... etc

    • Google SREʹֶͼಠࣗͷϓϥΫςΟεΛੜΈग़͢ !28
  29. Google SREʹݻࣥ͗ͣ͢͠ɺ λοϓϧͷSREΛ໨ࢦ͢ !29

  30. λοϓϧͷSREͷ׆ಈ಺༰ !30

  31. λοϓϧSREͷ׆ಈ಺༰ GoogleSREͷ׆ಈ಺༰Λܧঝ͠ɺλοϓϧͷSREͷ׆ಈΛఆٛ !31

  32. λοϓϧSREͷ׆ಈ಺༰ • λοϓϧSREͷ׆ಈ಺༰͸ଟذʹ౉Γۀ຿͕ཧղ͞ΕͮΒ͍ ϏδωεαΠυͷϝϯόʔʹ΋׆ಈ಺༰Λ఻͑Δඞཁ ׆ಈ࣠ΛҰݴͰදݱ͢Δ͜ͱʹ !32

  33. λοϓϧSREͷ׆ಈ಺༰ ׆ಈ࣠ͱͯ͠ʮ҆શͱ࠷దʯͱදݱ !33

  34. ՝୊ղܾͷํ਑ !34

  35. ଍ݩͷ՝୊͕ଟ͍ !35

  36. ୹ظ՝୊ •҆શ؍఺ ϐʔΫଳͰͷύϑΥʔϚϯε௿Լ ো֐ରԠϑϩʔͷ੔උ ... etc •࠷ద؍఺ ඇޮ཰ӡ༻ ଐਓԽͨ͠ӡ༻ϑϩʔ ...

    etc !36
  37. ୹ظ՝୊ • ଍ݩ՝୊͹͔Γରॲ͍ͯ͠ΒΕͳ͍ SRE͕ෛ࠴ฦ٫νʔϜͷΑ͏ͳݟ͑ํʹ ҆શͱ࠷ద؍఺Ͱͷ࣮ߦλεΫ͕ݮͬͨ࣌ͷଘࡏҙ͕ٛग़ͮ͠Β͍ ଍ݩ͹͔Γݟ͍ͯͯ͸େ͖ͳෛ࠴Λ๊͔͑Ͷͳ͍ !37

  38. த௕ظઓུ΋ඞཁ !38

  39. த௕ظઓུ • ҆શ؍఺ ࠓޙൃੜ͢ΔϦεΫ΁ͷରࡦ • ࠷ద؍఺ ࣄۀͷཧ૝ঢ়ଶΛ࣮ݱ͢ΔΞʔΩςΫνϟ !39

  40. ୹ظͷ՝୊ղܾͱத௕ظઓུ 2ͭͷࢹ఺Ͱ҆શͱ࠷దͷ՝୊ʹ޲͖߹͏ !40

  41. ୹ظ՝୊ !41

  42. ଍ݩͷ՝୊͕ଟ͍ !42

  43. ୹ظ՝୊ͷఆٛ • ඞͣରԠ͢΂͖λεΫͱฒߦͯ͠ɺ୲อ ͢΂͖҆શͱ࠷దͷج४͕ඞཁ ύϑΥʔϚϯε ΤϥʔϨʔτ Մ༻ੑ ... etc !43

  44. ਖ਼ৗͱҟৗͷڥքΛͲ͏ܾΊΔ͔ !44

  45. SLO • SLI(Service Level Indicator) ఏڙ͢ΔαʔϏεͷ඼࣭Λܭଌ͢Δࢦඪ • SLO(Service Level Objective)

    ֤SLIʹର͢Δ໨ඪ஋ !45
  46. SLO • ΤϥʔόδΣοτ SLOΛຬͨ͢ൣғͰͷෆ۩߹Λڐ༰ த௕ظઓུʹ޲͚Δ͜ͱ͕Մೳ • SLOʹΑΓ୲อ͢΂͖҆શͱ࠷దͷج४Λఆٛ Մೳ • ૊৫ԣஅͷ໨ඪʹ͢Δ͜ͱͰɺ҆શͱ࠷దͷج

    ४ͷ୲อͷ֬౓͕޲্ !46
  47. λοϓϧͰӡ༻தͷSLO !47

  48. λοϓϧͰӡ༻தͷSLO • API੒ޭ཰ ఆٛɿɹਖ਼ৗϦΫΤετ / ૯ϦΫΤετ਺ * 100 ໨ඪ஋ɿ99.9%Ҏ্ •

    ϝϯς཰ ఆٛɿɹ503ΤϥʔҎ֎ / ૯ϦΫΤετ਺ * 100 ໨ඪ஋ɿ99.9%Ҏ্ • APIϨεϙϯελΠϜ (200msҎԼ) ఆٛɿɹ200msҎԼͷਖ਼ৗϦΫΤετ / ૯ϦΫΤετ਺ * 100 ໨ඪ஋ɿ95%Ҏ্ !48
  49. λοϓϧͰӡ༻தͷSLO • DatadogͰՄࢹԽ • ΤϥʔόδΣοτΛஶ͘͠ফඅ͢Δ৔ ߹ʹ͸Ξϥʔτ • ఆظతʹαʔόΤϯδχΞશମͰ໨ࢹ ֬ೝ !49

  50. ಠࣗͷSLOར༻ํ๏ !50

  51. ϦεΫείΞ • ະղܾͷϙετϞʔςϜͷ࠶ൃ๷ࢭࡦΛ SLOͰ؅ཧ • ো֐ൃੜ࣌ɺো֐Өڹ౓Λ̏ஈ֊ͰධՁ Ϣʔβ໰͍߹Θͤ਺ΛࢀߟʹӨڹ౓ΛධՁ • ࠶ൃ๷ࢭࡦΛো֐Өڹ౓ʹԠͯ͡είΞԽ •

    ະ࣮ࢪͷ࠶ൃ๷ࢭࡦͷείΞͷ૯࿨Λো֐ ϦεΫείΞͱఆٛ !51
  52. ϦεΫείΞ • ো֐ϦεΫείΞΛ100ҎԼʹอͭ ܦӦ૚ʹ߹ҙΛऔΓɺ૊৫ڞ௨ͷ໨ඪʹ 100఺Λ௒͑ͨ৔߹։ൃΛετοϓ • DatadogͰՄࢹԽ ఆظతʹো֐ϦεΫείΞΛ૊৫શମʹڞ༗ !52

  53. ࠓޙ௥Ճ͢ΔϦεΫείΞ !53

  54. ϦεΫείΞ ηΩϡϦςΟʔΞηεϝϯτγʔτΛར༻ͨ͠ηΩϡϦςΟʔϦεΫείΞ !54

  55. ϦεΫείΞ εΩϧϚοϓΛར༻ͨ͠଱ো֐ϦεΫείΞ !55

  56. த௕ظઓུ !56

  57. த௕ظઓུͷఆٛ ࠓޙൃੜ͢ΔϦεΫ΁ͷରࡦ΍ɺࣄۀͷཧ૝ঢ়ଶͷ࣮ݱ !57

  58. த௕ظઓུΛ໌ྎԽ͢Δ ൑அࡐྉ͕ඞཁ !58

  59. த௕ظઓུͷ໌ྎԽ • ࠓޙൃੜ͢ΔϦεΫͷ໌ྎԽ ܦӦ૚ʹࣄۀܭըΛཁٻ ࣄۀܭըΛ્֐͢ΔϦεΫΛνΣοΫ !59

  60. த௕ظઓུͷ໌ྎԽ • ཧ૝ঢ়ଶ࣮ݱͷͨΊଟ໘తʹ՝୊੔ཧ SRE × ։ൃΤϯδχΞMTG ... ։ൃࢹ఺
 SRE ×

    ٕज़ϘʔυMTG ... ٕज़ઓུࢹ఺ SRE × ܦӦ × ٕज़ϘʔυMTG ... ࣄۀࢹ఺ • ٞ࿦Λ௨ͯ͡։ൃνʔϜ΍ܦӦ૚ͷ՝ ୊΍ཧ૝ঢ়ଶΛ͢Γ߹ΘͤΔ !60
  61. ࣄۀͷཧ૝ঢ়ଶͷఆٛྫ !61

  62. ཧ૝ঢ়ଶͷఆٛྫ ݕࡧΞϧΰϦζϜ = ҟੑͷදࣔॱং !62

  63. ཧ૝ঢ়ଶͷఆٛྫ • ݕࡧΞϧΰϦζϜͷ՝୊੔ཧ ૊৫Λεέʔϧͤ͞Δඞཁ िҰͷϦϦʔεͰPDCAΛճͮ͠Β͍ ஌ࣝͷܧঝ͕ద੾ʹ͞Ε͍ͯͳ͍՝୊ !63

  64. ཧ૝ঢ়ଶͷఆٛྫ • ݕࡧΞϧΰϦζϜͷ՝୊੔ཧ ૊৫Λεέʔϧͤ͞Δඞཁ νʔϜ΁ͷݖݶҕৡͰ૊৫Λεέʔϧ िҰͷϦϦʔεͰPDCAΛճͮ͠Β͍ ςετ؀ڥΛ֤αʔϏεͰ੔උ͢Δ͜ͱͰɺ͍ͭͰ΋ ϦϦʔεͰ͖Δঢ়ଶʹ ஌ࣝͷܧঝ͕ద੾ʹ͞Ε͍ͯͳ͍՝୊ νʔϜΛݻఆ͠஌ࣝͷू໿

    !64
  65. ϚΠΫϩαʔϏεԽͷਪਐத !65

  66. ·ͱΊ !66

  67. ·ͱΊ • ҆શͱ࠷దͷ׆ಈ࣠ • ୹ظࢹ఺ SLOΛຬͨ͢Ұఆਫ४ͷج४Λ୲อ • த௕ظઓུ ࣄۀܭըΛ્֐͢ΔϦεΫΛഉআ
 ࣄۀܭըΛଅਐͤ͞Δཧ૝૾ͷ࣮ݱ

    !67
  68. Ͳ͜·Ͱλοϓϧͷ੒௕Λ ࢧ͑ΒΕΔ͔ʁ !68

  69. ࢧ͑ΔͷͰ͸ͳ͘ Ή͠Ζ੒௕Λଅਐͤ͞Δ !69

  70. ࠷ޙʹ !70

  71. ཧ૝ͱݱ࣮ͷΪϟοϓ • SREͷਓࡐෆ଍ AWSҠઃ(2018೥) ւ֎ਐग़(2019೥) • λοϓϧSRE͸2018೥2݄࣌఺Ͱ2ਓ Πϯϑϥ΍։ൃΤϯδχΞͷڠྗແ͠ʹ͸ճ Βͳ͍ !71

  72. SREืू • λοϓϧͷϚʔέοτγΣΞΛࠃ಺1Ґ ʹಋ͘SREΤϯδχΞΛืू !72

  73. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ !73