Slide 1

Slide 1 text

Classmethodྲྀͷ Platform Engineering 2024.7.20 ੡଄ϏδωεςΫϊϩδʔ෦ ࠤ౻ஐथ

Slide 2

Slide 2 text

ొஃޙʰDevelopersIOʱͰهࣄ͕ ެ։͞Ε·͢ɻ ৄࡉ֬ೝ͍ͨ͠৔߹͸͓ಡΈ͍ͩ͘͞ 2 ͝஫ҙࣄ߲

Slide 3

Slide 3 text

X΁ͷ౤ߘͷࡍ͸ɺ ϋογϡλά #devio2024 Ͱ͓ئ͍͍ͨ͠·͢ɻ 3 ͓ئ͍

Slide 4

Slide 4 text

ࣗݾ঺հ ࠤ౻ஐथ Ϋϥεϝιουגࣜձࣾ ੡଄ϏδωεςΫϊϩδʔ෦ JAWS-UG CDKࢧ෦ ӡӦ ޷͖ͳAWSαʔϏε 4 @tmk2154 @tomoki10 Lambda CDK

Slide 5

Slide 5 text

ຊൃදͷ໨త • ΰʔϧ • Platform EngineeringΛͲ͏ղऍͯ͠ɺ࣮ફ͠ Α͏ͱ͍ͯ͠Δ͔ҰྫΛ஌Δ • ۩ମྫ͔Β໌೔ͷ։ൃͷώϯτΛಘΔ • ͋·Γ࿩͞ͳ͍͜ͱ • ٕज़ͷৄࡉͷ࿩ 5

Slide 6

Slide 6 text

໨࣍ • Platform EngineeringΛߟ͑Δʹࢸͬͨഎܠ • ݱ৔ʹ߹͏PlatformͷΧλν • ICASUΞʔΩςΫνϟ • ޮՌͷଌఆ 6

Slide 7

Slide 7 text

໨࣍ • ந৅ฤ • Platform EngineeringΛߟ͑Δʹࢸͬͨഎܠ • ݱ৔ʹ߹͏PlatformͷΧλν • ۩ମฤ • ICASUΞʔΩςΫνϟ • ޮՌͷଌఆ 7

Slide 8

Slide 8 text

Platform EngineeringΛ ߟ͑Δʹࢸͬͨഎܠ 8

Slide 9

Slide 9 text

͖͔͚ͬ 9 Կ͔૊৫Λ͑͑ ײ͡ʹ͢Δ͜ͱ ΍ͬͯΈ ʢ௒༁ʣ ͑ɺϚδ͔͢!?

Slide 10

Slide 10 text

՝୊Λߟ͑Δલʹ 10 1PJͰͳ͘શମ΁ͷߩݙΛٻΊΒΕΔ Ҿ༻ɿ ʮελοϑΤϯδχΞʢ௒্ڃΤϯδχΞʣʯʹͳΔ ʹ͸ͲΜͳεΩϧΛ਎ʹ͚ͭΕ͹͍͍ͷͩΖ͏͔ʁɹ ٕज़తͳೳྗ͑͋͞Ε͹͍͍ͷͩΖ͏͔ʁɹ ͳͬͨਓ͸ɺ۩ମతʹԿΛͨ͠ͷͩΖ͏ʁɹ ͦͷ࢓ࣄΛָ͠Ήʹ͸ɺͲ͏ͨ͠Β͍͍ͷͩΖ͏͔ʁ ͜ΕΒͷٙ໰ʹ౴͑Δͷ͕ຊॻͷ໨తͩɻ https://dev.classmethod.jp/articles/book-review-staff-engineer/

Slide 11

Slide 11 text

՝୊Λߟ͑Δલʹ 11 Ҿ༻ɿ • ٕज़తϕΫτϧΛଋͶΔ • ͢΂ͯͷνʔϜʹಠࣗͷܾஅΛԼ͢ݖརΛ༩͑Δ ͱ͍͏΍Γํ΋ߟ͑ΒΕΔͩΖ͏ɻ͔͠͠ɺ͋ ΒΏΔπʔϧͷ࢖༻ΛೝΊΔ૊৫͸ɺͲͷπʔϧ ΋αϙʔτ͠ͳ͍૊৫Ͱ΋͋Δ(p.60) • ৽͍͠ϓϥΫςΟεΛల։͢Δͭ΋ΓͳΒɺ༏Εͨ ϓϥΫςΟε͸ٛ຿෇͚Δ΋ͷͰ͸ͳ͘ਐԽͷ݁Ռ ͱͯ͠ੜ͡Δ΋ͷ(p.58) https://dev.classmethod.jp/articles/book-review-staff-engineer/

Slide 12

