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

SLO策定とアラート設定までの長い道のり

 SLO策定とアラート設定までの長い道のり

CloudNative Days Spring 2021 ONLINE
でお話したときの資料です
https://event.cloudnativedays.jp/cndo2021/talks/201

Shin'ya Ueoka

March 11, 2021
Tweet

More Decks by Shin'ya Ueoka

Other Decks in Technology

Transcript

  1. SLOࡦఆͱΞϥʔτઃఆ·Ͱͷ
    ௕͍ಓͷΓ
    αΠϘ΢ζגࣜձࣾ
    ্Ԭ ਅ໵ (@ueokande)
    CloudNative Days Spring 2021 Online

    View Slide

  2. Me
    • ্Ԭ ਅ໵ (@ueokande)
    • αΠϘ΢ζͰDevOpsͯ͠·͢
    • kintone.comͷ։ൃɾӡ༻
    • ٳ೔͸OSSΛ࡞ͬͨΓจॻΛॻ͍ͨΓ
    2

    View Slide

  3. kintone
    • ۀ຿γεςϜΛ؆୯ʹ࡞ΕΔB2B޲͚αʔϏε
    • ࠃ಺֎18,000+ࣾͰಋೖ
    • USࢢ৔޲͚ʹ͸ʮkintone.comʯͱ͍͏
    ϒϥϯυͰల։ͯ͠AWS্Ͱӡ༻
    3

    View Slide

  4. ࠓ೔࿩͢͜ͱ
    • US޲͚kintoneͷ SLO ͱ Ξϥʔτ ʹؔ͢ΔऔΓ૊Έ
    • kintone.comΛAWS্Ͱϩʔϯν͔ͯ͠ΒݱࡏʹࢸΔ·Ͱɺ
    SLOɾΞϥʔτΛԿ౓͔ݟ௚͖ͯ͠·ͨ͠
    • Ͳ͏͍ͬͨ؍఺Ͱվળͯ͠ɺͦͷ݁ՌͲ͏ͳ͔ͬͨΛ͓࿩͠·͢
    4

    View Slide

  5. ҎલͷSLOͱΞϥʔτ
    5

    View Slide

  6. SLO/SLI/SLA͓͞Β͍
    6
    ৚݅Λຬͨͤͳ͍ͱ͖
    ԿΛ͢Δ͔ͷ߹ҙ
    αʔϏεͷ৴པੑͷ
    ໨ࢦ͢΂͖໨ඪ
    SLO
    Service Level Objective
    SLI
    Service Level Indicator
    SLA
    Service Level Agreement
    αʔϏεͷ৴པੑΛ
    ද͢ࢦඪ
    ྫ: 30೔ؒͷϦΫΤετ੒ޭ཰99.9% ྫ: 30೔ؒͷϦΫΤετ੒ޭ཰ ྫ: ϦΫΤετ੒ޭ཰99%ΛԼճΕ͹
    શֹฦۚ

    View Slide

  7. ҎલͷkintoneͷSLOͱΞϥʔτ
    • kintone͕ར༻Ͱ͖Δ͔൱͔ʢՔಇ཰ʣʹண໨ͨ͠SLO
    • ੑೳɾεϧʔϓοτͳͲɺػೳ໘΍Ϣʔβʔࢹ఺ͷࢦඪ͸ͳ͔ͬͨ
    • ͦΕʹجͮ͘Ξϥʔτ΋ઃఆ͍ͯ͠ͳ͍
    7

    View Slide

  8. ༗༻ͳSLO͕ͳ͍ͱ…
    • ద੾ͳSLO΍ࢦඪ͕ͳ͘Ξϥʔτ΋࢓ֻ͚ʹ͍͘
    • ۓٸରԠ͕ඞཁ͔ɺνϡʔχϯά໨ඪɺλεΫͷ༏ઌ౓͕ܾΊʹ͍͘
    8
    ὸʮͳΜ͔LJOUPOFͷද͕ࣔΊͬͪΌ஗͍Μ͚ͩͲʯ

    View Slide

  9. SLOɾΞϥʔτΛݟ௚͖͔͚ͬ͢
    • ࠃ಺ͷࣗࣾΠϯϑϥͰఏڙ͍ͯͨ͠US൛kintoneΛAWSʹ͓Ҿӽ͠
    • ΞʔΩςΫνϟΛ࡮৽͠ɺSLOɾΞϥʔτγεςϜ΋ݟ௚͢νϟϯε
    9

    View Slide

  10. SLOɾΞϥʔτ (v1)
    10

    View Slide

  11. SLOɾΞϥʔτ (v1)
    • AWS൛kintone.comͷϩʔϯνલʹSLOͱΞϥʔτΛઃఆ
    • ओཁͳػೳʢAPIʣʹର͢Δࣾ಺޲͚ͷSLO
    • ҎલͷSLOʹج͖ͮɺμ΢ϯλΠϜΛߟྀͨ͠SLOΛઃఆ
    11
    Ϩίʔυߋ৽ɺΞϓϦ࡞੒ɺ…

    View Slide

  12. • μ΢ϯλΠϜʹجͮ͘SLOΛܾΊΔ
    SLO (v1) ͷྫ
    • API͝ͱͷμ΢ϯλΠϜΛఆٛ
    12
    ͋ΔAPI͕5෼΢Οϯυ΢Ͱ͍ͣΕ͔ͷج४Λ௒͑Ε͹μ΢ϯλΠϜ
    • ΢Οϯυ΢಺ͷΤϥʔ݅਺N݅Ҏ্ɺΤϥʔϨʔτ͕M%Ҏ্
    • ΢Οϯυ΢಺ͷԠ౴࣌ؒXύʔηϯλΠϧ͕YඵҎ্
    ͋ΔAPIͷ݄ؒՔಇ཰͕99.9%

    View Slide

  13. μ΢ϯλΠϜͱSLO
    • APIͷ݄ؒՔಇ཰͕99.9% = ݄ؒμ΢ϯλϜ43෼
    13
    5min.
    30day
    × × ××× ×× ××××××× ××× × ×× ×
    200500
    ΤϥʔόδΣοτ

    View Slide

  14. Ξϥʔτ (v1)
    • μ΢ϯλΠϜͷఆٛʹج͍ͮͨΞϥʔτΛͦΕͧΕͷAPIʹઃఆ
    14
    5෼΢Οϯυ΢Ͱ͍ͣΕ͔ͷᮢ஋ʹୡ͢ΔͱΞϥʔτ
    • ΢Οϯυ΢಺ͷΤϥʔ݅਺N݅Ҏ্ɺΤϥʔϨʔτ͕M%Ҏ্
    • ΢Οϯυ΢಺ͷԠ౴࣌ؒXύʔηϯλΠϧ͕YඵҎ্

    View Slide

  15. ݁Ռ
    • SLOɾΞϥʔτ (v1) Λ͠͹Β͘ӡ༻ͯ͠՝୊͕͍͔ͭ͘ݟ͔ͭͬͨ
    • Ξϥʔτ͕աහ͗͢Δ
    • Ξϥʔτج४ͷఆ͕ٛᐆດʹͳΔ
    • γϯϓϧ͡Όͳ͍
    15

    View Slide

  16. աහ͗͢ΔΞϥʔτʛΞϥʔτ (v1) ͷ݁Ռ
    • Ξϥʔτͷج४஋͕ඇৗʹաහͩͬͨ
    • ϦΫΤετ਺ͷগͳ͍ػೳ΍εύΠΫͰݦஶ
    • աහա͗ΔΞϥʔτ͸νʔϜϝϯόʔͷ݈߁ঢ়ଶʹ΋Өڹ͢Δ
    16

    View Slide

  17. Ξϥʔτج४͕ᐆດʹʛΞϥʔτ (v1) ͷ݁Ռ
    • ʮաහ͗͢ΔΞϥʔτʯͷ࣍ͷΞΫγϣϯ͸ᮢ஋ͷ؇࿨
    • ϩʔϯνޙ͠͹Β͘͸ɺΞϥʔτͷௐ੔Λ܁Γฦͨ͠
    • ௐ੔Λ܁Γฦ͍ͯ͠Δͱʮ͜ͷᮢ஋͸Ͳ͏͍͏ࠜڌͰܾΊ͚ͨͬʁʯ
    ͱɺج४஋ͷҙਤ͕Θ͔Βͳ͘ͳΔ͜ͱ΋
    17

    View Slide

  18. γϯϓϧ͡Όͳ͍ʛΞϥʔτ (v1) ͷ݁Ռ
    • Քಇ཰ܭࢉͷͨΊʹμ΢ϯλΠϜͱ͍͏֓೦Λಋೖ
    • μ΢ϯλΠϜ͸ɺͲΕ͘Β͍αʔϏεΛར༻Ͱ͖ͳ͘ͳ͔ͬͨͷ
    ίϛϡχέʔγϣϯʹ͸༗༻
    • ҰํͰSLO࣮੷஋ͷूܭ͕ෳࡶͩͬͨΓɺΞϥʔτ͕ෳࡶʹ
    18

    View Slide

  19. SLOͱΞϥʔτͷݟ௚͠
    • SLOɾΞϥʔτ͕ਖ਼͘͠ػೳͯ͠ͳ͍͜ͱʹؾ෇͘
    • ਖ਼͘͠ͳ͍SLO͸ϢʔβʔʹՁ஋Λಧ͚ΒΕͳ͍
    • ਖ਼͘͠ͳ͍Ξϥʔτ͸ϝϯόʔͷϞνϕʔγϣϯʹ΋ؔΘΔ
    • SLOɾΞϥʔτΛࠜຊతʹݟ௚͢͜ͱʹ (v2)
    19

    View Slide

  20. SLOɾΞϥʔτ (v2)
    20

    View Slide

  21. The Site Reliability Workbook
    • Site Reliability Engineeringͷଓฤ
    • ΑΓ࣮ફతͳӡ༻ํ๏ʹϑΥʔΧε
    • ͜ͷຊΑΓSLOͱΞϥʔτΛݟ௚͠
    21

    View Slide

  22. ͳͥSLO͕ඞཁ͔ʁ
    • SLOΛܾΊΔ͜ͱͰσʔλυϦϒϯͳίϛϡχέʔγϣϯ͕Ͱ͖Δ
    • ͜Ε͸ো֐͔൱͔
    • ύϑΥʔϚϯενϡʔχϯάͷج४
    • λεΫͷ༏ઌ౓
    • ৴པੑ͸ػೳͰ͋Γސ٬ʹಧ͚ΒΕΔՁ஋
    22
    SLO: ։ൃɺSREɺεςʔΫϗϧμʔͰ߹ҙ͢ΔҰ؏ͨ͠໨ඪ

    View Slide

  23. SLO (v2)
    • SLO (v1) ͷ൓ল఺Λ΋ͱʹSLO (v2) Λ࠶ઃఆ
    • ʮkintoneΛշదʹ࢖͑Δ͔ʯ΋ߟ͑ͯج४Λߟ͑Δ
    • ΤϥʔϨʔτɾϨεϙϯελΠϜΛݸʑʹγϯϓϧͳSLOΛઃఆ
    23
    • ͋ΔAPIͷɺ1ϲ݄ͷϦΫΤετ੒ޭ཰͕M%
    • ͋ΔAPIͷɺ1ϲ݄ͷϦΫΤετͷX%͕Ԡ౴࣌ؒYඵະຬ

    View Slide

  24. μογϡϘʔυʹΑΔSLOୡ੒཰ͷՄࢹԽ
    • Ҏલ (v1) ͸݄຤ʹSLOͷ࣮੷Λܭࢉ͢Δ͚ͩͩͬͨ
    • ݄ͷ్தͰ࢒ΓͷΤϥʔόδΣοτ΋֬ೝͰ͖ͳ͔ͬͨ
    • ৽͍͠SLO͸ݱࡏͷୡ੒཰ΛμογϡϘʔυ্ʹՄࢹԽ
    24

    View Slide

  25. SLOμογϡϘʔυͷڞ༗
    • ΈΜͳ͕ݟ͑Δ৔ॴʹݱࡏͷSLO࣮੷Λදࣔ
    25

    View Slide

  26. SLOͱΞϥʔτ
    • ͳͥγεςϜʹΞϥʔτ͕ඞཁ͔ʁ
    • ো֐Λ͍ͪૣ͘ؾ෇͖͍ͨ = SLOΛҧ൓͢Δલʹम෮͍ͨ͠
    • SRE͸߹ҙͨ͠ΤϥʔόδΣοτΛશྗͰकΔ΂͖
    • ΤϥʔόδΣοτΛ࢖͍੾Δલʹো֐Λݕ஌Ͱ͖ΔΞϥʔτ͕ඞཁ
    26

    View Slide

  27. όʔϯϨʔτʹجͮ͘ΞϥʔτʛΞϥʔτ (v2)
    • όʔϯϨʔτ1 = SLOͷظؒ಺ͰΤϥʔόδΣοτΛ࢖͍੾Δ
    • ΤϥʔόδΣοτΛ࢖͍੾Δ଎౓ͷো֐Λؾ෇͘ΞϥʔτΛ࢓ֻ͚Δ
    27
    ͨͱ͑͹30೔
    όʔϯϨʔτ: ΤϥʔόδΣοτͷফඅ଎౓Λද͢ࢦඪ

    View Slide

  28. όʔϯϨʔτͱΤϥʔόδΣοτͷؔ܎
    28
    όʔϯϨʔτ2
    15೔ͰΤϥʔόδΣοτΛ
    ࢖͍੾Δ
    όʔϯϨʔτ10
    3೔ͰΤϥʔόδΣοτΛ
    ࢖͍੾Δ
    ΤϥʔόδΣοτফඅྔ
    0%
    20%
    40%
    60%
    80%
    100%
    ܦա೔਺
    0 5 10 15 20 25 30
    όʔϯϨʔτ1
    30೔ͰΤϥʔόδΣοτΛ
    ࢖͍੾Δ

    View Slide

  29. • SRWBʹ͸ҎԼͷ2ͭͷόʔϯϨʔτ͔Βελʔτ͢ΔͱΑ͍ͱ͋Δ
    • SLO͕1ϲ݄ϦΫΤετ੒ޭ཰99.9%ͷͱ͖ͷΞϥʔτͷྫ
    όʔϯϨʔτʹجͮ͘Ξϥʔτͷᮢ஋
    29
    ΤϥʔόδΣοτ
    ফඅྔ
    ΢Οϯυ΢ όʔϯϨʔτ
    2% 1H 14.4
    5% 6H 6
    APIͷ1࣌ؒͷΤϥʔϨʔτ > (14.4 * 0.001)
    APIͷ6࣌ؒͷΤϥʔϨʔτ > (6 * 0.001)

    View Slide

  30. SLOɾΞϥʔτ (v2) ͷ݁Ռ
    • ΤϥʔόδΣοτΛ࢖͍੾Βͣʹ͙͢ʹऩଋ͢Δো֐ʢGCʹΑΔ
    ஗ԆͳͲʣͰ໷ؒى͜͞ΕΔ͜ͱ͕ݮͬͨ
    • μογϡϘʔυʹΑΓνʔϜ಺ͰSLO΁ͷҙ͕ࣝߴ·ΓɺΞϥʔτ
    ͱͷؔ܎ੑ΋Θ͔Γ΍͘͢ͳͬͨ
    • γϯϓϧͳSLOͰෳࡶͳ࣮૷΍ίϛϡχέʔγϣϯίετ͕ݮͬͨ
    30

    View Slide

  31. Lesson Learned
    SLOɾΞϥʔτվળ͔Βͷֶͼ

    View Slide

  32. ୭ͷͨΊͷSLO͔
    • SLOΛୡ੒͢Δ͜ͱͰ޾ͤʹͳΔਓʢϢʔβʔʣ͕͍Δ͸ͣ
    • ӡ༻ͷಓ۩͚ͩͰͳ͘ɺͦͷഎܠʹ͸αʔϏεͷར༻ऀ͕͍Δ
    • ϢʔβϏϦςΟ΍৴པੑΛߟྀͯ͠SLOΛݟ௚ͦ͏
    32

    View Slide

  33. γϯϓϧͰ͋Ε
    • ෳࡶͳSLO͸ίϛϡχέʔγϣϯͰ΋ো֐ͱͳΔ
    • ޱ಄Ͱਓʹઆ໌Ͱ͖Δ͘Β͍ͷγϯϓϧ͕͞େࣄ
    • ෛ࠴ʹͳΔલʹSLOΛৼΓସ͑ΕΔΑ͏ʹ͠Α͏
    33

    View Slide

  34. ΈΜͳ͕ݟ͑Δ৔ॴʹՄࢹԽ
    • ݟ͑Δ৔ॴ΍ಋઢ͕ͳ͍ͱ୭΋ҙࣝ͠ͳ͍
    • ՄࢹԽʹΑΓɺϝϯόʔશһ͕SLOΛҙࣝ͢Δ͜ͱ͕૿͑ͨ
    • ݱࡏ͸νʔϜͰμογϡϘʔυΛݟΔձΛ2िؒʹ1ճ։࠵
    34

    View Slide

  35. σʔλʹجͮ͘ίϛϡχέʔγϣϯ
    • λεΫͷ༏ઌ౓΋SLOʹج͍ܾͮͯΊΒΕΔΑ͏ʹ
    • ։ൃɺSREɺεςʔΫϗϧμʔؒͰҰ؏ͨ͠໨ඪΛઃఆͰ͖Δ
    • νϡʔχϯάΛ͢Δͱ͖΋ɺצʹཔΒͣσʔλͰ൑அ͠Α͏
    35

    View Slide

  36. ͜Ε͔ΒͷνϟϨϯδ
    • kintoneͷ੡඼։ൃνʔϜ಺΁ͷSLOΛ޿ΊΔ׆ಈ
    • SLOະୡͳͷʹΞʔΩςΫνϟతʹνϡʔχϯά͕೉͍͠έʔε
    • Ϣʔβʔͷ࢖͍ํ࣍ୈͰ༻ҙʹSLOΛഁΕΔέʔε
    36

    View Slide

  37. ·ͱΊ
    • SLOʹΑͬͯҰ؏ͨ͠σʔλυϦϒϯͳίϛϡχέʔγϣϯ͕Ͱ͖Δ
    • ఆظతSLOɾΞϥʔτͷվળͰͷֶͼ͕͋ͬͨ
    • ୭ͷͨΊͷSLO͔ʁ
    • γϯϓϧͰ͋Ε
    • ΈΜͳ͕ݟ͑Δ৔ॴͰՄࢹԽ
    • σʔλʹجͮ͘ίϛϡχέʔγϣϯ
    • ͜Ε͔Β΋SLOΛ΍͍͍ͬͯͧ͘💪
    37

    View Slide