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

AIOpsの研究動向と
AIOps向けデータセットの動的生成の研究 / Introducing AIOps and A Dynamic Datasets Generating System

AIOpsの研究動向と
AIOps向けデータセットの動的生成の研究 / Introducing AIOps and A Dynamic Datasets Generating System

さくらインターネット社内イベントの「第15回さくらインターネット研究会」のスライド資料です。

統計解析や機械学習をはじめとするAI技術を活用することにより、ITサービスを支えるシステムをITエンジニアが人手で運用する負担を低減するためのAIOpsと呼ばれる分野が注目されています。
さくらインターネット研究所においても、昨年よりAIOpsの研究を進めていますが、新旧のデータ分析手法を評価する際に必要な「データセット」を作成することに難しさを感じています。
そこで、意図的にシステムを故障させるChaos Engineeringのツールを使用して、データ分析に必要な「データセット」を動的に生成するシステムから開発を進めています。
本発表では、AIOpsのうち、マイクロサービスにおける異常検知・原因分析のためのデータ分析手法を簡単に総括した上で、動的にデータセットを生成するシステムを紹介します。

A658ec7f1badf73819dfa501165016c1?s=128

Yuuki Tsubouchi (yuuk1)

October 07, 2021
Tweet

Transcript

  1. AIOpsͷݚڀಈ޲ͱAIOps޲͚σʔλ ηοτͷಈతੜ੒ͷݚڀ ௶಺ ༎थ @yuuk1 t ୈ15ճ͘͞ΒΠϯλʔωοτݚڀձ 2021೥10݄07೔

  2. 2 ຊൃදͷझࢫ ɾITαʔϏεͷΦϖϨʔγϣϯʹAIΛద༻͢ΔAIOps͕஫໨͞Ε͍ͯΔ ɾAIOpsͷ࠷৽ͷಈ޲Λڞ༗্ͨ͠ͰɺAIOps޲͚ͷσʔληοτͷ࡞੒ʹண ໨ͨ͠࠷৽ͷݚڀΛ঺հ͢Δ ɾ͘͞ΒΠϯλʔωοτͷ͓٬༷ʹAIOpsͷఏڙՄೳੑͷݕ౼΁ͱͭͳ͛Δ

  3. 3 1. AIOpsͷݚڀಈ޲ 2. ϚΠΫϩαʔϏεʹ͓͚Δҟৗݕ஌ɾݪҼ෼ੳͷݚڀௐࠪ 3. Meltria: σʔληοτͷಈతੜ੒γεςϜ 4. ·ͱΊ

    ໨࣍
  4. 1. AIOpsͷݚڀಈ޲

  5. 5 Ϋϥ΢υ্ͷ෼ࢄΞϓϦέʔγϣϯͷෳࡶԽ ɾ ɾ ɾ ΞΫηε૿Ճ εέʔϧΞ΢τʹΑΔ ϗετ਺ͷ૿Ճ ػೳͷ૿Ճ ΑΓେن໛ͳ

    
 ෼ࢄΞʔΩςΫνϟ ϛυϧ΢ΣΞͷ૿Ճ RDBαʔό Ωϟογϡ 
 αʔό ݕࡧαʔό Webαʔό ωοτϫʔΫ 
 αʔϏε TCP/UDP ɾ ɾ ɾ ϝσΟΞɺECαΠτɺSNSɺIoTͳͲΛߏ੒͢Δ෼ࢄΞϓϦέʔγϣϯ
  6. 6 ɾITΦϖϨʔλ͸खಈͰ໘౗ͳ؅ཧ࡞ۀ΍ೝ஌ෛՙͷߴ͍࡞ۀΛߦΘͳ͚Ε͹ ͳΒͳ͍ ɾෛՙʹԠͨ͡εέʔϧΞ΢τɾεέʔϧΠϯ ɾΞϥʔςΟϯάͷ؅ཧɺΠϯγσϯτରԠ ɾITαʔϏεͷ؅ཧͱվળʹɺ౷ܭղੳ΍ػցֶशΛ͸͡Ίͱ͢ΔAIʢਓ޻஌ ೳʣΛద༻͢ΔऔΓ૊Έ͕ண໨͞Ε͍ͯΔ ໘౗ͳ؅ཧ࡞ۀ΍ೝ஌ෛՙͷ޲্ AIOps (Artificial

    Intelligence for IT Operations) [Notaro ’20]: Notaro, P, Jorge C, and Michael G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. [Dang’19]: Dang, Y, Qingwei L, and Peng H. "AIOps: Real-World Challenges and Research Innovations." ICSE-Companion. IEEE, 2019.
  7. 7 AIOpsͷߩݙྖҬ [Notaro ’20]: Notaro, P, Jorge C, and Michael

    G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. [Notaro ’20]: Fig.2ΑΓҾ༻ ITαʔϏεͷఏڙʹ͓͍ͯ๬·͘͠ ͳ͍ಈ࡞ʹରॲ͢Δํ๏ͷݚڀ ITαʔϏεΛ࠷దʹఏڙ͢ΔͨΊʹ ΤωϧΪʔɺܭࢉɺετϨʔδɺ࣌ ؒͷϦιʔεΛׂΓ౰ͯΔݚڀ
  8. 8 AIOpsͷݚڀྖҬ͝ͱͷ࿦จ਺ [Notaro ’20]: Notaro, P, Jorge C, and Michael

    G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. ɾAIOpsؔ࿈ͷ࿦จ਺ɿ670 ɾ670݅ͷ62.1%͕Failure Managementʹؔ࿈͍ͯ͠Δ ɾΦϯϥΠϯো֐༧஌ʢ26.4ˋʣো֐ݕग़ʢ33.7ˋʣݪҼ෼ੳʢ26.7ˋʣ
  9. 9 AIOpsؔ࿈ͷ࿦จ਺ͷਪҠ [Notaro ’20]: Notaro, P, Jorge C, and Michael

    G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. ɾ࿦จ਺͸૿Ճ܏޲ʹ͋Δ ɾFailure Detectionʢҟৗݕ஌ʣ͕18~19೥Ͱ71݅ͷ࿦จ਺ ɾߩݙ౓͸ɺResource Provisioning͕େ͖͘ɺFailure Preventionʢো֐༧ଌʣ ͱRemediationʢো֐༧๷ʣ͸ɺߩݙͷ਺͕࠷খ
  10. 10 SaaSʹΑΔAIOpsαʔϏεͷఏڙ ɾZebrium: https://www.zebrium.com/ ɾDatadog: https://www.datadoghq.com/solutions/machine-learning/ ɾNewRelic: https://newrelic.com/platform/applied-intelligence ɾPagerDuty: https://www.pagerduty.com/resources/learn/what-is-aiops/

    ɾSplunk: https://www.splunk.com/ja_jp/data-insider/ai-for-it-operations-aiops.html ɾMackerel: https://mackerel.io/docs/entry/howto/anomaly-detection-for-roles ࠃ಺ͰͷAIOpsػೳͷར༻ࣄྫ͸·ͩ·ͩগͳ͍ γεςϜ؂ࢹSaaS͕AIOpsػೳΛఏڙ͢Δͱ͍͏ܗଶ͕Α͘ΈΒΕΔ
  11. 2. ϚΠΫϩαʔϏεͷ 
 ҟৗݕ஌ͱݪҼ෼ੳͷݚڀ֓ཁ

  12. 12 ҟৗݕ஌ɾݪҼ෼ੳͷ༻ޠ Avizienis, A., et al. "Basic concepts and taxonomy

    of dependable and secure computing." IEEE transactions on dependable and secure computing 2004. 
 Figure 3.8: Error propagationΛ΋ͱʹஶऀ͕खΛՃ͑ͯ࡞੒ ҟৗ 
 (Anomaly) ো֐(Failure) ো֐ ނো(Fault)
  13. 13 AIOpsʹ͓͚Δҟৗݕ஌ɾݪҼ෼ੳ ҟৗݕ஌ ɾҟৗΛݕ஌ޙʹɺނোΛਪఆ͢Δ ɾਪఆͷϨϕϧ͕͋Δ ɾίϯϙʔωϯτ୯Ґ < ϝτϦοΫ ΍ϩάͷߦ୯Ґ ɾʮଈ࣌ੑʯͱʮਖ਼֬ੑʯ͕ཁٻ͞Ε

    Δ ɾγεςϜ͕ҟৗͷ঱ঢ়Λࣔ͢͜ͱ Λࣗಈతʹݕ஌͢Δ͜ͱ ɾݕ஌ޙʹΦϖϨʔλʔʹΑΔରԠ ΛٻΊΔ͜ͱ͕͋Δ ɾʮଈ࣌ੑʯͱʮ௿ϊΠζߴγά φϧʯ͕ཁٻ͞ΕΔ ݪҼ෼ੳ
  14. 14 ҟৗݕ஌ɾݪҼ෼ੳʹ࢖༻͞ΕΔσʔλιʔε ɾϝτϦοΫɿ࣌ܥྻͷ਺஋σʔλ ɾΠϕϯτɿγεςϜΠϕϯτʹؔ͢Δߴ౓ʹߏ଄Խ͞Εͨσʔλ ɾҎ߱Ͱ͸ΠϕϯτΛϩάʹ౷߹͢Δ ɾϩάɿߏ଄Խ͞Ε͍ͯͳ͍จࣈྻͷϩά ɾτϨʔεɿϦΫΤετͷ࣮ߦܦ࿏ͷάϥϑ ಄จࣈΛ݁߹ͯ͠”MELT”ͱݺͿ͜ͱ΋͋Δ [Karumuri 21]

    Karumuri, S., Solleza, F., Zdonik, S. and Tatbul, N., Towards Observability Data Management at Scale, ACM SIGMOD Record, Vol. 49, No. 4, pp. 18–23 2021. [Karumuri 21]
  15. 15 ϚΠΫϩαʔϏεͷҟৗݕ஌ ڭࢣͳֶ͠शͰ͸ɺਖ਼ৗ࣌ͷσʔλΛֶश͠ɺ৽ͨͳσʔλ͕ਖ਼ৗ࣌ͱͲΕͩ ͚ဃ཭͍ͯ͠Δ͔Ͱҟৗͷఔ౓Λࢉग़͢Δ ڭࢣͳֶ͠श͕௨ৗ࢖༻ ͞ΕΔɻ ڭࢣͳֶ͠श ϩάϕʔε τϨʔεϕʔε ϝτϦοΫϕʔε

    DNN΍ओ੒෼෼ੳͳͲ ڭࢣ͋Γֶश Soldani, J., and Antonio B., "Anomaly Detection and Failure Root Cause Analysis in (Micro) Service-Based Cloud Applications: A Survey." arXiv preprint arXiv:2105.12378 (2021). ڭࢣσʔλ͸঎༻؀ڥͷҟৗͱ 
 ෼͔͍ͬͯΔσʔλΛ࢖͏͔ɺ 
 ςετέʔεΛೖྗͯ͠ҙਤతʹ 
 ނো஫ೖֶͯ͠शͤ͞Δ͔ ϩάʹه࿥͢΂͖Πϕϯτ Λه࿥͠ͳ͔ͬͨΓɺ༧ظ ͤ͵ϩάͷൃੜΛೝࣝɻ ϩάΛςϯϓϨʔτԽͯ͠ 
 ௨ৗ࣌ͷςϯϓϨʔτग़ݱ ॱͱҰக͢Δ͔Ͳ͏͔ɻ ڭࢣͳֶ͠श ෳ਺ͷϝτϦοΫΛΫϥε λԽͯ͠ɺΫϥελͷॏ৺ ͷҐஔͷͣΕͰҟৗ൑ఆ Ұ୴ֶशͨ͠ϞσϧΛదԠత ʹߋ৽͍ͯ͘͠ݚڀ΋͋Δ ڭࢣ͋Γֶश ҙਤతʹނোΛ஫ೖͯ͠ 
 ڭࢣσʔλͱ͢Δ
  16. 16 ϚΠΫϩαʔϏεͷݪҼ෼ੳ Soldani, J., and Antonio B., "Anomaly Detection and

    Failure Root Cause Analysis in (Micro) Service-Based Cloud Applications: A Survey." arXiv preprint arXiv:2105.12378 (2021). ϩάΛ࣌ܥྻσʔλͱͯ͠ ѻ͍ɺܥྻؒͷҼՌΛਪఆ ௚઀෼ੳ ϩάϕʔε τϨʔεϕʔε ϝτϦοΫϕʔε τϨʔεʹؚ·ΕΔԠ౴࣌ؒΛ 
 ௚઀෼ੳɻมಈ܎਺ΛΈΔͳͲɻ τϙϩδʹΑΔ෼ੳ ಉ͡ϢʔβɾϦΫΤετʹର͢Δ 
 αʔϏεݺͼग़͠νΣʔϯΛߏங ҟৗݕ஌ͷΠϕϯτΛτϦΨʔͱͯ͠ɺݪҼ෼ੳ͕։࢝͞ΕΔલఏͷݚڀ͕ओ ҼՌάϥϑʹΑΔ෼ੳ ҼՌάϥϑʹରͯ͠ɺ 
 ϥϯμϜ΢ΥʔΫͳͲͷ୳ ࡧΞϧΰϦζϜͰݪҼͱͳ ΔϩάΛਪఆ͢Δ Page Rank΍ϥϯμϜ΢ΥʔΫ 
 ͰݪҼΛਪఆ ௚઀෼ੳ ঱ঢ়Λࣔ͢ϝτϦοΫͱͦΕҎ 
 ֎ͷϝτϦοΫͷྨࣅ౓ΛΈΔ ϩά͔Βࢉग़ͨ͠ҟৗ౓ͱϝτ ϦοΫΛ੔߹ͤͯ͞૬ؔ෼ੳ 
 ҼՌάϥϑʹΑΔ෼ੳ 1ϝτϦοΫ1ม਺ͱͯ͠ม਺ؒ 
 ͷҼՌΛਪఆ(PCΞϧΰϦζϜ) 

  17. 3. Meltria: σʔληοτͷ 
 ಈతੜ੒γεςϜ

  18. 18 σʔληοτʹؔ͢Δ৽͍͠ಈػ ɾ৽͍͠՝୊Λൃݟ͢ΔͨΊʹɺطଘݚڀͷ࣮ݧͱ͸ҟͳΔঢ়گʹରͯ͠ੑೳ ͕มԽ͢Δ͔Λݕূ͍ͨ͠ ɾσʔλ෼ੳख๏ΛධՁ͠Α͏ͱ͢Δͱɺσʔληοτ͕ඞཁͱͳΔ ɾެ։ࡁΈͷσʔληοτ͸ଘࡏ͢Δ͕ɺ੩తͳੑ࣭ނʹɺҟৗͷύλʔϯʹ ͸ݶΓ͕͋Δ ɾ೚ҙͷҟৗͷύλʔϯΛؚΊΒΕΔΑ͏ʹɺσʔλ෼ੳऀͷཁٻʹ͕ͨͬ͠ ͯɺಈతʹσʔληοτΛੜ੒͍ͨ͠

  19. 19 Meltria: σʔληοτͷಈతੜ੒γεςϜ ϚΠΫϩαʔϏεͷҟৗݕ஌ɾݪҼ෼ੳͷධՁͷͨΊʹɺ 
 ଟ༷ͳҟৗͷύλʔϯΛؚΉσʔληοτͷಈతੜ੒γεςϜMeltriaΛఏҊ ୈҰઃܭج४ ୈೋઃܭج४ ނো஫ೖͷεέδϡʔϦϯά ͱσʔλ؅ཧ

    σʔληοτͷݕূͷࣗಈԽ ނো஫ೖͷӨڹͷ༗ແͱ૝ఆ֎ͷҟ ৗͷ༗ແΛੜ੒͞Εͨσʔληοτ ʹϥϕϧ෇͚͢Δɻ MeltriaͷجຊػೳͰ͋Γɺσʔλʹ ҟৗΛؚΊΔͨΊʹɺނোΛ஫ೖ͠ ͯނҙʹҟৗΛൃੜͤ͞Δɻ 
 ద੾ͳجຊ୯ҐͰσʔλΛ࠾औɾ؅ ཧ͢Δɻ
  20. 20 Meltriaͷར༻ऀ΁ͷߩݙ ɾσʔλ෼ੳऀ͕ɺطଘख๏΍ߟҊதͷख๏ʹରͯ͠ɺ՝୊Λൃݟ͢Δϓϩη εΛࢧԉ͢Δ σʔλ෼ੳऀ Meltria ᶃͱᶄΛߴ଎ʹճ͢͜ͱͰ 
 ৽՝୊Λൃݟʂ ᶃ

    ৚݅XͰσʔλੜ੒ཁٻɾฦ٫ ᶄ ੜ੒͞ΕͨσʔλͰ෼ੳ݁ՌΛ֬ೝ ਫ਼౓͕૝ఆҎԼͷ৔߹ɺͲͷϥϕϧͷσʔλʹରͯ͠ 
 ਫ਼౓͕௿Լ͔ͨ͠Λ֬ೝͰ͖Δ
  21. 21 Meltriaͷݱࡏͷείʔϓ ɾσʔλιʔεʹ͸ɺ࣌ܥྻͷ਺஋σʔλͰ͋ΔϝτϦοΫͷΈΛର৅ ɾނো஫ೖͷλΠϓ͸ɺܭࢉػϦιʔεʹؔ͢ΔނোͷΈΛର৅ ɾιʔείʔυ΍ઃఆͷมߋʹؔ͢Δނো͸ະରԠ

  22. 22 ୈҰͷઃܭج४ɿނো஫ೖͷεέδϡʔϦϯάཁ݅ Slot͕جຊ୯Ґ Component A Component B Component C Time

    Slot Fault α Injected Span Fault β Injected Span Time Component A Component B Component C Recovery time 1Slot͕1 FaultΛؚΉ 
 Component x Faultछ 
 ͷ૊Έ߹Θ͚ͤͩ஫ೖ ਖ਼ৗ࣌σʔλ΋ඞཁ 
 ͳͷͰ଴ػ͢Δඞཁ͋Γ
  23. 23 ୈҰͷઃܭج४ɿγεςϜߏ੒ 
 1. Work fl ow Scheduler͕ɺTarget Applicationʹରͯ͠ނোΛ஫ೖ 


    2. ϝτϦοΫͷετϨʔδ͔ΒɺSlotͷσʔλΛ࠾औ͢Δ 
 3. ࣍ͷinjection࣌ؒ·Ͱ଴ͭ 
 Workflow Scheduler Operational Data Stoage Load Generator Target Application 1. Inject faults Datasets Repositorry 2. Pick latest data to datasets 3. Wait until the application recovers ४උ 
 a) Load Generator͕ Target Applicationʹෛՙ Λ͔͚Δ 
 b) Target Application͔Β 
 σʔλΛৗ࣌ऩू͓ͯ͘͠
  24. 24 ୈೋͷઃܭج४ɿσʔληοτͷݕূ (1) ݕূର৅ͷܥྻͷબ୒ (2) બ୒ܥྻͷঢ়ଶ෼ྨ ΞϓϦέʔγϣϯ 
 ϨϕϧϝτϦοΫ v1

    v2 v3 ނো஫ೖͨ͠ϚΠΫϩ 
 αʔϏεϨϕϧͷ 
 ϝτϦοΫ ނো஫ೖʹ࠷΋ؔ ࿈͢ΔϝτϦοΫ NOT_FOUND ਖ਼ن෼෍ͷ68-95-99.7ଇʹै͍ɺ 
 2ඪ४ภࠩΑΓେ͖͍஋͸ҟৗͱ͢Δ FOUND_INSIDE_ANOMALY(ظ଴͞ΕΔ෼ྨ) FOUND_OUTSIDE_ANOMALY ނো͔Βো֐΁ͷ఻೻ܦ࿏ͷΈΛ 
 ݕࠪ͢Ε͹Α͍ͱ͍͏ԾఆΛ͓͘
  25. 25 Meltriaͷ࣮૷ ɾKubernetes؀ڥʹɺTarget Applicationͱͯ͠Sock ShopΛ഑ஔ ɾSock Shop͸ؔ࿈ݚڀͰΑ͘࢖༻͞ΕΔখن໛ͷϚΠΫϩαʔϏεΞϓϦ ɾWork fl ow

    Schedulerʹ͸ɺArgo Work fl owsΛ࢖༻ ɾArgo Work fl ows͸ɺKubernetes্ͰϫʔΫϑϩʔΛ૊ΊΔπʔϧ ɾނো஫ೖ͸LitmusΛ࢖༻͢Δ ɾLitmus͸Chaos EngineeringͷϑϨʔϜϫʔΫͷҰͭ
  26. 26 ୈೋͷઃܭج४ͷݕূͷਖ਼֬౓ ɾ8छͷίϯςφʹର͢ΔCPUͱϝϞϦͷނো஫ೖΛߦͬͨ ɾ257ݸͷܥྻΛऔಘ͠ɺͦΕΒΛ໨ࢹͰ3ঢ়ଶʹ෼ྨͨ͠΋ͷΛਖ਼ղσʔλͱ ͨ͠ ɾ85%ͷਖ਼֬౓Λࣔͨ͠ ɾޡ෼ྨ͞Εͨྫ ɾނো஫ೖʹࣦഊ (a), (b)

    ɾਖ਼ৗ࣌ʹεύΠΫมಈ (c) ɾલճͷ஫ೖӨڹͷࠞೖ (d)
  27. 4. ·ͱΊ

  28. 28 ·ͱΊ ɾAIOpsͷݚڀಈ޲ͷௐࠪʹΑΔͱɺFailure Managementʢো֐؅ཧʣʹؔ͢ Δݚڀ͕૿Ճ͍ͯ͠Δɻ ɾൃදऀͷ؍ଌൣғͰ͸ɺো֐؅ཧͷ͏ͪɺಛʹϚΠΫϩαʔϏεͷҟৗݕ ஌ɾݪҼ෼ੳͷݚڀ͕૿Ճ͍ͯ͠Δɻ ɾҟৗݕ஌ɾݪҼ෼ੳख๏ͷ՝୊Λൃݟ͢ΔͨΊʹɺσʔληοτͷಈతੜ੒ γεςϜΛݚڀ͍ͯ͠Δɻ

  29. 29 ؔ࿈ࢿྉ https://speakerdeck.com/yuukit/cloud-ai https://speakerdeck.com/yuukit/a-survey-for-cases-of-applying- machine-learning-to-sre