Slide 12 text

͓͓·͔ͳ૊৫ਤ ౰࣌ͷ૊৫ͷߏ੒(22೥౰࣌) 12 AWSࣄۀຊ෦ CXࣄۀຊ෦ DAࣄۀຊ෦ ৽نࣄۀ ౷ׅຊ෦ Ӧۀ౷ׅ ຊ෦ and more ↑͜͜ͷ࿩

Slide 13

Slide 13 text

౰࣌ͷࣄۀຊ෦ͷ঺հ 13 https://dev.classmethod.jp/articles/introduction-cx-business-unit/ https://dev.classmethod.jp/articles/cx-business-division- delivery-department-server-side-team/ Ϋϥ΢υΛ࢖ͬͨडୗ։ൃϝΠϯͷ૊৫

Slide 14

Slide 14 text

طଘͷ૊৫͕௚໘͍ͯͨ͠՝୊ • ྑ͍఺ • ҰൠԽͨ͠஌ݟ͸ϒϩάͰڞ༗ • ͓ޓ͍ͷ৘ใڞ༗͸ࣗൃͰͨ·ʹ࣮ࢪ • ՝୊ • डୗ։ൃͷސ٬ઌ͝ͱʹϊ΢ϋ΢͕ด͡Δ • PJͰͷٕज़త՝୊ղܾ͕ݸਓґଘ 14

Slide 15

Slide 15 text

ݸਓతʹײͨ͡՝୊ 15 ͜ͷϒϩάͰॻ͍ͨΫϩεε λοΫࢀরͷ՝୊͕2022೥Ͱ΋ ΍͍ͬͯΔ৔߹͕͋ͬͨɻ CDKͰͷ࣮૷ࣄނ͋Δ͋ΔNo.1 ͕ͩͨ·ʹڞ༗͞Ε͍ͯͳ͍ɻ ͜ͷ࿩Λ1िؒʹ3ճ͢Δ͜ͱ΋

Slide 16

Slide 16 text

՝୊΁ͷରԠ • ·ͣ͸ݱঢ়෼ੳ • AWS W-A΍Team TopologiesຊΛࢀߟʹ੔ཧ 16 https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/ operational-excellence-pillar/separated-aeo-and-ieo-with- decentralized-governance.html

Slide 17

Slide 17 text

Team Topologies 17 https://qiita.com/yamamorisoba/items/be5f55701aef6dcc2be2

Slide 18

Slide 18 text

CX Team Topologiesʹ౰ͯ͸ΊΔ 18 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ Slack Notion ετϦʔϜΞϥΠϯυνʔϜ͕Ҋ݅νʔϜʹ͍ۙঢ়ଶ ՝୊ • νʔϜ֎Ͱൃ৴͕ແ͍৔߹ɹ ΄΅ܨ͕Γ͕ͳ͍ • Ҋ݅νʔϜ಺Ͱ΍Δ͜ͱ͕ଟ ͍ʢϑϩϯτ/όοΫ/ϞόΠϧ/ Πϯϑϥ/IaC/CICD/ηΩϡϦ ςΟ/؂ࢹ/υϝΠϯ஌ࣝ/etcʣ ※੨ઢ͸ίϛϡχέʔγϣϯϥΠϯ DevelopersIO

Slide 19

Slide 19 text

ͳͥ੒Γཱͬͯͨͷ͔ 19 ڧ͍ϨϕϧͷਓࡐΛ࠾༻͢Δ͜ͱͰ੒Γཱͭʁʢ૝૾ʣ https://www.ipa.go.jp/jinzai/skill-standard/plus-it-ui/itssplus/ps6vr70000001j6e-att/000065687.pdf ײ֮తʹࣾ಺͸ ͕͜͜ϘϦϡʔϜ κʔϯͩͬͨ ɹɹɹʴ Ϋϥ΢υʹΑΔ 1ਓͷύϫʔͷ ࠷େԽ

Slide 20

Slide 20 text

