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

Testable Infra

Testable Infra

DevOpsDays Tokyo 2021 登壇資料
(https://www.devopsdaystokyo.org/)

Testable Infra
Cloud-native技術をフル活用した「テスト」の諸問題の刷新的解決案

LINE株式会社 SET TF 伊藤宏幸 (@hageyahhoo : https://twitter.com/hageyahhoo )

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers
PRO

June 02, 2021
Tweet

Transcript

  1. ҏ౻ ޺޾  5FTUBCMF*OGSB $MPVEOBUJWFٕज़Λ ϑϧ׆༻ͨ͠ ʮςετʯͷॾ໰୊ͷ ࡮৽తղܾҊ

  2. γεςϜͷςετͷࡍɺ ͜Μͳܦݧ͸ ͳ͍Ͱ͠ΐ͏͔ʁ

  3.  ςετ؀ڥ  • ॳظߏஙɾҡ࣋ɾ؅ཧ͕େม • ؀ڥ͝ͱͷࠩ෼͕େ͖͘ɺ ςετͷ৴པੑʹٙ໰ූ͕ͭ͘ • ෳ਺ਓɾνʔϜͰڞ༻͢Δ͜ͱͰ

    ۀ຿ͷϘτϧωοΫʹͳΓ͕ͪ
  4.  ςετσʔλ  • Ұ؏ੑͷ͋Δςετσʔλͷ ࣄલ४උɾҡ࣋ɾ؅ཧ͕େม • ෳ਺ਓɾνʔϜͰڞ༻͢Δ͜ͱͰ σʔλ΍ॲཧ͕িಥ͕ͪ͠ •

    ؾܰʹςετͰ͖ͳ͍
  5.  ֎෦γεςϜ઀ଓ  • ࣄલ४උ͕େม • ϞοΫɾελϒͱ࣮αʔϏεͱͷ ੾Γସ͕͑େม • ઀ଓઌͷόʔδϣϯ؅ཧ͕େม

  6.  ςετΛ્Ήʮࡾܼࡾܽʯ ٕज़త ৺ཧత োน

  7. ʮࡾܽʯ͕΋ͨΒ͢ѱເ  • ςετΛे෼ʹͰ͖ͳ͍·· ຊ൪ϦϦʔε • ຊ൪ো֐ͷଟൃ • ۓٸमਖ਼ɾϦϦʔεͯ͠΋ ผͷো֐͕ൃੜ

    !
  8. ςετΛ ΋ͬͱ΍Γ΍͘͢ ͍ͨ͠ʂ

  9. 5FTUBCMF*OGSB ஀ੜ

  10. "HFOEB  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  11.  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  12. *NNVUBCMF *OGSBTUSVDUVSF ͱͷᬍ᫯

  13. *NNVUBCMF*OGSBTUSVDUVSF  αʔόͷϕʔεϥΠϯΛ࡞Γɺ • ඞཁ࣌ͷαʔόੜ੒ • ෆཁ࣌ͷαʔόഁغ Λ܁Γฦ࣮͠ߦͰ͖Δ ࢓૊Έɾߟ͑ํ

  14. ʮࡾܽʯͷղܾʹ ࢖͑ͳ͍͔ʁ

  15. ղܾΠϝʔδ  • ςετ؀ڥɾσʔλΛ ݸਓ୯Ґʹఏڙ • ςετ؀ڥɾσʔλΛ յͯ͠΋෮چ͕༰қ • ϕʔεϥΠϯ؅ཧॏ఺

    ڞ༻ෆཁ ؾܰʹ ςετͰ͖Δ ؀ڥࠩ෼࠷খԽ ʴ ֎෦γεςϜ΋ ؅ཧՄೳ
  16. ύϓϦοΫ Ϋϥ΢υͳΒ ΋͏࣮ݱͰ͖ͯ ͍ΔͷͰ͸ʁ

  17. ࢲͨͪͷલఏ  • ࣗࣾ੡ϓϥΠϕʔτΫϥ΢υ ʢ7FSEBʣͷར༻͕ϝΠϯ • վળର৅͸ϚΠΫϩαʔϏε • ։ൃऀςετΛ૝ఆ

  18. %PDLFSͱ ,VCFSOFUFTΛ ϑϧ׆༻࣮ͯ͠ݱ

  19.  ςετ؀ڥ  • αʔόͷϕʔεϥΠϯΛ %PDLFSͰʮ༰қʹʯߏஙՄೳ • ϕʔεϥΠϯΛ༻ҙ͢Δ͜ͱͰ ؀ڥ͝ͱͷࠩ෼ΛۃখԽ •

    ݸਓ୯ҐͰఏڙ͢Δ͜ͱͰ ۀ຿ͷϘτϧωοΫԽΛճආ
  20.  ςετσʔλ  • %PDLFSͷϕʔεϥΠϯ͚ͩΛ ߏஙɾ؅ཧ͢Ε͹ྑ͍ • ݸਓ୯ҐͰఏڙ͢Δ͜ͱͰ σʔλɾॲཧͷিಥΛճආ •

    ؾܰʹςετՄೳʢࣦഊ0,ʣ
  21.  ֎෦γεςϜ઀ଓ  • %PDLFSͷϕʔεϥΠϯͰ ߏஙɾઃఆɾ؅ཧՄೳ • ઀ଓઌΛ೚ҙʹ੾Γସ͑Մೳ ʢޙड़ʣ •

    αʔϏεؒ௨৴ͷ֬ೝɾ ো֐ͷݕ஌͕༰қʢޙड़ʣ
  22.  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  23. ͜ͷষͰ঺հ͢Δ΋ͷ  ॲཧ֓ཁͷγʔέϯεਤ ϑΝΠϧɾίϯϙʔωϯτ ίϯςφ΁ͷҠߦΠϝʔδ

  24. ॲཧ֓ཁͷ γʔέϯεਤ

  25. ॲཧ֓ཁͷγʔέϯεਤ 

  26. ॲཧ֓ཁͷγʔέϯεਤ  1VMM3FRVFTUΛ ॲཧͷτϦΨʔ ͱͯ͠׆༻

  27. ॲཧ֓ཁͷγʔέϯεਤ  શମͷγʔέϯεΛ ͜͜ͰҰׅ؅ཧ

  28. ॲཧ֓ཁͷγʔέϯεਤ  Լه%PDLFSΠϝʔδΛ࡞੒ • ςετର৅αʔϏε • ςετσʔλ • ֎෦γεςϜ

  29. ॲཧ֓ཁͷγʔέϯεਤ  13ຖʹOBNFTQBDFΛ࡞੒ • 13ؒͷিಥΛ๷ࢭ • Ұछͷ71/ͱͯ͠ػೳ

  30. ॲཧ֓ཁͷγʔέϯεਤ  ςετ݁Ռͷ ௨஌·Ͱ ੹೚Λ࣋ͭ

  31. ϑΝΠϧɾ ίϯϙʔωϯτ

  32. ඞཁͳϑΝΠϧ  ϑΝΠϧ໊ આ໌ %PDLFSGJMF ԼهΛର৅ • ςετର৅αʔϏε • ςετσʔλ

    • ֎෦γεςϜ )FMNνϟʔτ • ,VCFSOFUFTͷઃఆ͸͜͜ • ઀ଓઌͷ੾Γସ͑΋͜͜Ͱఆٛ +FOLJOTGJMFʢ+FOLJOTʣ PS DPOGJHZNMʢ$JSDMF$*ʣ શମͷॲཧγʔέϯεΛ͜͜Ͱఆٛ γΣϧεΫϦϓτ +FOLJOTGJMFDPOGJHZNMͷ ݸผͷॲཧΛఆٛ &&ςετεΫϦϓτ ,BSBUFʹΑΔ"1*ςετ ͜ΕҎ֎͸ Ϣʔβ͕༻ҙ
  33. ඞཁͳίϯϙʔωϯτ  ίϯϙʔωϯτ໊ આ໌ ,VCFSOFUFTΫϥελ ࣾ಺ͷNBOBHFEͳ ,VCFSOFUFTΛར༻ʢৄࡉʣ $*αʔό +FOLJOTɾ $JSDMF$*ͷͲͪΒ΋Մ

    5FTUBCMF*OGSB$-* )FMNνϟʔτͷઃఆ؆қԽͳͲΛ ໨తʹ࡞੒ͨ͠ಠࣗ$-* UFTUBCMFJOGSBCPU (JU)VC"QQ ςετ݁Ռͷ௨஌΍ɺ ෆཁʹͳͬͨOBNFTQBDFͷ࡟আ ͳͲΛ୲౰
  34. Ϣʔβ͕༻ҙ )FMNνϟʔτͷϕʔεϥΠϯ ʢ5FTUBCMF*OGSB͕ఏڙʣ )FMNνϟʔτ  5FTUBCMF*OGSB্Ͱ ಈ࡞͍ͤͨ͞ αʔϏεͷϦετ WBMVFTZBNM 4FSWJDF

    &OWPZ'JMUFS 1PE %FQMPZNFOU ࣮ߦ࣌ʹ )FMNνϟʔτΛ ࠨه಺༰Ͱઃఆ 5FTUBCMF*OGSB$-*
  35. +FOLJOTGJMF  QJQFMJOF\ TUBHFT\ TUBHF bαʔϏεͷϏϧυ` \ ^ TUBHF b%PDLFSΠϝʔδͷϏϧυ`

    \ ^ TUBHF b%PDLFSΠϝʔδͷ,VCFSOFUFT΁ͷEFQMPZ` \ ^ TUBHF `&&ςετͷ࣮ߦɾϨϙʔτ࡞੒` \ ^ ^ ^ ֤εςʔδ಺Ͱ ౰֘ͷγΣϧεΫϦϓτΛ ݺͼग़͢
  36. &&ςετεΫϦϓτ  $VDVNCFSͷॻࣜͰ "1*ͷςετΛ ༰қʹهड़Մೳ

  37. ίϯςφ΁ͷ ҠߦΠϝʔδ

  38. ෺ཧαʔόʗ7. ίϯςφ΁ͷҠߦΠϝʔδ  'SPOU .JEEMF #BDL

  39. ෺ཧαʔόʗ7. ίϯςφ ίϯςφ΁ͷҠߦΠϝʔδ  'SPOU .JEEMF #BDL #BDL *TUJPͰ ϧʔςΟϯά

    ੾Γସ͑
  40. ෺ཧαʔόʗ7. ίϯςφ ίϯςφ΁ͷҠߦΠϝʔδ  'SPOU .JEEMF #BDL #BDL ௨৴΍ো֐Λ 5FMFNFUSZͰ

    ֬ೝՄೳ
  41. ෺ཧαʔόʗ7. ίϯςφ ίϯςφ΁ͷҠߦΠϝʔδ  'SPOU .JEEMF #BDL .JEEMF #BDL

  42. ෺ཧαʔόʗ7. ίϯςφ ίϯςφ΁ͷҠߦΠϝʔδ  'SPOU .JEEMF #BDL .JEEMF #BDL ঃʑʹ

    ίϯςφ΁ ҠߦՄೳ 'SPOU
  43.  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  44. $IBOOFM(BUFXBZʢ$(8ʣ  ࣾ಺ͷ֤छ"1*Λू໿͠ɺ ΤϯλʔϓϥΠζϢʔβ޲͚ʹ "1*Λఏڙ͢ΔαʔϏε ˞γεςϜΠϝʔδ 6TFS $IBOOFM (BUFXBZ 4UPSF

    (BNF ͦͷଞ
  45. ͜Ε·Ͱଟ͘ͷվળΛ࣮ફ  • ಛघ෦ୂ4&5νʔϜͷ೔ৗ ʢ34(5ʣ • 'BJMVSF%FUFDUJPOPG.JDSPTFSWJDFT XJUI5FTUBOE;JQLJO ʢ-*/&%&7&-01&3%":ʣ •

    #VJME4FMG0SHBOJ[FE5FBNUISPVHI 5FTU"VUPNBUJPOXJUI,BSBUF ʢ%FW0QT%BZT5BJQFJʣ
  46. ࠓճͷԾઆઃఆ  • ͦ΋ͦ΋࢓૊Έͱͯ͠ػೳ͢Δ͔ʁ • ςετΛ͠΍͘͢ͳΔ͔ʁ • νʔϜʹड͚༰Εͯ΋Β͑Δ͔ʁ

  47. ࡞ۀ։࢝ ೥݄Լ०

  48. ෺ཧαʔόʗ7. ࡞ۀͷਪҠΠϝʔδ  .BJO 4FSWJDF 4UPSBHF

  49. ෺ཧαʔόʗ7. ίϯςφ ࡞ۀͷਪҠΠϝʔδ  .BJO 4FSWJDF 4UPSBHF .BJO .BJO෦෼͔Β ίϯςφԽΛ

    ࣮ࢪ
  50. ෺ཧαʔόʗ7. ίϯςφ ࡞ۀͷਪҠΠϝʔδ  .BJO 4FSWJDF 4UPSBHF .BJO தؒ෦Λ ίϯςφԽ͠

    ௨৴Λ੾Γସ͑ 4FSWJDF
  51. Ծઆݕূ݁Ռ  • ։ൃऀΛɺ࣮૷ͷ౓ʹςετ؀ڥΛ ઃఆ͢Δख͔ؒΒղ์ • طଘͷ&&ςετεΫϦϓτ͸ ίϯςφ্Ͱ΋ਖ਼ৗʹಈ࡞ • νʔϜ͕ࣗൃతվળΛ࣮ࢪ

    ςετΛ ͠΍͘͢ͳͬͨ ࢓૊Έͱͯ͠ ػೳ͍ͯ͠Δ νʔϜʹ ड͚༰Εͯ ΋Β͑ͨʂ
  52. $(8νʔϜͷࣗൃతվળ  • 13ίϝϯτͰ೚ҙͷλΠϛϯάͰ ςετΛ࣮ߦͰ͖ΔΑ͏मਖ਼ • ςετΛฒྻ࣮ߦͰ͖ΔΑ͏मਖ਼ ʢ෼ˠ෼൒΁࣮ߦ࣌ؒΛ୹ॖʣ • શͯͷ1VMM3FRVFTU

    ͓Αͼຊ൪ϦϦʔε΁ద༻
  53. ࠓޙվળ͕ඞཁͳ఺  • ΠϯϑϥͷϦιʔεෆ଍Λ Ҿ͖ى͜͢͜ͱ͕͋Δ • +FOLJOTGJMFͷमਖ਼ɾςετ͕ ͮ͠Β͍ʢ౎౓EFQMPZཁʣ • Ϣʔβʹ,VCFSOFUFTͷ஌ࣝΛ

    ཁٻͯ͠͠·͏Օॴ͕·ͩଟ͍
  54.  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  55. ະདྷ૾ɿࣾ಺  • .BOBHFEͳ,VCFSOFUFTʹ ૊ΈࠐΈɺڞ௨Πϯϑϥͱͯ͠ શࣾʹఏڙ • ΫϥΠΞϯτͷࣗಈςετ΁ͷ֦େ • 2"ςετ΁ͷద༻֦େ

  56. ະདྷ૾ɿࣾ֎ɾίϛϡχςΟ  • ʮίϯςφʹΑΔςετվળʯͷ ΞΠσΞͷߋͳΔൃ৴ • 5FTUBCMF*OGSBͷ044Խ • $/$'΁ͷίϯτϦϏϡʔτ

  57. ະདྷ΁ͷෆ҆ʢͱظ଴ʣ  • ٕज़ɾϓϩηεͳͲɺ Χόʔ͕ඞཁͳൣғ͕޿͗͢Δ • ্هͷ࣮ݱ͕೉͍͜͠ͱ΋ཧղ • Ұॹʹ࣮ݱͯ͘͠ΕΔ஥ؒΛ ୳͍ͯ͠·͢

  58.  ίϯηϓτ ઃܭɾٕज़ৄࡉ ಋೖࣄྫ γεςϜ։ൃͷະདྷ૾ ·ͱΊ

  59. ίϯςφٕज़ͷτϨϯυ  ίϯςφٕज़͓Αͼ ΦʔέετϨʔγϣϯ͸ɺ ϫʔΫϩʔυͷεέʔϧ ͷ؍఺͔ΒޠΒΕ͕ͪ

  60. ҰํͰ  ίϯςφٕज़Λ ςετʹద༻ͯ͠͸ ͍͚ͳ͍ͱ͸ ୭΋ݴ͍ͬͯͳ͍͸ͣʂ

  61. ͳΒ͹  ίϯςφٕज़Ͱ ςετ؀ڥ΍σʔλΛ εέʔϧΞ΢τͯ͠΋ ྑ͍Ͱ͢ΑͶʂʂ

  62. ୤ˑࡾܽ  • ͦΖͦΖࡾܽʹෆฏΛݴ͍ଓ͚Δͱ ͜Ζ͔ΒҰาਐ΋͏ • Ϋϥ΢υٕज़ʹݶΒͣɺ ࡾܽͷࠀ෰ʹ࢖͑ΔΞΠσΞ͸ ૿͖͍͑ͯͯΔ •

    ࡾܽΛࠀ෰͠Α͏ʂ
  63. ࢀߟ৘ใ  ,VCFSOFUFT 1PEDBTU GSPN(PPHMF IUUQTLVCFSOFUFTQPEDBTUDPN

  64. ً͔͍͠ະདྷΛ ͔ͭΈऔΖ͏ʂ