Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

ҎલͷSLOͱΞϥʔτ 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

SLOɾΞϥʔτ (v1) 10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

SLOɾΞϥʔτ (v2) 20

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

• 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)

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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