CX Team Topologiesʹ౰ͯ͸ΊΔ 20 ϓϥοτ ϑΥʔϜ νʔϜ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ][ ][ ][ ][ • ڞ௨ͱͳΔΞΫηε؅ཧɺη ΩϡϦςΟɺCI/CDͳͲͷ໛ൣ ύλʔϯΛx as a serviceͱ͠ ͯఏڙ͢Δ • Slack্ʹཷ·͍ͬͯΔϑϩʔ ৘ใΛετοΫ৘ใʹม͑Δ • τΠϧ(։ൃ଎౓௿Լͷো֐)ɹ ղফͷώϯτΛ࢒͢ ૝ఆͨ͠ཧ૝૾

Slide 21

Slide 21 text

Ͳ͏΍ͬͯ৘ใڞ༗͢Δ͔ 21 Inner Sourceͷߟ͑ํΛࢀߟ • ૊৫಺ͷιϑτ΢ΣΞ։ൃϓϩδΣΫτΛ OSSϓϩδΣΫτͷΑ͏ʹӡӦ • ίʔυ΍υΩϡϝϯτΛ૊৫಺Ͱ޿͘ڞ༗͠ɹ ୭Ͱ΋ΞΫηεɾߩݙͰ͖ΔΑ͏ʹ͢Δ • ίʔυϨϏϡʔɺPull RequestɺIssueͳͲͷ OSSతͳख๏Λ࠾༻ • ૊৫಺Ͱ։ൃ͞Εͨίʔυ΍ίϯϙʔωϯτͷ ࠶ར༻Λଅਐ https://innersourcecommons.org/ja/

Slide 22

Slide 22 text

Ͳ͏΍ͬͯ৘ใڞ༗͢Δ͔ 22 GitHubΛ໊લ௨Γٕज़ͷHUBͱ͢Δ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ڞ௨Խ͠΍͍͢෦෼ Πϯϑϥ/IaC/CICD/ɹ ηΩϡϦςΟ/؂ࢹ etc ϓϥοτ ϑΥʔϜ νʔϜ

Slide 23

Slide 23 text

Ͳ͏΍ͬͯ৘ใڞ༗͢Δ͔ 23 ଞͷऔΓ૊Έ΋ߦ͏ͨΊ໊લ͸Ұൠతͳ΋ͷʹ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ڞ௨Խ͠΍͍͢෦෼ Πϯϑϥ/IaC/CICD/ɹ ηΩϡϦςΟ/؂ࢹ etc ΞʔΩ ςΫτ νʔϜ

Slide 24

Slide 24 text

CX ࠷ॳͷਐΊํ 24 ΠωΠϒϦϯά νʔϜ ϓϥοτϑΥʔϜ νʔϜ AࣾνʔϜ ʢ৽ن্ཱ͛ʣ ཧ࿦͚ͩͰશମಋೖ͢Δͱص্ͷۭ࿦ͱͳΓࣦഊ ͠΍͍͢ͷͰɺখ͘͞ཧ࿦Λద༻ͯ͠ॳΊͯݟΔ

Slide 25

Slide 25 text

ݱ৔ʹ߹͏PlatformͷΧλν 25

Slide 26

Slide 26 text

Platformͱ͸ 26 CNCF Platform Engineeringࢿྉ※͔ΒҰ෦Ҿ༻/ҙ༁ ※https://tag-app-delivery.cncf.io/whitepapers/platforms/ CNCF…Cloud Native Computing Foundation • Ϋϥ΢υωΠςΟϒ ίϯϐϡʔςΟϯάͷϓϥοτϑΥʔϜ͸ɺϓϥοτ ϑΥʔϜͷϢʔβʔͷχʔζʹԠͯ͡ఆ͓ٛΑͼఏڙ͞ΕΔػೳͷ౷߹ίϨΫ γϣϯͰ͢ • ϓϥοτϑΥʔϜ͕αϙʔτ͢ΔػೳͱγφϦΦͷ۩ମతͳηοτ͸ɺར֐ؔ ܎ऀͱϢʔβʔͷχʔζʹΑܾͬͯఆ͢Δඞཁ͕͋Γ·͢ • ඇৗʹ୯७ͳʮϓϥοτϑΥʔϜʯ͸ɺʢதུʣϓϩόΠμʔ͔ΒػೳΛϓϩ Ϗδϣχϯά͢ΔͨΊͷඪ४ૢ࡞खॱ΁ͷϦϯΫΛؚΉ wiki ϖʔδͰ͋ΔՄೳ ੑ͕͋Γ·͢ɻ

Slide 27

Slide 27 text

Platformͱ͸ 27 CNCF Platform Engineeringࢿྉ※͔ΒҰ෦Ҿ༻/ҙ༁ ※https://tag-app-delivery.cncf.io/whitepapers/platforms/ CNCF…Cloud Native Computing Foundation • Ϋϥ΢υωΠςΟϒ ίϯϐϡʔςΟϯάͷϓϥοτϑΥʔϜ͸ɺϓϥοτ ϑΥʔϜͷϢʔβʔͷχʔζʹԠͯ͡ఆ͓ٛΑͼఏڙ͞ΕΔػೳͷ౷߹ίϨΫ γϣϯͰ͢ • ϓϥοτϑΥʔϜ͕αϙʔτ͢ΔػೳͱγφϦΦͷ۩ମతͳηοτ͸ɺར֐ؔ ܎ऀͱϢʔβʔͷχʔζʹΑܾͬͯఆ͢Δඞཁ͕͋Γ·͢ • ඇৗʹ୯७ͳʮϓϥοτϑΥʔϜʯ͸ɺʢதུʣϓϩόΠμʔ͔ΒػೳΛϓϩ Ϗδϣχϯά͢ΔͨΊͷඪ४ૢ࡞खॱ΁ͷϦϯΫΛؚΉ wiki ϖʔδͰ͋ΔՄ ೳੑ͕͋Γ·͢ɻ

Slide 28

Slide 28 text

ߟ͑ͨPlatformͷछྨ 28 • ࠷େͷPlatform • Internal Developer Potal(IDP)ͷߏங΍k8sͷɹ Ϋϥελʔ΍Πϯϑϥ؅ཧΛߦ͍ɺηϧϑαʔ ϏεͰ؀ڥΛఏڙ • ࠷খͷPlatform • ϊ΢ϋ΢ΛஷΊΔWikiΛ؅ཧ͢ΔνʔϜ

Slide 29

Slide 29 text

ߟ͑ͨPlatformͷछྨ 29 ࠷େͷPlatformͷΠϝʔδ͸ϝϧΧϦ͞Μʢݸਓͷ૝૾ʣ https://speakerdeck.com/tcnksm/platform-engineering-at-mercari-platform-engineering-kaigi-2024

Slide 30

Slide 30 text

CX ࣗ෼ͨͪͷ૊৫Ͱ౰ͯ͸ΊΔ৔߹ 30 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ECS ҎԼͷཧ༝Ͱݕ౼֎ʹ • ٕज़ελοΫ͕Ҋ݅ͰҟͳΔ • Ϋϥελʔ؅ཧͷӨڹ͕ଞͷ ձࣾͷҊ݅ʹ΋Өڹ͢Δ • ηϧϑαʔϏεԽͰ͖Δ·Ͱ ͷίετ͕ߴ͍ • ੾Γସ͑ͷ༧ࢉঝೝ͕ސ٬͝ ͱʹඞཁͰݱ࣮తͰͳ͍ Lambda EKS ࠷େͷPlatform

Slide 31

Slide 31 text

CX ࣗ෼ͨͪͷ૊৫Ͱ౰ͯ͸ΊΔ৔߹ 31 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ Կ౓͔ߏங͸͞Ε͍͕ͯͨɹɹɹ ຖճࣅͨΑ͏ͳྲྀΕͰҰ؏ͨ͠ɹ φϨοδूʹͳΒͳ͍ 1. Ҋ݅ʹۭ͖͕͋Δ or ࢥཱ͍ͬ ͨͱ͖ʹݕ౼͕࢝·Δ 2. Ұ୴׬੒ 3. ਓ͕ுΓ෇͔ͳ͍ͷͰ์ஔ 4. அยతͳφϨοδूʹͳΔ ࠷খͷPlatform φϨοδ ू 㱺େ͖ա͗ΔͱಋೖͰ͖ͳ͍ɻখ͞ա͗ͯ΋Ҋ݅ͷҾྗͰҡ࣋Ͱ͖ͳ͍

Slide 32

Slide 32 text

த͙ؒΒ͍ͷҊ 32 ࠷େͱ࠷খͷத͙ؒΒ͍ͷҊΛ3ͭ΄Ͳݕ౼ • Ϋϥ΢υ؅ཧϓϥοτϑΥʔϜͷར༻ • AWS ServiceCatalog΍AWS ProtonΛར༻ • ϥΠϒϥϦͱͯ͠ఏڙ • ίʔυͷҰ෦ΛNPMϥΠϒϥϦͳͲͱͯ͠ఏڙ • ར༻ऀ͸ύοέʔδϚωʔδϟܦ༝Ͱར༻͢Δ • αϯϓϧίʔυͱͯ͠ఏڙ • ϑϩϯτ/όοΫΤϯυ/IaCͷίʔυΛαϯϓϧͱͯ͠ఏڙ • ར༻ऀ͸αϯϓϧΛਅࣅͯ͠هड़͢Δ

Slide 33

Slide 33 text

ServiceCatalogͷิ଍ 33 • ServiceCatalog • CloudFormation/TerraformͷςϯϓϨʔτΛ੡඼ͱͯ͠ઃఆ͠ɺଞͷAWS ΞΧ΢ϯτͰར༻͕ՄೳʹͳΔαʔϏε https://aws.amazon.com/jp/builders-flash/202405/mizuho-service-catalog/

Slide 34

Slide 34 text

Protonͷิ଍ 34 • Proton • ؅ཧऀ͕؀ڥ༻/αʔϏε༻ςϯϓϨʔτΛ࡞੒͢Δͱɺ։ൃऀ͸ίʔυΛ ॻ͚ͩ͘ͰCI/CD͔ΒͷΞϓϦσϓϩΠ͕࣮ݱͰ͖ΔαʔϏε https://tech.anti-pattern.co.jp/letsuse-awsproton/

Slide 35

Slide 35 text

த͙ؒΒ͍ͷҊ 35 ͦΕͧΕͷར఺/ܽ఺ • Ϋϥ΢υ؅ཧϓϥοτϑΥʔϜͷར༻ • ར఺ɿηϧϑαʔϏεͰར༻Մೳ • ܽ఺ɿΧελϚΠζੑ͕๡͍͠ʁӡ༻஌ݟ͕গͳ͍ • ϥΠϒϥϦͱͯ͠ఏڙ • ར఺ɿύοέʔδϚωʔδϟܦ༝Ͱ͙͢ʹಋೖͰ͖Δ • ܽ఺ɿόʔδϣϯΞοϓͰӨڹൣғ֬ೝɺޙํޓ׵ੑͷҡ͕࣋ඞཁ • αϯϓϧίʔυͱͯ͠ఏڙ • ར఺ɿޙํޓ׵ੑͷҡ࣋͸ෆཁɻҰ෦͚ͩͰ΋࢖͑Δ • ܽ఺ɿҰ౓ద༻ͨ͠ޙ͸ݹ͍όʔδϣϯͷ··ʹͳΔ

Slide 36

Slide 36 text

͓͞Β͍ 36 Platform ͸ఏڙ͢ΔϨϕϧ͕͍͔ͭ͋͘Δ Level ఏڙ಺༰ CDKͰߟ͑Δ৔߹ԿΛ࢖͏͔ 5 IDPͳͲʹΑΔ׬શͳ ηϧϑαʔϏε BackStage/ಠ࣮ࣗ૷ 4 Ϋϥ΢υ؅ཧϓϥοτϑΥʔϜ ͷར༻ ServiceCatalog/Proton 3 ϥΠϒϥϦͱͯ͠ఏڙ Construct Hub/Code Artifact 2 αϯϓϧίʔυͱͯ͠ఏڙ GitHub/GitLab 1 Wikiͱͯ͠ఏڙ Notion etc.. Platform Level

Slide 37

Slide 37 text

͓͞Β͍ 37 Platform ͸ఏڙ͢ΔϨϕϧ͕͍͔ͭ͋͘Δ Level ఏڙ಺༰ ར༻ऀෛՙ ։ൃෛՙ ґଘ౓ 5 IDPͳͲʹΑΔ׬શͳ ηϧϑαʔϏε ௿ େ େ 4 Ϋϥ΢υ؅ཧϓϥοτϑΥʔϜ ͷར༻ ௿ த େ 3 ϥΠϒϥϦͱͯ͠ఏڙ ௿ த த 2 αϯϓϧίʔυͱͯ͠ఏڙ த த খ 1 Wikiͱͯ͠ఏڙ ߴ খ খ Platform Level

Slide 38

Slide 38 text

ิ଍ 38 ʮPlatform Engineering Maturity Modelʯࠓޙ͸͜Ε΋ࢀߟʹͳΔʁ https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/

Slide 39

Slide 39 text

݁Ռ 39 Α͋͘ΔύλʔϯΛαϯϓϧίʔυͱͯ͠ఏڙ͢Δ͜ͱʹܾఆ ཧ༝ • ࠷ॳ͔Βଟ͘ͷਓ਺͸͔͚ΒΕͳ͍ͷͰগਓ਺Ͱ੒ՌΛग़͢ඞཁ͕͋Δ • গਓ਺Ͱ࢝ΊΔͨΊେن໛ͳมߋ͸೉͍͠ • طଘͷҊ݅ͷԆ௕Ͱɺྲྀ༻Մೳͳ෦෼ΛςϯϓϨʔτԽͯ͠ఏڙ͢Δ͜ ͱͰɺ࠷ॳͷ࣮૷ίετΛԼ͛ͯఏڙ͢Δ • ୯ͳΔαϯϓϧίʔυ͚ͩͰͳ͘ɺ஌ݟΛίʔυʹ߹Θͤͯڞ༗͢Δ

Slide 40

Slide 40 text

ܾ·ͬͨ͜ͱ 40 Α͋͘ΔύλʔϯΛαϯϓϧίʔυͱͯ͠ఏڙ͢Δ ԿΛఏڙ͢Δͷ͔ • όοΫΤϯυ • ബ͍ϨΠϠʔυΞʔΩςΫνϟͷΈఏڙ • ϑϩϯτΤϯυ • ݕ౼͕ٕͨ͠ज़ͷҠΓมΘΓ͕ܹ͍ͨ͠Ίஅ೦ • Πϯϑϥ/CICD/؂ࢹ/ηΩϡϦςΟ • CDKͷίʔυͱ্ͯ͠هͷϕʔεͱͳΔઃఆΛఏڙ • Ҋ݅ͰΑ͋͘ΔLambdaϕʔε/ECSϕʔεͷ2ύλʔϯ͕ϝΠϯ

Slide 41

Slide 41 text

ϑΣʔζ1ɿಋೖظ 41 ׬શ৽نͰ࡞Δͱɺϒϩάͷ৘ใͱมΘΒͳ͘அยతͳ΋ͷͱͳΔ ܧଓ؅ཧ͕Ͱ͖Δٕज़ͳͷ͔෼͔Βͳ͍ ɹˣ Ҋ݅Ͱ࣮ࡍʹ͏·͍ͬͨ͘ύλʔϯΛநग़ͯ͠ςϯϓϨʔτԽ AࣾνʔϜ BࣾνʔϜ ΞʔΩςΫτνʔϜ ύλʔϯ நग़ ςϯϓϨԽ

Slide 42

Slide 42 text

ϑΣʔζ2ɿ੒௕/੒ख़ظ 42 ֤νʔϜଆ͔Β΋஌ݟΛissue΍PRͱͯ͠ڞ༗ ΞʔΩςΫτ νʔϜ ֤νʔϜ ϝϯόʔ ֤νʔϜ ϝϯόʔ νʔϜؒҠಈ ৘ใڞ༗ ෍ڭ ։ൃ ߩݙ ։ൃ ϝϯςφϯε

Slide 43

Slide 43 text

ϑΣʔζ3ɿਰୀظ 43 ݹ͍৘ใ͕࢒Γଓ͚Δ͜ͱͰɺޡͬͨϓϥΫςΟε͕ࢀর͞ΕΔՄೳੑ τϨϯυͷมҟɺϝϯςφʔෆࡏͱͳͬͨςϯϓϨʔτ͸ΞʔΧΠϒ ΞʔΩςΫτ νʔϜ ΞʔΧΠϒ

Slide 44

Slide 44 text

ඳ͍ͨཧ૝૾ 44

Slide 45

Slide 45 text

ICASUΞʔΩςΫνϟ 45

Slide 46

Slide 46 text

ICASUΞʔΩςΫνϟ 46 ICASU Architecture (Iikanjini Classmethod Amazing SpeedUp)

Slide 47

Slide 47 text

ICASUϩΰʹ͍ͭͯ 47 σβΠφʔͷํʹ͜ͷࢪࡦΛΠϝʔδͯ͠ίϯηϓτ·ͰؚΊͨϩΰͷઃ ܭ΍σβΠϯΨΠυϥΠϯͳͲ৭ʑ࡞͍͖ͬͯͨͩ·ͨ͠ʂ ۼ͞Μຊ౰ʹ͋Γ͕ͱ͏͍͟͝·͢ 🙏

Slide 48

Slide 48 text

ICASUΞʔΩςΫνϟ 48 2ύλʔϯΛఏڙʢTypeScript+CDK͕ϕʔεʣ Lambdaϕʔε ECSϕʔε

Slide 49

Slide 49 text

ICASUΞʔΩςΫνϟ 49 2ύλʔϯΛఏڙʢTypeScript+CDK͕ϕʔεʣ Lambdaϕʔε ECSϕʔε https://github.com/classmethod/icasu-cdk-serverless-api-sample https://github.com/classmethod/icasu-cdk-ecs-fargate-sample

Slide 50

Slide 50 text

࢖͍ํͷ૝ఆ 50 ICASUΞʔΩ ֤νʔϜ ϝϯόʔ ֤νʔϜ ϝϯόʔ Ҋ࣮݅૷ ςϯϓϨ΍ICASU_NOTEΛ ࢀߟʹ࣮ͯ͠૷͍ͯ͘͠ ෆཁͳ෦෼͸࠾༻͠ͳ͍

Slide 51

Slide 51 text

ECSϕʔε 51

Slide 52

Slide 52 text

ICASU ECSͷ֓ཁ 52 ҎԼͷػೳΛ࣮૷/هࡌ • ICASU NOTE • ։ൃʹඞཁͳπʔϧʢLinter/Formatter/SpellCheck/Dependabot) • IaC • Πϯϑϥ • CI/CDύΠϓϥΠϯ • ηΩϡϦςΟʢAWSηΩϡϦςΟ/ίʔυηΩϡϦςΟʣ • αϯϓϧόοΫΤϯυ

