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

ゼロから始める システム障害対応フロー

ゼロから始める システム障害対応フロー

Qiita記事に書き起こしました
https://qiita.com/kato_tetsuyoshi/items/4bfed1b65280fe11ef57

本記事は以下の構成です。

0. 始まり
1. まずは教科書通りに作ろう
2. 各部署とのコラボレーションは必須
3. 実運用で重要なことはトライ&エラー
4. オブザーバビリティの重要性
5. 障害対応能力のアセスメント
6. ここまでのまとめ
7. 失敗談:人間・リーダーとしてのあり方
最後に:筆者とデジタルバリューについて

Avatar for よしたろう

よしたろう

August 07, 2023
Tweet

More Decks by よしたろう

Other Decks in Programming

Transcript

  1. ΤϯδχΞલ ೥݄d 
 ɹɹɹɹɹɹ 
 ೥݄d 
  
 ೥݄d

    yoshitaro !ZPTIJUBSPZPZP 
 ༀہళ௕ɾྟচ޻ֶٕ࢜ɾͤͲΓɾεΫʔϧߨࢣFUD 
 େࡕͷडୗ։ൃاۀ 
 େࡕͷࣗࣾ։ൃͷ4&4෦໳ 
 ஍ํۜߦͷά ϧʔϓձࣾͰࣗࣾ։ൃ 
 ٕज़ϒϩάେࡕͱژ౎Ͱ*5ษڧձओ࠵ झຯ 
 ϜΤλΠɾμϯεɾԻָɾόΠΫɾөըɾອըখઆɾྉཧ ͦͷଞ
  2. 6. ࢖༻πʔϧͱͦͷӡ༻ํ๏ 1. Ξϥʔτͷݕ஌πʔϧ΍ൃใઌ 
 → Azure Application InsightsɾDatadogɺ DiscordɾTeamsɾϝʔϧ

    2. Discord಺Ͱͷ֤छΞϥʔτνϟϯωϧ࡞੒ 
 → ֎෦γεςϜ༝དྷɾϢʔβใࠂɾΞϥʔτൃใɾνʔϜ಺ݕ஌ͳͲ 3. φϨοδ஝ੵͷͨΊͷυΩϡϝϯτ 
 → ֤ো֐Λه࿥͢ΔςϯϓϨʔτͷ࡞੒
  3. ͩΕʹฉ͍ͨͷ͔ʁ 1. ΠϯϑϥνʔϜɾ௚ଐͷ্࢘ 2. ։ൃνʔϜɾ௚ଐͷ্࢘ 3. εςʔΫϗϧμʔɾ௚ଐͷ্࢘ 4. ࣾ௕ɾ໾һෳ਺໊ 5.

    ࣾ಺ςετ໿3िؒɺϝϯόʔ͔Β 
 → શͯͷো֐ൃੜ࣌ͷରԠʹࢀՃ͠ɺTry&Error ͠·͘Δ 6. ࢀՃऀʹώΞϦϯάɺϑΝγϦςʔγϣϯͰٵ্͍͛ 7. ͍͔ͭ͘܁Γฦ͠ɺमਖ਼Λߦ͏
  4. ͓ർΕ༷Ͱ͢ɻ ࣾ಺ςετதͷγεςϜো֐࣌ରԠʹ͓͚Δɺ։ൃνʔϜͷঢ়گͱॻ؆ʹ͍ͭ ͯڞ༗͍͖ͤͯͨͩ͞·͢ɻ ঢ়گɿ ࣄલʹ࡞੒ͨ͠ߦһςετ༻ͷো֐࣌ӡ༻ϑϩʔͰରԠΛߦͳͬͨ݁Ռɺ໰୊ ఺վળ఺͕ଓग़͠·ͨ͠ɻ ౎౓ɺվળ఺΍νʔϜ͔ΒͷϑΟʔυόοΫΛద༻͠ɺ࡞੒ͨ͠ো֐࣌ӡ༻ϑ ϩʔΛݱ࣮ʹϑΟοτ͍ͤͯ͘͞޻ఔΛߦͳ͍ͬͯ·͢ɻ໪࿦ɺฒߦͯ͠γε ςϜো֐ղফ࡞ۀ΋࣮ࢪ͍ͯ͠·͢ɻ ॻ؆ɿ

    ໰୊఺վળ఺͕ଓग़͢Δ͜ͱ͸౰વͳͷͰɺॊೈʹϑΟʔυόοΫΛऔΓೖ Εɺࢼߦճ਺ΛॏͶͳ͕Β࠷ળͷܗʹ͚͍͚ۙͮͯ͹͍͍ͱߟ͍͑ͯ·͢ɻຊ ൪ӡ༻Λݟਾ͑ɺ໰୊ɾ՝୊ʹର͢Δײ౓Λߴ͘͠ɺϢʔβମݧΛଛͶͳ͍Ξ ϓϦӡ༻ମ੍࣮ݱʹܨ͛ͳ͚Ε͹ͱײ͍ͯ͡·͢ɻ ࣾ಺ςετ࣮ࢪҰ೔໨ɺࢲ͕ॻ͍ͨใࠂ
  5. • ݱࡏͷγεςϜͷෳࡶ౓ɺ৽ػೳϦϦʔεස౓͸աڈͱ͸ൺֱʹ͸ͳΒͳ͍ • ج൫؂ࢹ͚ͩͰ͸αʔϏεͷঢ়ଶΛ೺ѲཧղͰ͖ͳ͍ • ϢʔβମݧͷϦΞϧλΠϜ೺Ѳ͕ग़དྷͳ͍ • ͍ͭͲ͜ͰԿ͕ى͖͍ͯΔ͔೺ѲͰ͖Δମ੍ߏங͕ඞཁ 
 →

    Մ༻ੑɾύϑΥʔϚϯεͷՄࢹԽ͕Ͱ͖ͳ͍ • શίϯϙʔωϯτͷՔಇঢ়گΛϦΞϧλΠϜऩू • σʔλͷؔ࿈෇͚ͱ·ͱ·Γʹҙຯ෇͚ • ͋Δ୯ҐͰਤ΍άϥϑͰՄࢹԽ͠ɺγεςϜશମͷঢ়گΛ೺Ѳ Monitoring ͚ͩͰ͸γεςϜো֐๷ࢭɺ҆ఆՔಇ࣮ݱ͸Ͱ͖ͳ͍
  6. Monitoring ͚ͩͰ͸γεςϜো֐๷ࢭɺ҆ఆՔಇ࣮ݱ͸Ͱ͖ͳ͍ ͦΕ͕ ObservabilityʢՄ؍ଌੑʣ • ݱࡏͷγεςϜͷෳࡶ౓ɺ৽ػೳϦϦʔεස౓͸աڈͱ͸ൺֱʹ͸ͳΒͳ͍ • ج൫؂ࢹ͚ͩͰ͸αʔϏεͷঢ়ଶΛ೺ѲཧղͰ͖ͳ͍ • ϢʔβମݧͷϦΞϧλΠϜ೺Ѳ͕ग़དྷͳ͍

    • ͍ͭͲ͜ͰԿ͕ى͖͍ͯΔ͔೺ѲͰ͖Δମ੍ߏங͕ඞཁ 
 → Մ༻ੑɾύϑΥʔϚϯεͷՄࢹԽ͕Ͱ͖ͳ͍ • શίϯϙʔωϯτͷՔಇঢ়گΛϦΞϧλΠϜऩू • σʔλͷؔ࿈෇͚ͱ·ͱ·Γʹҙຯ෇͚ • ͋Δ୯ҐͰਤ΍άϥϑͰՄࢹԽ͠ɺγεςϜશମͷঢ়گΛ೺Ѳ
  7. Observability ͸ Monitoring Λแؚ͢Δ Observability Monitoring Application Performance Management Observability

    Monitoring 1. Ͳ͏ಈ͍͍ͯΔͷ͔ 2. ج൫ɺΞϓϦ૚΁ͷΞϓϩʔνΛϕʔεʹෳ਺γεςϜ ΛϦΞϧλΠϜղੳɺཧղ 3. ؍ଌର৅͸શͯɺৗʹঢ়ଶΛ೺Ѳ͢Δ 4. ෳ਺γεςϜͷ౷ҰతͳՄࢹԽʹΑΓɺҟৗΛΩϟον 
 ͍ͭ΋ͱҟͳΔঢ়ଶΛࣗಈͰೝࣝ͢Δ 1. ಈ͍͍ͯΔͷ͔ಈ͍͍ͯͳ͍ͷ͔ 2. ج൫తͳ؍ଌɺࣄޙత 3. ର৅ΛܾΊͯʢݶఆʣ؍ଌɺ໰୊Λݟམͱ͢ 
 ݸʑͷσʔλ͸ಠཱ͍ͯ͠Δ 4. ᮢ஋Λ௒͑Ξϥʔτ͕ɺൃใͯ͠ॳΊͯߦಈ ࢀߟɿCNCF
  8. Մ؍ଌੑ৴߸~ Observability Signal~ Metrics Traces • ౷ܭܭଌɺҰఆظؒʹΘͨΔঢ়ଶͷूܭՄೳͳσʔλͷ਺஋දݱ • γεςϜͷঢ়ଶͷಛఆ࣌఺ͷ؍࡯ •

    ୹ظతʹ͸ᮢ஋؂ࢹ΍ҟৗಈ࡞ͷݕग़ • ௕ظతʹ͸܏޲෼ੳ΍࠶ൃ๷ࢭͷͨΊͷ෼ੳ৘ใ • Կ͔͕͓͔͍͜͠ͱΛ͕ࣔ͢ৄࡉ͸ෆ໌ͳ͜ͱ͕ଟ͍ Logs • ϦΫΤετΛτϦΨʔͱ͠ɺϨεϙϯε·ͰͷҰ࿈ͷྲྀΕΛՄࢹԽ 
 ͍ͭɺͲͷॲཧ͕ݺ͹ΕɺͲͷ͘Β͍͕͔͔͔࣌ؒͬͨʁ • ෳ਺ίϯϙʔωϯτʹ·͕ͨͬͨτϨʔεʢτϨʔεIDʣ • ҟৗՕॴͷಛఆ͸Մೳ͕ͩৄࡉ͸೺ѲͰ͖ͳ͍ • ಛఆΠϕϯτͷه࿥ͱग़ྗɺMessageɾStackTrace • ࠷΋ྔ͕ଟ͘ɺՁ஋΋࣭΋ଟ༷ʹͳΓಘΔ • ༰ྔṧഭͷϦεΫɺࢹೝੑͱඅ༻͕τϨʔυΦϑͷ৔߹΋ • ҟৗՕॴͷৄࡉΛ஌Δ͜ͱ͕Մೳ • ΞϓϦέʔγϣϯ ϓϩϑΝΠϧ • Ϋϥογϡ μϯϓ ଞͷ̎ͭͷ৽͍͠γάφϧ ग़యɿCNCF
  9. ো֐ରԠೳྗϨϕϧ 1. Level 1 
 → ૊৫ͰରԠͤͣݸਓཔΈɻߦ͖౰ͨΓ͹ͬͨΓͰվળ΋ߦΘΕͳ͍ 2. Level 2

    
 → νʔϜͰ҆ఆରԠͰ͖͓ͯΓɺ඼࣭΋͋Δఔ౓୲อɻͨͩ͠ɺϚϯύϫʔʹΑΔ ෦෼΋ଟࣗ͘ಈԽ޻ఔ͕͘͢ͳ͍ͨΊɺҡ࣋؅ཧίετ΋ߴ͍ͨΊ௠෗Խ͠΍͢ ͍ɻγεςϜมԽʹ௥ਵ͢Δͷ͕೉͍͠ɻ 3. Level 3 
 → ֤୲౰ऀ͕ߴ౓ʹ৘ใత࿈݁͠ɺҙࢥܾఆ͕ਝ଎ɻυΩϡϝϯτͳͲͷมߋ؅ཧ ϓϩηε͸ࣗಈԽΛલఏͱ͠ɺվળ࡞ۀ΍ͦͷଞͷ࡞ۀ͕ख࡞ۀΛഉࣗ͠ಈԽʹ޲ ͍͍ͯΔɻ
  10. Ϩϕϧ ݱঢ় ՝୊ ਓͷಈ͖ํʢ໾ׂʣ 2 ICத৺ͷ૊৫తରԠ ֤໾ׂͷ९कɾ໨తୡ੒ҙࣝ ֤୲౰ऀͷશମঢ়گͷ೺Ѳ େن໛ো֐࣌ͷରԠ଎౓௿Լ΍ࠞཚରࡦ ৘ใڞ༗ͷҝͷใࠂ࡞ۀίετ௿Լ

    ೝࣝᴥᴪ๷ࢭˠ৘ใͷݟ͑ΔԽ ϓϩηε 2 ରԠϑϩʔɺ҆ఆతରԠɺ ݪҼௐࠪɾ෮چରԠͷԁ׈Խ ϊ΢ϋ΢ͷ஝ੵʢίϯϑϧʣ ৘ใڞ༗ͷࣗಈԽ ใࠂස౓ͷݮগ ϓογϡܕ͔Βϓϧܕ΁ υΩϡϝϯτ 1 ࢓༷ॻɾઃܭॻͳ͠ มߋ؅ཧϓϩηε΋ͳ͠ ʢݟ࣮ͯફͰ͖Δͷ͔ʁʣ ࠨهʹՃ͑ɺཻ౓ͷઃఆ ௠෗Խ๷ࢭ੍౓ɾਖ਼֬ੑͱ৴པੑͷ୲อ (Ϩϕϧ3ɿߋ৽ର৅બఆɾϝϯςࣗಈԽʣ πʔϧ΍؀ڥ 2 Application Insight→Data dog ద੾ͳ؂ࢹ΍௨஌ɾϊΠζ͕গͳ͍ ൚༻ίϚϯυ੔උɾϊ΢ϋ΢ڞ༗ ࣗಈ෮چ ҙࢥܾఆɾ৘ใڞ༗πʔϧ ௨஌ϊΠζͷ࡟ݮʢઃܭݟ௚͠ʣ ߃ٱରࡦ଎౓ 2.5 ࣗಈςετʢΫϥε୯Ґʣ σάϨ๷ࢭɾCI/CD E2E࣮૷ ςετίʔυ඼࣭୲อ ϩδοΫ΍ৼΔ෣͍ʹண໨͢Δ վળɾ༧๷αΠΫϧ 1 ߦ͍ͬͯͳ͍ ֎ѹ͔ΒͰ͸ͳ͘νʔϜओಋͰߦ͏ ඇػೳཁ݅ɾΞʔΩςΫνϟʹ΋౿ΈࠐΉ ΦϒβʔόϏϦςΟʹΑΔࣄલΩϟον ڭҭɾ܇࿅ 1 ߦ͍ͬͯͳ͍ ֤໾ׂʹ͍ͭͯͷֶशɺखॱॻͷ࣮ࢪ܇࿅ ଞ૊৫ࣄྫ͔Β΋ֶशɺະ஌ɾඇఆܕత܇࿅ ʢϨϕϧ̏ɿΧΦεΤϯδχΞϦϯάɺϏδωεΠϯύΫτ Λߟྀͨ͠ߦಈنൣͱ൑அج४ͷཱ֬ʣ ஌ݟͷภΓ 1.5 ো֐ࣄྫ͸υΩϡϝϯτԽ ϖΞϓϩ
  11. ো֐ରԠೳྗϨϕϧ 1. Level 1 
 → ૊৫ͰରԠͤͣݸਓཔΈɻߦ͖౰ͨΓ͹ͬͨΓͰվળ΋ߦΘΕͳ͍ 2. Level 2

    
 → νʔϜͰ҆ఆରԠͰ͖͓ͯΓɺ඼࣭΋͋Δఔ౓୲อɻͨͩ͠ɺϚϯύϫʔʹΑΔ෦෼΋ଟࣗ͘ಈԽ޻ఔ͕͘͢ͳ͍ͨ Ίɺҡ࣋؅ཧίετ΋ߴ͍ͨΊ௠෗Խ͠΍͍͢ɻγεςϜมԽʹ௥ਵ͢Δͷ͕೉͍͠ɻ 3. Level 3 
 → ֤୲౰ऀ͕ߴ౓ʹ৘ใత࿈݁͠ɺҙࢥܾఆ͕ਝ଎ɻυΩϡϝϯτͳͲͷมߋ؅ཧϓϩηε͸ࣗಈԽΛલఏͱ͠ɺվળ࡞ ۀ΍ͦͷଞͷ࡞ۀ͕ख࡞ۀΛഉࣗ͠ಈԽʹ޲͍͍ͯΔɻ 4. Level 4 
 → FWԽɻϞσϦϯά͕ՄೳͰଞϓϩμΫτͰ΋స༻͕Մೳɻຊ࣭తʹඞਢ ͳ෦෼ͷந৅Խ͕Ͱ͖͍ͯΔࣄʹՃ͑ɺνʔϜʹ࠷దԽͤ͞ΔͷͰ͸ͳ͘ FWʹνʔϜΛ࠷దԽͤ͞Δ͜ͱΛݟਾ͑Δɻ
  12. Summary 01. ·ͣ͸ڭՊॻ௨Γʹ 
 ɹɾͳʹ΋͔΋ࣗ෼Ͱ࡞Γ্͛Δҙຯ͸ͳ͍ɺڊਓͷݞʹ৐Ζ͏ 
 ɹɾͬ͞͞ͱ࡞ͬͯϓϩλΠϓ࡞ͬͯΞ΢τϓοτͨ͠Β͍͍ 02. ࣮ӡ༻Ͱॏཁͳ͜ͱ͸ΞδϟΠϧ 


    ɹɾΠςϨʔγϣϯΛૉૣ͘ճͯ͠ɺϒϥογϡΞοϓ͠·͘Δ 
 ɹɾࣗྗͰ90ˋ͔Β99ˋʹ͢Δ࿑ྗ͸ɺ0ˋ→90ˋͱൺֱ͢ΔͱͰ͔ͯ͘ίεύѱ͍ 
 03. ֤෦ॺͱͷίϥϘϨʔγϣϯ͸ඞਢ 
 ɹɾ͞·͟·ͳࢹ఺ͰόΠΞε΍ࢥ͍ࠐΈΛഉআͰ͖Δ 
 ɹɾߟ͑΋͠ͳ͔ͬͨɺೝࣝͰ͖͍ͯͳ͔ͬͨ໰୊ʹؾ෇͘ 04. ΦϒβʔόϏϦςΟͷॏཁੑ ɹɾো֐ͷ༧๷ɺ ൃੜʹର͢Δૉૣ͍ऩଋ ɹɾϢʔβͱϏδωε΁ͷωΨςΟϒΠϯύΫτΛ࠷খʹ 05. ো֐ରԠೳྗΞηεϝϯτ ɹɾΞηεϝϯτ͢Δ͜ͱͰݱঢ়Λਖ਼֬ʹ೺Ѳɺఆظతʹݟ௚͢ ɹɾ݁Ռ͸ڞ༗͠ɺνʔϜ಺Ͱڞ༗͢Δ͜ͱͰࣗ෼͝ͱʹͯ͠΋͏