マイクロサービスにおける 最高のDXを目指して / Microservices vs DX

マイクロサービスにおける 最高のDXを目指して / Microservices vs DX

https://cloudnativedays.jp/cndt2019/ での登壇資料です

Ba0cce2241a7133aec62afc8ed15a172?s=128

Kenji Suzuki

July 23, 2019
Tweet

Transcript

  1. גࣜձࣾ FiNC Technologies Kenji Suzuki ϚΠΫϩαʔϏεʹ͓͚Δ ࠷ߴͷ%9Λ໨ࢦͯ͠

  2. • Kenji Suzuki • FiNC Technologies • Engineering Manager •

    SREάϧʔϓ • ٕज़ਪਐάϧʔϓ • ೖࣾ4೥͘Β͍ 8IPBN*
  3. େن໛ʹ੒௕͍ͯ͘͠ϚΠΫϩαʔϏεΛ ؾ࣋ͪΑ͘։ൃɾӡ༻͢ΔͨΊʹͲ͏ͨ͠Βྑ͍͔ 5PEBZ`5BML

  4. • ϚΠΫϩαʔϏε vs ϞϊϦε • ϚΠΫϩαʔϏεͲ͏΍ͬͯ੾Δʁ ࠓ೔࿩͞ͳ͍͜ͱ

  5. • DX(Developer Experience)ͬͯԿʁ • Microservicesʹ͍ͭͯ • Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ • Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ͸ "HFOEB

  6. DX(Developer Experience)ͬͯԿʁ

  7. • ։ൃऀମݧ • ؾ࣋ͪΑ͘։ൃ͕Ͱ͖͍ͯΔ͔Ͳ͏͔ʁ %9 %FWFMPQFS&YQFSJFODF ͱ͸ʁ

  8. • ؾ͕࣋ͪྑ͍։ൃͷҰྫ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ඼࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨ͸ద੾ʹ؅ཧ͞Ε͍ͯΔ • ςετ΍σϓϩΠΛߴ଎ʹߦ͏͜ͱ͕Ͱ͖Δ

    • ϥΠϒϥϦ΍ϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠؅ཧ͞Ε͍ͯΔ • ͳͲͳͲ %9͕ྑ͍ͱ͸ʁ
  9. • ։ൃʹ༨༟͕ੜ·ΕΔ • ඇػೳཁ݅ʹ΋ख͕Ճ͑ΒΕΔ • ϦϑΝΫλϦϯάɾϦΞʔΩςΫτ͕͠΍͘͢ͳΔ • ۓٸͰ͸ͳ͍͕ॏཁͳ͜ͱʹ໨͕޲͘Α͏ʹͳΔ %9͕ྑ͍ͱͲ͏ͳΔʁ

  10. • DX͕ྑ͍ঢ়ଶͰ͋Ε͹(։ൃʹ༨༟͕͋Ε͹) • ͞Βʹ։ൃ͕ؾ࣋ͪΑ͘ͳΔ׆ಈʹ࣌ؒΛׂ͚ΔΑ͏ʹͳΔ • ݁ՌతʹDX͸͞ΒʹΑ͘ͳΔ %9͸εύΠϥϧ

  11. • DX͕ྑ͘ͳ͍ɺ΋͘͠͸Կ΋ߟ͍͑ͯͳ͍৔߹ • Կ΋ͯ͠ͳ͚Ε͹ѱԽ͢Δ • ྫ • ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔʁ • ϥΠϒϥϦ͸ద੾ʹόʔδϣϯΞοϓ͞Ε͍ͯΔʁ

    %9͸εύΠϥϧ
  12. %9Ͱେࣄͳͷ͸ܧଓతҡ࣋׆ಈ

  13. Microservicesʹ͍ͭͯ

  14. େ͖ͳγεςϜΛɺখ͘͞ɺҰͭͷ໾ׂʹ෼ׂͨ͠΋ͷ 8IBUJT.JDSPTFSWJDFT

  15. • ٕज़ಛҟੑ • ճ෮ੑ • εέʔϦϯά • ૊৫ͷҰக • ߹੒Մೳੑ

    • ͳͲͳͲ .FSJUTPG.JDSPTFSWJDFT
  16. 8IZ'J/$BEPQU.JDSPTFSWJDFT

  17. ΧϥμͷશͯΛҰͭͷΞϓϦͰɻ ͱ͍͏ίϯηϓτ͕͏·͘͸·ͬͨ ϚΠΫϩαʔϏεͱඇৗʹ૬ੑ͕ྑ͘ɺ ৽ػೳΛߴ଎ͰϦϦʔε͖ͯͨ͠ UP$ΞϓϦ ೝূαʔϏε &$αΠτ "*ػೳ Ϋʔϙϯ ΢ΣΞϥϒϧ

    Ϩίϝϯυ ϥΠϑϩά 4/4ػೳ νϟοτ UP#αΠτ ϙΠϯτ αϓϦϝϯτ
  18. ଟ͘ͷΞϓϦΛ։ൃɾӡ༻͍ͯ͠Δ ࢟੎෼ੳ &$αΠτ ؅ཧऀը໘ Ϣʔβʔ ϩʔϧ؅ཧ ৯ࣄղੳ ϓϨϛΞϜձһ ݈อαʔϏε UP$ΞϓϦ

    #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨஌αʔϏε 4/4ػೳ ίϯςϯπ؅ཧ Ϣʔβʔ άϧʔϓ؅ཧ "*Ϩίϝϯυ ϓογϡ௨஌ UP$΢Σϒ ܾࡁ า਺Πϕϯτ νϡʔτϦΞϧ ϙΠϯτ؅ཧ ೝূج൫
  19. Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ

  20. .JDSPTFSWJDFTͱ%9ͷ૬ੑ MicroservicesΛ࠾༻͢ΔͱDXʹͲͷΑ͏ͳӨڹ͕͋Δ͔ʁ

  21. ྑͦ͞͏ʹݟ͑Δ • γεςϜΛখ͘͞ΩʔϓͰ͖ΔͷͰҎԼͷ͜ͱ͕΍Γ΍͘͢ͳΔ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ඼࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨ͸ద੾ʹ؅ཧ͞Ε͍ͯΔ •

    ςετ΍σϓϩΠΛߴ଎ʹߦ͏͜ͱ͕Ͱ͖Δ • ϥΠϒϥϦ΍ϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠؅ཧ͞Ε͍͍ͯΔ
  22. ৽نػೳͷ্ཱͪ͛ʹ͍ͭͯ͸͞ΒʹྗΛൃش͢Δ • DX͸طଘͷγεςϜͷෛ࠴ʹେ͖͘ҾͬுΒΕΔͷͰ • ৽نػೳΛϚΠΫϩαʔϏεͰ্ཱͪ͛Δͷ͸ඇৗʹྑ͍ • ͍͍ͩͨ3ഒ͘Β͍ͷεϐʔυͰ͍͚Δ(౰ࣾൺ)

  23. αʔϏε։ൃମ੍ʹ͍ͭͯ΋͏Ұ౓ߟ͑௚ͯ͠Έ͍ͨ ྑͦ͞͏ʹݟ͑Δͷ͕ͩ

  24. • DXͷର৅ऀ͸୭͔ʁ • ϚΠΫϩαʔϏεʹ͓͚Δڵຯͷൣғ ࠶ߟ͢Δ؍఺

  25. DX = Developer Experience? %9ͷର৅ऀ͸୭͔ʁ

  26. ։ൃαΠΫϧʹ͸ଟ͘ͷొ৔ਓ෺͕͍Δ %FWFMPQFS 2" 3FMFBTF .BJOUFOBODF 4FDVSJUZ

  27. 'J/$5FDIOPMPHJFTͷνʔϜߏ੒ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS

    %FWFMPQFS
  28. %9%FW5FTU4FD0QT&YQFSJFODF ͱͯ͠ߟ͍͑ͨ

  29. ϚΠΫϩαʔϏεͷڵຯͷൣғ • Dev/Test/Sec/Ops ͳͲͦΕͧΕͷཱ৔Ͱڵຯͷൣғ͕ҟͳΔ • ҰͭͷϚΠΫϩαʔϏεͷൣғ • ͍͔ͭ͘ͷϚΠΫϩαʔϏεΛԣஅͨ͠ൣғ • γεςϜશମ

  30. • ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺখ ͘͞ݟ௨͠ͷΑ͍Ұͭͷൣғʹ ूத͍ͨ͠ • ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺෳ ਺ͷΞϓϦέʔγϣϯʹखΛՃ ͑ͨ͘ͳ͍ • ଞͷ։ൃ΍ɺӡ༻ͷ౎߹Ͱαʔ

    Ϗε։ൃ଎౓Λམͱͨ͘͠ͳ͍ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS ҰͭͷϚΠΫϩαʔϏε
  31. %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS

    ͍͔ͭ͘ͷϚΠΫϩαʔϏε • ϦϦʔε୯ҐͰ੔߹ੑΛ୲อ͠ ͍ͨ • ೝূج൫ͳͲɺଟ͘ͷϚΠΫϩ αʔϏε͔Βґଘ͞ΕΔ΋ͷʹ ͍ͭͯ͸ଞͷϚΠΫϩαʔϏε ͷؔ৺͝ͱʹͳΒ͟ΔΛ͑ͳ͍
  32. %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS

    γεςϜશମ • ڞ௨Ͱ࢖༻͢ΔΠϯϑϥج൫ • γεςϜશମʹ͓͚Δ୯Ұো֐ ఺ͷഉআ • γεςϜશମͷηΩϡϦςΟϨ ϕϧ͸Ұ൪௿͍ͱ͜Ζʹ͋ͬͯ ͠·͏
  33. %9%FW5FTU4FD0QT&YQFSJFODF ͱͨ͠৔߹ɺͲͷΑ͏ͳ໰୊͕ݟ͑ͯ͘Δ͔ʁ

  34. ҟͳΔؔ৺ͷൣғͰɺҟͳΔΠϯηϯςΟϒ %FWFMPQFS 43&4FDVSJUZ ϚΠΫϩαʔϏεຖʹҟͳΔ ݴޠΛબ୒͍ͨ͠ ։ൃऀͷಘҙͳݴޠΛબ୒Ͱ ͖ΔͷͰ։ൃ͕଎౓޲্͢Δ ࠾༻͢Δݴޠͷ਺͚ͩηΩϡ ϦςΟύονͷରԠ͕ඞཁ ࠾༻͢Δݴޠͷ਺͚ͩOpsʹ

    ӡ༻஌͕ࣝඞཁ ͢΂ͯͷ։ൃݴޠΛἧ͍͑ͨ
  35. ϚΠΫϩαʔϏεଆʁڞ௨ج൫ଆʁ • ྫ͑͹ɺCI/CDͷઃఆ • αʔϏεػೳͰ͸ͳ͍͕ඞཁͳίϯϙʔωϯτ αʔϏεͷػೳ͡Όͳ͍͔Β γεςϜશମͱͯ͠ͷڞ௨ػ ೳͱͯ͠ఏڙͯ͠΄͍͠ Ϗϧυखॱ΍ϦϦʔεखॱʹ ͍ͭͯ΋ΧελϚΠζ͍ͨ͠

    ͷͰɺ֤ϚΠΫϩαʔϏεຖ ʹ΍ΓํΛܾΊ͍ͨ Ϗϧυํ๏ʹमਖ਼͕͋ͬͨ৔ ߹ʹɺϚΠΫϩαʔϏεͷݸ ਺෼࡞ۀ͢Δͷ͸ਏ͍ͷͰڞ ௨ͰҰͭͷγεςϜʹ͍ͨ͠
  36. େن໛ԽʹΑΔෳࡶੑͷ૿Ճ • ෳ਺ͷϚΠΫϩαʔϏεʹ·͕ͨΔΑ͏ͳػೳͷ։ൃ • ҶͮΔతʹμ΢ϯͨ͠αʔϏεͷݪҼಛఆͷࠔ೉͞ • ϚΠΫϩαʔϏε͕૿͑Ε͹૿͑Δ΄Ͳෳࡶੑ͕૿͢ 4FSWJDF 4FSWJDF 4FSWJDF

  37. େن໛ԽʹΑΔ։ൃɾ2"؀ڥͷߏங೉қ౓Ξοϓ • ෳ਺ͷαʔϏεΛ্্ཱͪ͛ͨͰͷಈ࡞֬ೝ͕ඞཁ • σʔλ΋෼ࢄ͍ͯ͠ΔͷͰ੔߹ੑͷऔΕͨσʔληοτ͕ඞཁ ࢟੎෼ੳ &$αΠτ ؅ཧऀը໘ Ϣʔβʔ ϩʔϧ؅ཧ

    ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨஌αʔϏ ε 4/4ػೳ ίϯςϯπ ؅ཧ Ϣʔβʔ άϧʔϓ؅ཧ "*Ϩίϝϯυ ϓογϡ௨ ஌ UP$΢Σϒ ܾࡁ า਺Πϕϯτ νϡʔτϦ Ξϧ ϙΠϯτ؅ཧ ೝূج൫
  38. ϚΠΫϩαʔϏεͳΒͰ͸ͷ޻਺֦େ • ྫ͑͹શϚΠΫϩαʔϏεͷηΩϡϦςΟύον • ୯७ʹಉ͡࡞ۀΛԿेճ΋͢Δඞཁ͕͋Δ • ϥΠϒϥϦߋ৽ͷΑ͏ͳؾΛ࢖͏࡞ۀΛԿेճ΋ߦ͏ͷ͸ਏ͍ ࢟੎෼ੳ &$αΠτ ؅ཧऀը໘

    Ϣʔβʔ ϩʔϧ؅ཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨஌αʔϏ ε 4/4ػೳ ίϯςϯπ ؅ཧ Ϣʔβʔ άϧʔϓ؅ཧ "*Ϩίϝϯυ ϓογϡ௨ ஌ UP$΢Σϒ ܾࡁ า਺Πϕϯτ νϡʔτϦ Ξϧ ϙΠϯτ؅ཧ ೝূج൫
  39. ੜ͡Δ໰୊·ͱΊ • ΠϯηϯςΟϒͷҧ͍ʹΑΔিಥ • ڞ௨ vs ෼ࢄʹΑΔিಥ • େن໛ԽʹΑΔෳࡶԽ •

    ։ൃɺςετɺӡ༻ • αʔϏεͷݸ਺ʹൺྫͨ͠࡞ۀྔ
  40. ͜͏͍ͬͨ໰୊Λແࢹͯ͠େن໛Խ͢Δͱ • ৽αʔϏεͷ্ཱͪ͛͸ૣ͍ • ݴޠͷछྨ͕૿͑Δͱɺࣾ಺ͷϊ΢ϋ΢ڞ༗͕গͳ͘ͳΔ • CI/CDपΓ͕ෆ҆ఆʹͳͬͨΓɺςετͷ͕࣌ؒ௕͘ͳΔ • ηΩϡϦςΟύον͕์ஔ͞ΕΔ •

    ো֐͔࣌Βͷ෮چ͕࣌ؒ৳ͼΔ • ͖Ε͍ͳ؀ڥͰ։ൃ΍QA͕Ͱ͖ͳ͘ͳΔ • όά͕ଟ͘ɺόάfixʹଟ͘ͷ࣌ؒΛ࢖͏Α͏ʹͳΔ ॳ଎Ҏ֎ͷ։ൃ଎౓͕஗͘ͳΔ
  41. ͭ·Γ.JDSPTFSWJDFTͱ%9͸ • ϚΠΫϩαʔϏεͷ։ൃͷ୯ମ଎౓Λམͱͣ͞ʹ • ϚΠΫϩαʔϏε୯ମ͔Β࿙Εग़͢՝୊Λղܾ͢Δ ࣋ଓՄೳͳ։ൃ଎౓ͷ࠷େԽΛ໨ࢦ͢

  42. ؓ࿩ $*$%ͷឯ༨ۂં࿩

  43. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ

  44. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲౰ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ

  45. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲౰ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲౰͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ

  46. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲౰ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲౰͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲౰ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ

  47. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲౰ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲౰͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε͸૿Ճ͠ଓ͚ɺ୲౰ऀͷ࡞ۀ͕ϘτϧωοΫʹ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲౰ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ

  48. $*$%͸୭͕؅ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε͸֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲౰ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲౰͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε͸૿Ճ͠ଓ͚ɺ୲౰ऀͷ࡞ۀ͕ϘτϧωοΫʹ ࠶ͼɺCI/CDͷઃఆΛ֤ΞϓϦʹ໭ͨ͠ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲౰ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ

  49. $*$%͸୭͕؅ཧ͢Δʁ • ϚΠΫϩαʔϏε͕େن໛Ͱ͋Ε͹֤ΞϓϦͰ؅ཧ • ͦ΋ͦ΋ϚΠΫϩαʔϏε͸େن໛ͳγεςϜͷҝͷ΋ͷ͕ͩ • ymlͰهड़Ͱ͖Δ͘Β͍؆୯ʹͯ͠෼ࢄ؅ཧ͢΂͖

  50. Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ͸

  51. .JDSPTFSWJDFTͷ%9Λྑ͘͢ΔऔΓ૊Έ πʔϧͷಋೖ ૊৫తͳऔ૊ ϚΠΫϩαʔϏε͕େن໛Խͨ͠ͱͯ͠΋ ୯ମͷ։ൃ଎౓Λམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠΋ΧόʔͰ͖ͳ͍ ൣғΛ૊৫తͳऔ૊ͰϑΥϩʔ͢Δ

  52. πʔϧͷಋೖ ૊৫తͳऔ૊ ϚΠΫϩαʔϏε͕େن໛Խͨ͠ͱͯ͠΋ ୯ମͷ։ൃ଎౓Λམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠΋ΧόʔͰ͖ͳ͍ ൣғΛ૊৫తͳऔ૊ͰϑΥϩʔ͢Δ

  53. αʔϏεϝογϡɺ෼ࢄτϨʔγϯά • ෳ਺ͷϚΠΫϩαʔϏεʹ·͕ͨΔ໰୊ʹରͯ͠ͷରԠ • ӨڹൣғͷՄࢹԽ • ো֐࣌ͷ໰୊ಛఆ଎౓ͷ޲্ 4FSWJDF 4FSWJDF 4FSWJDF

  54. αʔΩοτϒϨΠΧʔ • ಛఆͷαʔϏεͷো֐͕ଞͷαʔϏεʹӨڹ͠ͳ͍࢓૊Έ • Ұͭͷো֐ͰγεςϜશମ͕μ΢ϯ͠ͳ͍Α͏ʹ(Ops) • ϦϦʔεʹର͢Δ৺ཧతোน͕Լ͕Δ(Dev) 4FSWJDF 4FSWJDF 4FSWJDF

  55. ΧφϦΞϦϦʔε • ϥΠϒϥϦͷΞοϓσʔτͷ޻਺͸๲େ • ϑϨʔϜϫʔΫ΍ݴޠͷόʔδϣϯ্͛͸ಛʹ໢ཏతͳQAͷ࣮ࢪ͕ ඞཁ • ΧφϦΞϦϦʔεʹΑͬͯ͜ͷ޻਺΍৺ཧతোนΛԼ͛Δ ϚΠΫϩαʔϏεͷ਺͚ͩߦΘͳ͍ͱ ͍͚ͳ͍࡞ۀͷ୯ମͷෛ୲ΛԼ͛Δ

    ࢟੎෼ੳ &$αΠτ ؅ཧऀը໘ Ϣʔβʔ ϩʔϧ؅ཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨஌αʔϏε 4/4ػೳ ίϯςϯπ ؅ཧ Ϣʔβʔ άϧʔϓ؅ཧ "*Ϩίϝϯυ ϓογϡ௨஌ UP$΢Σϒ ܾࡁ า਺Πϕϯτ νϡʔτϦ Ξϧ ϙΠϯτ؅ཧ ೝূج൫
  56. .JDSPTFSWJDFTͷෳ੡ • ͋ΔϚΠΫϩαʔϏεΛ։ൃ/QA͢Δͱ͖ʹ • ͦͷαʔϏε͕ґଘ͢ΔϚΠΫϩαʔϏε܊Λࣗ෼ઐ༻Ͱ޷͖ͳλΠ ϛϯάͰ্͛ͨΓམͱͨ͠Γ͍ͨ͠ • औΓ૊Έ • Kubernetesಋೖͨ͠Β͍͚Δͱ͍͏Θ͚Ͱ΋ͳ͍

    • ϑΝʔετεςοϓ͸ Infrastructure as a Code • σʔληοτͷ༻ҙ
  57. ؓ࿩ ϚΠΫϩαʔϏεͷෳ੡αάϥμϑΝϛϦΞԽ

  58. 1SPEVDUJPO 4UBHJOH 1SPEVDUJPO ४1SPEVDUJPO 4UBHJOH

  59. ४1SPEVDUJPO؀ڥΛ࡞Γ͔͕ͨͬͨ • લఏͱͯ͠ୡ੒͓͔ͯ͠ͳ͍ͱ͍͚ͳ͍͜ͱ͸݁ߏଟ͍ • Infrastructure as a Code • ίϯςφपล͚ͩͰͳ͘ɺAWSͷϑϧϚωʔδυαʔϏεͳͲ΋

    (SQS, Lambda, RDS, etc…) • ϒϥϯνઓུ • QA͕Մೳͳσʔληοτͷ༻ҙ • ϞλϞλ͍ͯ͠Δͱ৽͍͠ϚΠΫϩαʔϏε্ཱ͕͕ͪͬͯ ௥͍͚ͭͳ͘ͳ͍ͬͯ͘
  60. πʔϧͷಋೖ ૊৫తͳऔ૊ ϚΠΫϩαʔϏε͕େن໛Խͨ͠ͱͯ͠΋ ୯ମͷ։ൃ଎౓Λམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠΋ΧόʔͰ͖ͳ͍ ൣғΛ૊৫తͳऔ૊ͰϑΥϩʔ͢Δ

  61. πʔϧΛಋೖͯ͠΋ղܾ͠ͳ͍໰୊ͱ͸ʁ ͢ͰʹDX͕ѱ͍Օॴ ૊৫తʹऑ͍෦෼

  62. લఏͱͯ͠ߟ͑Δ͜ͱ • ػೳ։ൃ͸ແݶʹ͋Δ • νʔϜͷ๩͠͞ɺ੒ख़౓ͳͲ • ֤νʔϜʹԡ͠෇͚ͯ΋೉͍͠έʔε

  63. ஈ֊తͳऔΓ૊Έ ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓ૊ΊΔ͜ͱ͸όϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ෼ࢄԽΛ໨ࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠෼ࢄͯ͠ε έʔϧ͢Δ૊৫Λ໨ࢦ͍ͯ͘͠

  64. ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓ૊ΊΔ͜ͱ͸όϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ෼ࢄԽΛ໨ࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠෼ࢄͯ͠ε έʔϧ͢Δ૊৫Λ໨ࢦ͍ͯ͘͠

  65. ϥΠϒϥϦͷߋ৽΍ɺηΩϡϦςΟΞοϓσʔτ • Կ೥΋ϚΠΫϩαʔϏεΛӡ༻͍ͯ͠Δͱߦ͖ಧ͔ͳ͍෦෼͕ग़ͯ͘Δ • DX͕ѱ͍··์ஔ͞Ε͍ͯΔͱ͜Ζ • ྫ͑͹ɺ • ϥΠϒϥϦͷߋ৽ɺηΩϡϦςΟΞοϓσʔτ •

    ͪͳΈʹɺͳͥDX͕ѱ͍ʁ • ͍͟࠷৽ͷόʔδϣϯʹ͋͛Δͱ͖ʹϏοάόϯϦϦʔεʹͳΔ • ์ஔͨ͠··ηΩϡϦςΟ໰୊͕ൃੜ͢Δͱඞཁͷͳ͔ͬͨରԠ࡞ۀ ʹ௥ΘΕΔ
  66. ·ͣ͸ՄࢹԽͯ͠໰୊Λڞ༗͢Δͱ͜Ζ͔Β • ֤ΞϓϦέʔγϣϯͷϥΠϒ ϥϦͷόʔδϣϯΛԣஅͯ͠ ՄࢹԽ • ͲͷΞϓϦέʔγϣϯͷόʔ δϣϯ͕௿͍··์ஔ͞Εͯ ͍Δ͔ΛҰ໨ྎવʹ •

    ఆྫͰνΣοΫ
  67. ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓ૊ΊΔ͜ͱ͸όϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ෼ࢄԽΛ໨ࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠෼ࢄͯ͠ε έʔϧ͢Δ૊৫Λ໨ࢦ͍ͯ͘͠

  68. Ͱ͖Δͱ͜Ζ͔ΒऔΓ૊Ή • ि̍ճɺ༗ࢤͰू·ͬͯߦ͖ಧ͍͍ͯͳ͍ͱ͜ΖΛαϙʔτ͢Δ • ϥΠϒϥϦͷΞοϓσʔτ • ݴޠͷόʔδϣϯͷΞοϓσʔτ • Dockerfile, CIͷઃఆͳͲͷߋ৽ͳͲ΋

    • νʔϜʹΑͬͯ͸ϦϦʔεཱ͕ͯࠐΜͰ͍ͨΓ͢Δ͜ͱ͕͋Δͷ ͰɺશମͰαϙʔτͰ͖Δମ੍Λ࡞Δͱྑ͍
  69. υϝΠϯ஌͕͍ࣝΒͳ͍෦෼͸νʔϜʹͩ͜ΘΒͳ͍ • ྫ͑͹ɺηΩϡϦςΟύονΛ্͛Δ࡞ۀʹ͍ͭͯ͸ɺαʔϏε ͷυϝΠϯ஌ࣝ͸΄΅ෆཁ • ͦ͏͍ͬͨ࡞ۀʹ͍ͭͯ͸ɺνʔϜΘ͚ʹͩ͜ΘΒͣʹ࡞ۀՄೳ ͳϝϯόʔ͕Ͱ͖Δͱ͜Ζ͔Βย෇͚͍ͯ͘ͱྑ͍

  70. ࡇΓతʹऔΓ૊Ήͷ΋ྑ͍

  71. ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓ૊ΊΔ͜ͱ͸όϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ෼ࢄԽΛ໨ࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠෼ࢄͯ͠ε έʔϧ͢Δ૊৫Λ໨ࢦ͍ͯ͘͠

  72. ͋Δఔ౓ମ੍͕ग़དྷ͖ͯͨΒ෼ࢄԽΛ໨ࢦ͢ • جຊతʹϚΠΫϩαʔϏεͷ։ൃମ੍Λεέʔϧͤ͞ΔͨΊʹ͸ ෼ࢄԽΛ໨ࢦ͍ͯ͘͠ • ૊৫ͱͯ͠DXͷѱ͍ͱ͜ΖʹϑΥʔΧεͯ͠DX͕ճ෮͖ͯͨ͠ Β֤νʔϜʹ͓೚ͤͰ͖Δঢ়ଶʹͳΔ • ਖ਼ͷεύΠϥϧɿDX͕ྑ͘ͳͬͯ͘Ε͹อͭ޻਺͸ݮΔ

  73. ෼ࢄ͢Ε͹Կेݸ΋͋Δ3BJMTͷόʔδϣϯΞοϓ΋ • ओཁͳΞϓϦέʔγϣϯ͸ 24hҎ಺ʹରԠ׬ྃ • ਺೔Ҏ಺ʹ͢΂ͯͷαʔϏε ͷߋ৽͕׬ྃ

  74. ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ૊৫త ʹఈ্͛ ෼ࢄԽ

  75. ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ૊৫త ʹఈ্͛ ෼ࢄԽ ※

    ίπ • ಛఆ͠ղܾ͢Δ໰୊ΛͳΔ΂͘খ͘͞ • ҰͭҰͭ͜ͳͯ͠ԣల։͍ͯ͘͠
  76. ·ͱΊ

  77. ·ͱΊ • ϚΠΫϩαʔϏεʹ͓͚ΔDXͷ޲্ʹ͍ͭͯߟ͑ͨ • DXͷର৅ऀ͸DevTestSecOpsͱ֦ு͢Δ • ϚΠΫϩαʔϏεͷDXΛ޲্ͤ͞Δʹ͸ • ϚΠΫϩαʔϏεͷ୯ମͷ։ൃ଎౓Λམͱͣ͞ʹ •

    ϚΠΫϩαʔϏεͷ֎ʹ࿙Εग़ؔ͢৺Λ͏·͘ѻ͍ͬͯ͘ • ͦͷͨΊʹ͸ • πʔϧʹΑΔΞϓϩʔν • ૊৫ʹΑΔΞϓϩʔν