Slide 53

Slide 53 text

ICASU NOTE 53 ୯ʹIaCͷςϯϓϨʔτΛ౉͢৔߹ɺઃܭ࣌ͷߟྀ఺͕ڞ༗͞Εʹ͍͘ ߟྀ͕ඞཁͳ఺ʹICASU NOTEͱͯ͠ίϝϯτΛهࡌ package/iac/bin/infra.tsͷத਎

Slide 54

Slide 54 text

ICASU NOTEͷߏ੒ 54 • ๯಄จ • ઃܭͰΑ͘ߟྀϙΠϯτͱͳΔ෦෼Λهࡌ • ຊจ • ࣮ࡍʹى͖Δ໰୊΍ DevIOͳͲಡΉ΂͖هࣄͷϦϯΫͳͲΛهࡌ

Slide 55

Slide 55 text

ICASU NOTE 55 ޙ͔ΒgrepͰશ෦ରԠͰ͖͔ͨνΣοΫϦετͱͯ͠΋࢖༻Մೳ ࢖͍ํࣗମ͸ReadmeͷICASU_NOTEʹهࡌ

Slide 56

Slide 56 text

։ൃʹඞཁͳπʔϧ 56 • Linter/Formatter • Biome.js • TypeScriptͷLinter/Formatterઃఆ͕ॳΊΘ͔Γʹ͍͘ͱ͍͏ίϝ ϯτ͕͋ͬͨͨΊσϑΥϧτઃఆΛఏڙ • ECSଆ͸γϯϓϧͳBiome.jsΛઃఆ • SpellCheck • CSpell • PRͰͷεϖϧϛεͷࢦఠΛۃྗݮΒ͠ੜ࢈ੑΛ্͛ΔͨΊ௥Ճ • IaCͷ৔߹ɺIDϛεͰϦιʔε࡞Γ௚͠΋͋Γ͏ΔͷͰॏཁ

