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

マイクロサービスの現場からプラットフォームエンジニアリングの可能性を探る!

 マイクロサービスの現場からプラットフォームエンジニアリングの可能性を探る!

開発生産性Conference 2024に登壇したときの資料です。
技術的な内容は後半を担当してくれた https://speakerdeck.com/hiroki_hasegawa/marutipurodakutonozu-zhi-demaikurosabisuakitekutiyawozhi-erucicdpuratutohuomushe-ji にまかせています。

abnoumaru

June 28, 2024
Tweet

More Decks by abnoumaru

Other Decks in Technology

Transcript

  1. id: abnoumaru • גࣜձࣾεϦʔγΣΠΫ Sreakeࣄۀ෦ άϧʔϓϦʔμʔ • SREͷϓϥΫςΟεಋೖͷ͓ख఻͍ • EKSΛத৺ʹਾ͑ͨ؀ڥΛԣల։ͯ͠σδλϧܾࡁΛఏڙ͢ΔҊ݅

    • ڵຯɿ ӡ༻ ! / SRE " / O11y # ʢೖ໳͍ͨ͠ʣ • ࢿྉɿspeakerdeck.com/abnoumaru • ࢲʹ͍ͭͯ஌Γ͍ͨɿabnoumaru.com 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 2
  2. ߏ੒ • લ൒ʢ @abnoumaru ʣ • ΠϕϯτςʔϚ΍λΠτϧͷ୯ޠͷҙຯ΍Ձ஋Λ֬ೝ • ޙ൒Ͱઆ໌͢Δ෦෼ʹϑΥʔΧε͢Δ •

    ޙ൒ʢ @Hiroki_IT ʣ • ݱ৔ͷ՝୊ʹରͯ͠ͲͷΑ͏ʹΞϓϩʔνΛ͍ͯ͠Δ͔આ໌ • https://speakerdeck.com/hiroki_hasegawa/marutipurodakutonozu-zhi- demaikurosabisuakitekutiyawozhi-erucicdpuratutohuomushe-ji 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 6
  3. ϓϥοτϑΥʔϜΤϯδχΞϦϯάͷ ՄೳੑΛ୳Δʁ • ݪଇ2΍ੑ࣭3΍֓ཁਤ4͸ଘࡏ͢Δ͕ਖ਼ղ͕ ͋ΔΘ͚Ͱ͸ͳ͘ݱ৔΍։ൃऀͱ޲͔͍߹ ͬͯ࡞Γ্͍͛ͯ֓͘೦ͱೝ͍ࣝͯ͠Δ • ࠓճͷλΠτϧͰ͸ݪଇ΍ੑ࣭΍֓ཁਤͰ ࣔ͞Ε͍ͯΔঢ়ଶΛ໨ࢦͦ͏ͱ͢ΔաఔͰ ʮߟ͑ΒΕΔ࠷΋ྑ͍΍ΓํΛ୳͢ʯͱ͍

    ͏ҙຯͰʮՄೳੑΛ୳Δʯͱදݱͨ͠ 4 https://www.gartner.com/en/articles/what-is-platform-engineering 3 https://tag-app-delivery.cncf.io/whitepapers/platforms/ 2 https://platformengineering.org/blog/what-is-platform-engineering 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 7
  4. ։ൃੜ࢈ੑ • ੜ࢈ੑ=Ξ΢τϓοτ÷Πϯϓοτ5 • γϯϓϧʹߟ͑Ε͹͜ͷ͕ࣜҰ൪ͬ͘͠Γ͘Δ • ͲͷΑ͏ͳ஋Λ͍ΕΔ͔͸૊৫΍ཱ৔ʹΑΓ༷ʑ • ։ൃݱ৔ʹ͓͍ͯগͳ͍ΠϯϓοτͰΞ΢τϓοτΛ૿΍͢ •

    ex. Πϯϓοτɿ։ൃͰൃੜ͢ΔϦιʔεɾίετɾ࣌ؒ... • ex. Ξ΢τϓοτɿσϦόϦͷස౓... • ࠷ऴతʹ͸Ξ΢τΧϜʢϓϩμΫτར༻ऀ΁ͷՁ஋΍ۀ੷ʣΛߴΊ͍ͨ • ࠓ೔ͷ࿩͸γϯϓϧͳͷͰ͓͢͢Ί͍ͨ͠ࢿྉ • ͪ͜Βͷࢿྉ6ʹͯ૊৫શମͰ։ൃੜ࢈ੑʹ͍ͭͯͲ͏ଊ͑Δ͔ɾਐΊ͍͔ͯ͘·ͱΊΒΕ͓ͯΓษڧ͍͍͍ͤͯͨͩͯ͞·͢ 6 https://speakerdeck.com/i35_267/current-status-of-development-productivity 5 https://qiita.com/hirokidaichi/items/53f0865398829bdebef1 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 11
  5. ࠓ͋ΔϓϩμΫτΛૉૣ͘χʔζʹ߹ΘͤΔ • ݕূͨΊͷվળɺػೳ௥Ճͷ৔໘Ͱ։ൃੜ࢈ੑʢ˺σϦόϦͷ଎౓ɾස౓ʣΛվળ͢Δ͜ͱͰ PDCA͕ߴ଎ʹͳΔ • ྫ͑͹Product Market FitΛ໨ࢦ͢7 • Minimum

    Viable ProductΛ௨ͨ͠Ձ஋ͷݕূΛ௨ͯ͠վળ΍ػೳ௥ՃΛߦ͍ࢢ৔ͷݕূΛ௨͠ ͯ੡඼ͷχʔζΛ೺Ѳ͢Δ • ސ٬͕ຬ଍͢Δ੡඼Λఏڙ͠ɺͦΕ͕ద੾ͳࢢ৔ʹड͚ೖΕΒΕΔ͜ͱͰࣄۀͷ੒ޭʹͭͳ͕ Δ • ଧ੮ʹཱͭճ਺Λ૿΍͢͜ͱͰώοτΛ૿΍͍͖͍ͯͨ͠ 7 https://monstar-lab.com/dx/solution/about-pmf/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 14
  6. ՝୊ɿ։ൃऀͷೝ஌ෛՙ • ༷ʑͳςΫϊϩδʔ͕ۀքඪ४ʹͳΓ։ൃऀ ͷೝ஌ෛՙ͕૿Ճ10 • ༰ྔʢϝϞϦʣ͕଍Γͳ͘ͳΔ– • Πϯϓοτ͸૿Ճ • Ξ΢τϓοτ͸ݮগ

    • σϦόϦͷස౓ݮগ • Ξ΢τΧϜ΋ग़ͮ͠Β͘ͳΔ • ෛͷαΠΫϧ ! 10 https://www.infoq.com/articles/platform-engineering-primer/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 18
  7. ϓϥοτϑΥʔϜΤϯδχΞϦϯάͷಛੑ11 • Platform as a Product • User Experience •

    Documentation and onboarding • Self-service • Reduce cognitive load for users • Optional and composable • Secure by default 11 https://tag-app-delivery.cncf.io/whitepapers/platforms/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 21
  8. Platform as a Product • ϓϥοτϑΥʔϜ͸ϢʔβʔͷཁٻʹԠ͑ΔͨΊʹଘࡏ͢Δ • ։ൃऀ͕ٻΊ͍ͯΔ΋ͷΛཧղ͢Δ΂͘ίϛϡχέʔγϣϯ͕ॏཁͱࣗ෼ߟ͍͑ͯΔ • ୯ҰͷνʔϜ޲͚ͷಛघͳػೳΑΓɺҰൠతͳϢʔεέʔεΛαϙʔτ͢ΔػೳΛఏڙ͍ͨ͠

    • platformengineering.org10Ͱ΋ڞ௨ͷ໰୊ʹϑΥʔΧε͢Δ͜ͱ͕ݪଇͱͯ͠ڍ͛ΒΕ͍ͯΔ • ԣஅతʹඪ४ԽΛਐΊ͍ͯ͘͜ͱͰϓϥοτϑΥʔϜΛ࡞Γ্͍͛ͯ͘ • platformengineering.org10Ͱ͸઀ணࡎͱͳΓπʔϧνΣʔϯΛ·ͱΊ্͛ϫʔΫϑϩʔΛఏڙ͢Δ͜ͱʹ͸ Ձ஋͕͋ΔʢGlue is valuableʣͱݴΘΕͯΔ • γεςϜ͚ͩͰ͸ͳ͘ਓʑͷؒΛऔΓ࣋ͭ͜ͱ΋ॏཁͰ͋Δͱࣗ෼͸ߟ͍͑ͯΔ 10 https://www.infoq.com/articles/platform-engineering-primer/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 22
  9. Documentation and onboardingʢ2/2ʣ • ΰʔϧσϯύεͷྫ13 • ελʔτΨΠυ • εέϧτϯιʔείʔυ •

    ґଘؔ܎ͷ؅ཧ • CI/CDύΠϓϥΠϯ ςϯϓϨʔτ • Infrastructure as Code༻ςϯϓϨʔτ • Kubernetes YAML ϑΝΠϧ • ϙϦγʔΨʔυϨʔϧ • ϩΪϯάͱϞχλϦϯάܭଌ • ϦϑΝϨϯευΩϡϝϯτ 13 https://cloud.google.com/blog/ja/products/application-development/golden-paths-for-engineering-execution- consistency?hl=ja 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 24
  10. ϓϥοτϑΥʔϜΤϯδχΞϦϯάͷ੒ख़౓ • CNCF͔Β੒ख़౓ʹؔ͢Δจষ΋ެ։͞Ε͍ͯΔ14 15 • Ͳͷ߲໨΋੒ख़౓্͕͕ΔʹͭΕͯࢿۚ΍ਓ͕ཁ͢Δ࣌ؒʹର͢Δཁٻ͕େ͖͘ͳΔ఺ʹ஫ҙ • ࠷ߴϨϕϧʹୡ͢Δ͜ͱࣗମΛ໨ඪʹͯ͠͸͍͚ͳ͍ • ඞཁͳ౤ࢿΛͯ͠ɺࣗ૊৫΍ݱঢ়͕ԸܙΛड͚ΒΕΔ͔Ͳ͏͔ݕ౼͍ͯ͘͠ඞཁ͕͋Δ

    • ࣍εϥΠυͷϞσϧʹ૊৫ͷঢ়ଶΛϚοϐϯάͯ͠൓෮ͱվળʹར༻ͯ͠ɺվળͷͨΊʹऔΓ ૊Ή΂͖ϦετΛݕ౼͍ͯ͘͜͠ͱ͕େࣄ 15 https://zenn.dev/kimutansk/articles/b8a83229e02807 14 https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 26
  11. ϚΠΫϩαʔϏεͷϝϦοτ • ٕज़ͷҟछੑ • ݎ࿚ੑ • εέʔϦϯά • σϓϩΠͷ༰қੑ •

    ૊৫ͱͷ࿈ܞ • ߹੒Մೳੑ ʢϚΠΫϩαʔϏεΞʔΩςΫνϟ16ΑΓʣ 16 https://www.oreilly.co.jp/books/9784814400010/ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 31
  12. ϚΠΫϩαʔϏεͷσϓϩΠ • ಛ௃ͷ಺ͷͻͱͭͱͯ͠σϓϩΠͷ༰қੑ͕͋Δ • ݸʑͷαʔϏεΛಠཱͯ͠σϓϩΠՄೳͰɺਝ଎ͳσϓϩΠ΍ϩʔϧόοΫ͕Մೳ • ϝϦοτ • σϦόϦ͕ਝ଎ʹͳΔ͜ͱͰ৽ػೳΛਝ଎ʹސ٬ʹఏڙͰ͖Δ •

    =Ձ஋ͷఏڙ΍Ծઆݕূͷϧʔϓͷεϐʔυ্͕͕Δ • ։ൃऀͷೝ஌ෛՙ • αʔϏε਺͕૿͑Δ͜ͱͰ։ൃऀମݧ͕ѱԽ͢Δଆ໘΋͋Δ • ϦϦʔεํ๏ͷෳࡶԽɺઃܭͷ೉͠͞ɺςετͷ೉͠͞ɺϨϏϡʔͷෳࡶԽ... • ৽ٕज़ͷಋೖʹΑΓཧղ͢ΔͨΊͷ࿑ྗ΍ෳࡶ͕͞૿͢ʢΠϯϓοτ͕૿͑Δʣ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 33
  13. ϚΠΫϩαʔϏεͱ૊৫ • ෳ਺ͷϓϩμΫτͳ͍͠αʔϏε͕ؒಠࣗͰ։ൃ • ૊৫ؒͷ஌ݟڞ༗͕೉͘͠ͳΔ • ंྠͷ࠶ൃ໌͕ى͜ΔՄೳੑ • ৘ใڞ༗΍ٵ্͍͛Λ͢Δ໾ׂɾ࢓૊Έ͕͋Δͱخ͍͠ •

    εςʔΫϗϧμʔ͕ଟ͍ͨΊίϛϡχέʔγϣϯίετ͕૿େ • ϓϥοτϑΥʔϜͰͰ͖Δ͚ͩٵऩͰ͖Δͱخ͍͠ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 34
  14. લ൒·ͱΊ • ։ൃੜ࢈ੑΛ্͛Δ͜ͱͰϏδωεΠϯύΫτΛେ͖͘͢Δ֬཰ΛߴΊ͍͖͍ͯͨ • ex. σϦόϦͷ଎౓Λ্͛ͯPDCAΛ্͛Δɺंྠͷ࠶ൃ໌Λ๷͙͜ͱ • খ͞ͳΠϯϓοτͰେ͖ͳΞ΢τϓοτɺͦͯ͠Ξ΢τΧϜΛੜΈग़ͨ͢Ίʹॏཁ • σϦόϦ଎౓Λམͱ͢ཁҼͱͯ͠։ൃऀͷೝ஌ෛՙ͕ۙ೥ߴ·͍ͬͯΔ

    • ೝ஌ෛՙΛ࡟ݮ͢Δ؍఺ͰϓϥοτϑΥʔϜΤϯδχΞϦϯά͕੝Γ্͕͍ͬͯΔ • ఆٛ΍ݪଇͷߟ͑ํΛ༻͍ͯݱ৔ͷ՝୊ͱ޲͔͍߹͏͜ͱ͕େࣄ • ޲͖߹ͬͨ݁Ռͱͯ͠։ൃੜ࢈ੑΛߴΊΔϓϥοτϑΥʔϜΛ࡞Γ্͍͛ͯ͘ 2024/06/28 ։ൃੜ࢈ੑΧϯϑΝϨϯε2024 35