Slide 57

Slide 57 text

Πϯϑϥ 57 యܕతͳΠϯϑϥύλʔϯΛCDKͱͯ͠هड़͠ਅࣅͰ͖ΔΑ͏ʹఏڙ • CDKࣗମͷॻ͖ํ • VPCؔ࿈ • NAT Gateway/NAT Instance • SecurityGroup/NetworkACL • VPC Endpoint • ECR • ECS • Cluster/Service/Container • ALB • Aurora(MySQL) • CloudWatch Logs • Cognito • WAF • Other • GitHub Actions Role

Slide 58

Slide 58 text

CI/CDύΠϓϥΠϯ 58 GitHub ActionsͰΑ͘Ҋ݅Ͱ࢖͏CI/CDͷجຊύλʔϯΛ࣮૷ • CI • PullReq࡞੒࣌ʹLint΍εφοϓγϣοτςετΛ࣮ߦ • CD • Πϯϑϥ؀ڥͷCDΛ࣮૷ • ίϯςφΛECRʹϏϧυ/ϓογϡ͢Δ·Ͱͷಈ࡞͸ࣗಈԽ

Slide 59

Slide 59 text

ηΩϡϦςΟ 59 https://dev.classmethod.jp/articles/security-for-ecs-on-fargate- secjawsdays/ ӈهͷొஃͰߟ͑ͨରԠΛͰ͖ΔݶΓ ίʔυʹ੝ΓࠐΉ ҎԼͦΕͧΕͷϨΠϠʔ͝ͱʹهࡌ • Application…WAF/Dependabot etc… • Container…ECS • Image…ECR • Registry…ECR • Network…VPC etc… ߟྀ఺͸ICASU_NOTEͰهࡌ

Slide 60

Slide 60 text

αϯϓϧόοΫΤϯυ 60 ಈ͘΋ͷ͕͋ͬͨ΄͏͕Θ͔Γ΍͍͢ͱ͍͏ϑΟʔυόοΫ΋͋ͬͨͨΊɹ ҎԼͷٕज़ελοΫΛ࢖͏৔߹ͷαϯϓϧΛ௥Ճ • TypeScript • Prisma • ECS on Fargate • Aurora

Slide 61

Slide 61 text

Lambdaϕʔε 61

Slide 62

Slide 62 text

ICASU Lambdaͷ֓ཁ 62 ҎԼͷػೳΛ࣮૷/هࡌ • ICASU NOTE • ։ൃʹඞཁͳπʔϧʢLinter/Formatter/SpellCheck) • IaC • CI/CDύΠϓϥΠϯ • ϞχλϦϯά • ηΩϡϦςΟ • αϯϓϧόοΫΤϯυ

Slide 63

Slide 63 text

࣌ؒͷ౎߹Ͱলུ Ͳ͔͜Ͱผͷϝϯόʔ͔Β ৄࡉൃද͕ࠓޙ͋Δ…͸ͣʂ 63

Slide 64

Slide 64 text

ޮՌͷଌఆ 64

Slide 65

Slide 65 text

ޮՌͷଌఆ 65 Ͳ͏΍ͬͯ͜ͷࢪࡦ͕͏·͍ͬͨ͘ͱ൑அ͢Δ͔ ҎԼͷࢦඪΛઃఆͯ͠ɺఆྔత/ఆੑతͳධՁΛ࣮ࢪ • ఆྔతධՁࢦඪ • ޻਺վળ • ৽نҊ݅Ͱͷಋೖ਺ • ಋೖ࣌ͷ࡟ݮ޻਺ • طଘҊ݅ͰͷҰ෦ػೳಋೖ਺ • ίϯτϦϏϡʔτͷྔͱ࣭ʢPRͱissueͷ਺ʣ • GitHub Org΁ͷࢀՃऀ਺ʢ౰࣌୯ಠͷOrgΛར༻ʣ

Slide 66

Slide 66 text

ఆྔతධՁࢦඪͷ݁Ռ 66 ఆྔతධՁࢦඪ Ϋϥεϝιου20ظɿ2023೥7݄ʙ2024೥6݄ • ޻਺վળ • ৽نҊ݅Ͱͷಋೖ਺ˠ4Ҋ݅ʢ2022೥౓͸4݅ʣ • ಋೖ࣌ͷ࡟ݮ޻਺ˠ1~2िؒ • طଘҊ݅ͰͷҰ෦ػೳಋೖ਺ˠෆ໌ • ίϯτϦϏϡʔτͷྔͱ࣭ʢPRͱissueͷ਺ʣˠPR:140/issue:58 • GitHub Org΁ͷࢀՃऀ਺ʢ౰࣌୯ಠͷOrgΛར༻ʣˠ120ਓ

Slide 67

Slide 67 text

ఆྔతධՁࢦඪͷݶք 67 Ξϯέʔτ݁ՌͰ͸޻਺࡟ݮ͸1~2िؒͱ͍͏ճ౴ ্ͨͩه݁Ռ͚ͩͰ͸ޮՌ͕ଌΓ͖Εͳ͍ͱ൑அ • ਺஋ʹ͸ͳ͍ͬͯΔ͕࡟ݮ޻਺͸ओ؍తͳධՁ • ICASU͕ͳ͚Ε͹ͦ΋ͦ΋࣮૷Ͱ͖ͳ͔ͬͨՄೳੑ • ICASU͕ͳ͔ͬͨ৔߹ɺಉ࣭͡ͷ΋ͷΛ࡞ΔͷʹͲΕ͚͔͔ͩͬͨͷ ͔ਖ਼֬ʹଌΔ͜ͱ͕ඇৗʹ೉͍͠ • A/BςετͷΑ͏ʹҰ෦ͷҊ݅Ͱ࢖͏/࢖Θͳ͍Λ෼͚Δʁ • ಉ͡Α͏ͳ৚݅ͷҊ݅/εΩϧϨϕϧͷਓһͷΞαΠϯ͸ݱ࣮తʁ →ఆੑతධՁ΋ݕ౼த

Slide 68

Slide 68 text

ICASUීٴͷͨΊͷ׆ಈ ʢ͕࣌ؒ͋Ε͹ʣ 68

Slide 69

Slide 69 text

લఏ 69 https://speakerdeck.com/mfpais/what-is-platform-as-a-product-and-why-should-you-care?slide=43

Slide 70

Slide 70 text

એ఻/SWAG 70 ࣮૷ͷ಺༰ࣗମΛ঺հ͢ΔൃදΛ࣮ࢪͨ͠Γ Pull Request࡞੒ऀʹ͸ࣾ಺޲͚ʹSWAGΛఏڙ

Slide 71

Slide 71 text

·ͱΊ 71

Slide 72

Slide 72 text

·ͱΊ 72 • ΰʔϧ • Platform EngineeringΛͲ͏ղऍͯ͠ɺ࣮ફ͠Α͏ͱ͍ͯ͠Δ ͔ҰྫΛ஌Δ • ࣗࣾΛTeam TopologiesͷղऍͰ෼ੳ͠ɺঢ়گΛ೺Ѳ͢Δ ۩ମྫΛఏࣔɻ૊৫͝ͱͷPlatform LevelΛߟ͑ɺࣗ෼ͷ ૊৫ʹ͋ͬͨPlatformͷΧλνΛબ୒ • ۩ମྫ͔Β໌೔ͷ։ൃͷώϯτΛಘΔ • ੒Ռ෺͸ύϒϦοΫʹͳ͍ͬͯΔͷͰ͝׆༻͍ͩ͘͞

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

74