Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Classmethod流のPlatform Engineering / classmethod...
Search
tomoki10
July 19, 2024
Technology
1
1.4k
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
Classmethod Odysseyで発表した内容です。
https://event.classmethod.jp/odyssey-offline
tomoki10
July 19, 2024
Tweet
Share
More Decks by tomoki10
See All by tomoki10
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
290
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
420
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
610
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
1.2k
AWS CDK Conference Japan 2024 OP
tomoki10
0
790
TypeScripterに送るIaCの世界への招待〜AWS CDKと共に〜/inviting-typescripters-to-the-world-of-iac-with-aws-cdk
tomoki10
0
790
AWSでもBuildpacksを使ってDockerfileレスに出来るのか!?/can-i-use-buildpacks-to-go-dockerfile-less-in-aws
tomoki10
0
2.9k
ECS on Fargate のセキュリティ対策は何をやるべき?開発者目線で考える/security-for-ecs-on-fargate-secjawsdays
tomoki10
14
12k
AWS CDKの最強の書き方を実践してみる 2023年版/practice-the-strongest-writing-method-of-aws-cdk-2023-edition
tomoki10
4
6.9k
Other Decks in Technology
See All in Technology
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.8k
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1.1k
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
360
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2.1k
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
0
710
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
140
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
250
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
Building Products in the LLM Era
ymatsuwitter
10
5.4k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
BBQ
matthewcrist
87
9.5k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Building Your Own Lightsaber
phodgson
104
6.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Designing for humans not robots
tammielis
250
25k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Bash Introduction
62gerente
611
210k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
How GitHub (no longer) Works
holman
314
140k
Transcript
Classmethodྲྀͷ Platform Engineering 2024.7.20 ϏδωεςΫϊϩδʔ෦ ࠤ౻ஐथ
ొஃޙʰDevelopersIOʱͰهࣄ͕ ެ։͞Ε·͢ɻ ৄࡉ֬ೝ͍ͨ͠߹͓ಡΈ͍ͩ͘͞ 2 ͝ҙࣄ߲
Xͷߘͷࡍɺ ϋογϡλά #devio2024 Ͱ͓ئ͍͍ͨ͠·͢ɻ 3 ͓ئ͍
ࣗݾհ ࠤ౻ஐथ Ϋϥεϝιουגࣜձࣾ ϏδωεςΫϊϩδʔ෦ JAWS-UG CDKࢧ෦ ӡӦ ͖ͳAWSαʔϏε 4 @tmk2154
@tomoki10 Lambda CDK
ຊൃදͷత • ΰʔϧ • Platform EngineeringΛͲ͏ղऍͯ͠ɺ࣮ફ͠ Α͏ͱ͍ͯ͠Δ͔ҰྫΛΔ • ۩ମྫ͔Β໌ͷ։ൃͷώϯτΛಘΔ •
͋·Γ͞ͳ͍͜ͱ • ٕज़ͷৄࡉͷ 5
࣍ • Platform EngineeringΛߟ͑Δʹࢸͬͨഎܠ • ݱʹ߹͏PlatformͷΧλν • ICASUΞʔΩςΫνϟ • ޮՌͷଌఆ
6
࣍ • நฤ • Platform EngineeringΛߟ͑Δʹࢸͬͨഎܠ • ݱʹ߹͏PlatformͷΧλν • ۩ମฤ
• ICASUΞʔΩςΫνϟ • ޮՌͷଌఆ 7
Platform EngineeringΛ ߟ͑Δʹࢸͬͨഎܠ 8
͖͔͚ͬ 9 Կ͔৫Λ͑͑ ײ͡ʹ͢Δ͜ͱ ͬͯΈ ʢ༁ʣ ͑ɺϚδ͔͢!?
՝Λߟ͑Δલʹ 10 1PJͰͳ͘શମͷߩݙΛٻΊΒΕΔ Ҿ༻ɿ ʮελοϑΤϯδχΞʢ্ڃΤϯδχΞʣʯʹͳΔ ʹͲΜͳεΩϧΛʹ͚ͭΕ͍͍ͷͩΖ͏͔ʁɹ ٕज़తͳೳྗ͑͋͞Ε͍͍ͷͩΖ͏͔ʁɹ ͳͬͨਓɺ۩ମతʹԿΛͨ͠ͷͩΖ͏ʁɹ ͦͷࣄΛָ͠ΉʹɺͲ͏ͨ͠Β͍͍ͷͩΖ͏͔ʁ ͜ΕΒͷٙʹ͑Δͷ͕ຊॻͷతͩɻ
https://dev.classmethod.jp/articles/book-review-staff-engineer/
՝Λߟ͑Δલʹ 11 Ҿ༻ɿ • ٕज़తϕΫτϧΛଋͶΔ • ͯ͢ͷνʔϜʹಠࣗͷܾஅΛԼ͢ݖརΛ༩͑Δ ͱ͍͏Γํߟ͑ΒΕΔͩΖ͏ɻ͔͠͠ɺ͋ ΒΏΔπʔϧͷ༻ΛೝΊΔ৫ɺͲͷπʔϧ αϙʔτ͠ͳ͍৫Ͱ͋Δ(p.60)
• ৽͍͠ϓϥΫςΟεΛల։͢ΔͭΓͳΒɺ༏Εͨ ϓϥΫςΟε͚ٛΔͷͰͳ͘ਐԽͷ݁Ռ ͱͯ͠ੜ͡Δͷ(p.58) https://dev.classmethod.jp/articles/book-review-staff-engineer/
͓͓·͔ͳ৫ਤ ࣌ͷ৫ͷߏ(22࣌) 12 AWSࣄۀຊ෦ CXࣄۀຊ෦ DAࣄۀຊ෦ ৽نࣄۀ ౷ׅຊ෦ Ӧۀ౷ׅ ຊ෦
and more ↑͜͜ͷ
࣌ͷࣄۀຊ෦ͷհ 13 https://dev.classmethod.jp/articles/introduction-cx-business-unit/ https://dev.classmethod.jp/articles/cx-business-division- delivery-department-server-side-team/ ΫϥυΛͬͨडୗ։ൃϝΠϯͷ৫
طଘͷ৫͕໘͍ͯͨ͠՝ • ྑ͍ • ҰൠԽͨ͠ݟϒϩάͰڞ༗ • ͓ޓ͍ͷใڞ༗ࣗൃͰͨ·ʹ࣮ࢪ • ՝ •
डୗ։ൃͷސ٬ઌ͝ͱʹϊϋ͕ด͡Δ • PJͰͷٕज़త՝ղܾ͕ݸਓґଘ 14
ݸਓతʹײͨ͡՝ 15 ͜ͷϒϩάͰॻ͍ͨΫϩεε λοΫࢀরͷ՝͕2022Ͱ ͍ͬͯΔ߹͕͋ͬͨɻ CDKͰͷ࣮ࣄނ͋Δ͋ΔNo.1 ͕ͩͨ·ʹڞ༗͞Ε͍ͯͳ͍ɻ ͜ͷΛ1िؒʹ3ճ͢Δ͜ͱ
՝ͷରԠ • ·ͣݱঢ়ੳ • AWS W-ATeam TopologiesຊΛࢀߟʹཧ 16 https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/ operational-excellence-pillar/separated-aeo-and-ieo-with-
decentralized-governance.html
Team Topologies 17 https://qiita.com/yamamorisoba/items/be5f55701aef6dcc2be2
CX Team TopologiesʹͯΊΔ 18 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ Slack
Notion ετϦʔϜΞϥΠϯυνʔϜ͕Ҋ݅νʔϜʹ͍ۙঢ়ଶ ՝ • νʔϜ֎Ͱൃ৴͕ແ͍߹ɹ ΄΅ܨ͕Γ͕ͳ͍ • Ҋ݅νʔϜͰΔ͜ͱ͕ଟ ͍ʢϑϩϯτ/όοΫ/ϞόΠϧ/ Πϯϑϥ/IaC/CICD/ηΩϡϦ ςΟ/ࢹ/υϝΠϯࣝ/etcʣ ※੨ઢίϛϡχέʔγϣϯϥΠϯ DevelopersIO
ͳͥΓཱͬͯͨͷ͔ 19 ڧ͍ϨϕϧͷਓࡐΛ࠾༻͢Δ͜ͱͰΓཱͭʁʢ૾ʣ https://www.ipa.go.jp/jinzai/skill-standard/plus-it-ui/itssplus/ps6vr70000001j6e-att/000065687.pdf ײ֮తʹࣾ ͕͜͜ϘϦϡʔϜ κʔϯͩͬͨ ɹɹɹʴ ΫϥυʹΑΔ 1ਓͷύϫʔͷ
࠷େԽ
CX Team TopologiesʹͯΊΔ 20 ϓϥοτ ϑΥʔϜ νʔϜ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ
… ZࣾνʔϜ ][ ][ ][ ][ • ڞ௨ͱͳΔΞΫηεཧɺη ΩϡϦςΟɺCI/CDͳͲͷൣ ύλʔϯΛx as a serviceͱ͠ ͯఏڙ͢Δ • Slack্ʹཷ·͍ͬͯΔϑϩʔ ใΛετοΫใʹม͑Δ • τΠϧ(։ൃԼͷো)ɹ ղফͷώϯτΛ͢ ఆͨ͠ཧ૾
Ͳ͏ͬͯใڞ༗͢Δ͔ 21 Inner Sourceͷߟ͑ํΛࢀߟ • ৫ͷιϑτΣΞ։ൃϓϩδΣΫτΛ OSSϓϩδΣΫτͷΑ͏ʹӡӦ • ίʔυυΩϡϝϯτΛ৫Ͱ͘ڞ༗͠ɹ ୭ͰΞΫηεɾߩݙͰ͖ΔΑ͏ʹ͢Δ
• ίʔυϨϏϡʔɺPull RequestɺIssueͳͲͷ OSSతͳख๏Λ࠾༻ • ৫Ͱ։ൃ͞Εͨίʔυίϯϙʔωϯτͷ ࠶ར༻Λଅਐ https://innersourcecommons.org/ja/
Ͳ͏ͬͯใڞ༗͢Δ͔ 22 GitHubΛ໊લ௨Γٕज़ͷHUBͱ͢Δ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ڞ௨Խ͍͢͠෦ Πϯϑϥ/IaC/CICD/ɹ
ηΩϡϦςΟ/ࢹ etc ϓϥοτ ϑΥʔϜ νʔϜ
Ͳ͏ͬͯใڞ༗͢Δ͔ 23 ଞͷऔΓΈߦ͏ͨΊ໊લҰൠతͳͷʹ AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ڞ௨Խ͍͢͠෦ Πϯϑϥ/IaC/CICD/ɹ
ηΩϡϦςΟ/ࢹ etc ΞʔΩ ςΫτ νʔϜ
CX ࠷ॳͷਐΊํ 24 ΠωΠϒϦϯά νʔϜ ϓϥοτϑΥʔϜ νʔϜ AࣾνʔϜ ʢ৽ن্ཱ͛ʣ ཧ͚ͩͰશମಋೖ͢Δͱص্ͷۭͱͳΓࣦഊ
͍͢͠ͷͰɺখ͘͞ཧΛద༻ͯ͠ॳΊͯݟΔ
ݱʹ߹͏PlatformͷΧλν 25
Platformͱ 26 CNCF Platform Engineeringࢿྉ※͔ΒҰ෦Ҿ༻/ҙ༁ ※https://tag-app-delivery.cncf.io/whitepapers/platforms/ CNCF…Cloud Native Computing Foundation
• ΫϥυωΠςΟϒ ίϯϐϡʔςΟϯάͷϓϥοτϑΥʔϜɺϓϥοτ ϑΥʔϜͷϢʔβʔͷχʔζʹԠͯ͡ఆ͓ٛΑͼఏڙ͞ΕΔػೳͷ౷߹ίϨΫ γϣϯͰ͢ • ϓϥοτϑΥʔϜ͕αϙʔτ͢ΔػೳͱγφϦΦͷ۩ମతͳηοτɺརؔ ऀͱϢʔβʔͷχʔζʹΑܾͬͯఆ͢Δඞཁ͕͋Γ·͢ • ඇৗʹ୯७ͳʮϓϥοτϑΥʔϜʯɺʢதུʣϓϩόΠμʔ͔ΒػೳΛϓϩ Ϗδϣχϯά͢ΔͨΊͷඪ४ૢ࡞खॱͷϦϯΫΛؚΉ wiki ϖʔδͰ͋ΔՄೳ ੑ͕͋Γ·͢ɻ
Platformͱ 27 CNCF Platform Engineeringࢿྉ※͔ΒҰ෦Ҿ༻/ҙ༁ ※https://tag-app-delivery.cncf.io/whitepapers/platforms/ CNCF…Cloud Native Computing Foundation
• ΫϥυωΠςΟϒ ίϯϐϡʔςΟϯάͷϓϥοτϑΥʔϜɺϓϥοτ ϑΥʔϜͷϢʔβʔͷχʔζʹԠͯ͡ఆ͓ٛΑͼఏڙ͞ΕΔػೳͷ౷߹ίϨΫ γϣϯͰ͢ • ϓϥοτϑΥʔϜ͕αϙʔτ͢ΔػೳͱγφϦΦͷ۩ମతͳηοτɺརؔ ऀͱϢʔβʔͷχʔζʹΑܾͬͯఆ͢Δඞཁ͕͋Γ·͢ • ඇৗʹ୯७ͳʮϓϥοτϑΥʔϜʯɺʢதུʣϓϩόΠμʔ͔ΒػೳΛϓϩ Ϗδϣχϯά͢ΔͨΊͷඪ४ૢ࡞खॱͷϦϯΫΛؚΉ wiki ϖʔδͰ͋ΔՄ ೳੑ͕͋Γ·͢ɻ
ߟ͑ͨPlatformͷछྨ 28 • ࠷େͷPlatform • Internal Developer Potal(IDP)ͷߏஙk8sͷɹ ΫϥελʔΠϯϑϥཧΛߦ͍ɺηϧϑαʔ ϏεͰڥΛఏڙ
• ࠷খͷPlatform • ϊϋΛஷΊΔWikiΛཧ͢ΔνʔϜ
ߟ͑ͨPlatformͷछྨ 29 ࠷େͷPlatformͷΠϝʔδϝϧΧϦ͞Μʢݸਓͷ૾ʣ https://speakerdeck.com/tcnksm/platform-engineering-at-mercari-platform-engineering-kaigi-2024
CX ࣗͨͪͷ৫ͰͯΊΔ߹ 30 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ ECS ҎԼͷཧ༝Ͱݕ౼֎ʹ
• ٕज़ελοΫ͕Ҋ݅ͰҟͳΔ • ΫϥελʔཧͷӨڹ͕ଞͷ ձࣾͷҊ݅ʹӨڹ͢Δ • ηϧϑαʔϏεԽͰ͖Δ·Ͱ ͷίετ͕ߴ͍ • Γସ͑ͷ༧ࢉঝೝ͕ސ٬͝ ͱʹඞཁͰݱ࣮తͰͳ͍ Lambda EKS ࠷େͷPlatform
CX ࣗͨͪͷ৫ͰͯΊΔ߹ 31 AࣾνʔϜ BࣾνʔϜ CࣾνʔϜ … ZࣾνʔϜ Կ͔ߏங͞Ε͍͕ͯͨɹɹɹ ຖճࣅͨΑ͏ͳྲྀΕͰҰ؏ͨ͠ɹ
φϨοδूʹͳΒͳ͍ 1. Ҋ݅ʹۭ͖͕͋Δ or ࢥཱ͍ͬ ͨͱ͖ʹݕ౼͕࢝·Δ 2. Ұ୴ 3. ਓ͕ுΓ͔ͳ͍ͷͰ์ஔ 4. அยతͳφϨοδूʹͳΔ ࠷খͷPlatform φϨοδ ू 㱺େ͖ա͗ΔͱಋೖͰ͖ͳ͍ɻখ͞ա͗ͯҊ݅ͷҾྗͰҡ࣋Ͱ͖ͳ͍
த͙ؒΒ͍ͷҊ 32 ࠷େͱ࠷খͷத͙ؒΒ͍ͷҊΛ3ͭ΄Ͳݕ౼ • ΫϥυཧϓϥοτϑΥʔϜͷར༻ • AWS ServiceCatalogAWS ProtonΛར༻ •
ϥΠϒϥϦͱͯ͠ఏڙ • ίʔυͷҰ෦ΛNPMϥΠϒϥϦͳͲͱͯ͠ఏڙ • ར༻ऀύοέʔδϚωʔδϟܦ༝Ͱར༻͢Δ • αϯϓϧίʔυͱͯ͠ఏڙ • ϑϩϯτ/όοΫΤϯυ/IaCͷίʔυΛαϯϓϧͱͯ͠ఏڙ • ར༻ऀαϯϓϧΛਅࣅͯ͠هड़͢Δ
ServiceCatalogͷิ 33 • ServiceCatalog • CloudFormation/TerraformͷςϯϓϨʔτΛͱͯ͠ઃఆ͠ɺଞͷAWS ΞΧϯτͰར༻͕ՄೳʹͳΔαʔϏε https://aws.amazon.com/jp/builders-flash/202405/mizuho-service-catalog/
Protonͷิ 34 • Proton • ཧऀ͕ڥ༻/αʔϏε༻ςϯϓϨʔτΛ࡞͢Δͱɺ։ൃऀίʔυΛ ॻ͚ͩ͘ͰCI/CD͔ΒͷΞϓϦσϓϩΠ͕࣮ݱͰ͖ΔαʔϏε https://tech.anti-pattern.co.jp/letsuse-awsproton/
த͙ؒΒ͍ͷҊ 35 ͦΕͧΕͷར/ܽ • ΫϥυཧϓϥοτϑΥʔϜͷར༻ • རɿηϧϑαʔϏεͰར༻Մೳ • ܽɿΧελϚΠζੑ͕͍͠ʁӡ༻ݟ͕গͳ͍ •
ϥΠϒϥϦͱͯ͠ఏڙ • རɿύοέʔδϚωʔδϟܦ༝Ͱ͙͢ʹಋೖͰ͖Δ • ܽɿόʔδϣϯΞοϓͰӨڹൣғ֬ೝɺޙํޓੑͷҡ͕࣋ඞཁ • αϯϓϧίʔυͱͯ͠ఏڙ • རɿޙํޓੑͷҡ࣋ෆཁɻҰ෦͚ͩͰ͑Δ • ܽɿҰద༻ͨ͠ޙݹ͍όʔδϣϯͷ··ʹͳΔ
͓͞Β͍ 36 Platform ఏڙ͢ΔϨϕϧ͕͍͔ͭ͋͘Δ Level ఏڙ༰ CDKͰߟ͑Δ߹ԿΛ͏͔ 5 IDPͳͲʹΑΔશͳ ηϧϑαʔϏε
BackStage/ಠ࣮ࣗ 4 ΫϥυཧϓϥοτϑΥʔϜ ͷར༻ ServiceCatalog/Proton 3 ϥΠϒϥϦͱͯ͠ఏڙ Construct Hub/Code Artifact 2 αϯϓϧίʔυͱͯ͠ఏڙ GitHub/GitLab 1 Wikiͱͯ͠ఏڙ Notion etc.. Platform Level
͓͞Β͍ 37 Platform ఏڙ͢ΔϨϕϧ͕͍͔ͭ͋͘Δ Level ఏڙ༰ ར༻ऀෛՙ ։ൃෛՙ ґଘ 5
IDPͳͲʹΑΔશͳ ηϧϑαʔϏε େ େ 4 ΫϥυཧϓϥοτϑΥʔϜ ͷར༻ த େ 3 ϥΠϒϥϦͱͯ͠ఏڙ த த 2 αϯϓϧίʔυͱͯ͠ఏڙ த த খ 1 Wikiͱͯ͠ఏڙ ߴ খ খ Platform Level
ิ 38 ʮPlatform Engineering Maturity Modelʯࠓޙ͜ΕࢀߟʹͳΔʁ https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/
݁Ռ 39 Α͋͘ΔύλʔϯΛαϯϓϧίʔυͱͯ͠ఏڙ͢Δ͜ͱʹܾఆ ཧ༝ • ࠷ॳ͔Βଟ͘ͷਓ͔͚ΒΕͳ͍ͷͰগਓͰՌΛग़͢ඞཁ͕͋Δ • গਓͰ࢝ΊΔͨΊେنͳมߋ͍͠ • طଘͷҊ݅ͷԆͰɺྲྀ༻Մೳͳ෦ΛςϯϓϨʔτԽͯ͠ఏڙ͢Δ͜
ͱͰɺ࠷ॳͷ࣮ίετΛԼ͛ͯఏڙ͢Δ • ୯ͳΔαϯϓϧίʔυ͚ͩͰͳ͘ɺݟΛίʔυʹ߹Θͤͯڞ༗͢Δ
ܾ·ͬͨ͜ͱ 40 Α͋͘ΔύλʔϯΛαϯϓϧίʔυͱͯ͠ఏڙ͢Δ ԿΛఏڙ͢Δͷ͔ • όοΫΤϯυ • ബ͍ϨΠϠʔυΞʔΩςΫνϟͷΈఏڙ • ϑϩϯτΤϯυ
• ݕ౼͕ٕͨ͠ज़ͷҠΓมΘΓ͕ܹ͍ͨ͠Ίஅ೦ • Πϯϑϥ/CICD/ࢹ/ηΩϡϦςΟ • CDKͷίʔυͱ্ͯ͠هͷϕʔεͱͳΔઃఆΛఏڙ • Ҋ݅ͰΑ͋͘ΔLambdaϕʔε/ECSϕʔεͷ2ύλʔϯ͕ϝΠϯ
ϑΣʔζ1ɿಋೖظ 41 શ৽نͰ࡞ΔͱɺϒϩάͷใͱมΘΒͳ͘அยతͳͷͱͳΔ ܧଓཧ͕Ͱ͖Δٕज़ͳͷ͔͔Βͳ͍ ɹˣ Ҋ݅Ͱ࣮ࡍʹ͏·͍ͬͨ͘ύλʔϯΛநग़ͯ͠ςϯϓϨʔτԽ AࣾνʔϜ BࣾνʔϜ ΞʔΩςΫτνʔϜ ύλʔϯ
நग़ ςϯϓϨԽ
ϑΣʔζ2ɿ/ख़ظ 42 ֤νʔϜଆ͔ΒݟΛissuePRͱͯ͠ڞ༗ ΞʔΩςΫτ νʔϜ ֤νʔϜ ϝϯόʔ ֤νʔϜ ϝϯόʔ νʔϜؒҠಈ
ใڞ༗ ڭ ։ൃ ߩݙ ։ൃ ϝϯςφϯε
ϑΣʔζ3ɿਰୀظ 43 ݹ͍ใ͕Γଓ͚Δ͜ͱͰɺޡͬͨϓϥΫςΟε͕ࢀর͞ΕΔՄೳੑ τϨϯυͷมҟɺϝϯςφʔෆࡏͱͳͬͨςϯϓϨʔτΞʔΧΠϒ ΞʔΩςΫτ νʔϜ ΞʔΧΠϒ
ඳ͍ͨཧ૾ 44
ICASUΞʔΩςΫνϟ 45
ICASUΞʔΩςΫνϟ 46 ICASU Architecture (Iikanjini Classmethod Amazing SpeedUp)
ICASUϩΰʹ͍ͭͯ 47 σβΠφʔͷํʹ͜ͷࢪࡦΛΠϝʔδͯ͠ίϯηϓτ·ͰؚΊͨϩΰͷઃ ܭσβΠϯΨΠυϥΠϯͳͲ৭ʑ࡞͍͖ͬͯͨͩ·ͨ͠ʂ ۼ͞Μຊʹ͋Γ͕ͱ͏͍͟͝·͢ 🙏
ICASUΞʔΩςΫνϟ 48 2ύλʔϯΛఏڙʢTypeScript+CDK͕ϕʔεʣ Lambdaϕʔε ECSϕʔε
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
͍ํͷఆ 50 ICASUΞʔΩ ֤νʔϜ ϝϯόʔ ֤νʔϜ ϝϯόʔ Ҋ࣮݅ ςϯϓϨICASU_NOTEΛ ࢀߟʹ࣮͍ͯͯ͘͠͠
ෆཁͳ෦࠾༻͠ͳ͍
ECSϕʔε 51
ICASU ECSͷ֓ཁ 52 ҎԼͷػೳΛ࣮/هࡌ • ICASU NOTE • ։ൃʹඞཁͳπʔϧʢLinter/Formatter/SpellCheck/Dependabot) •
IaC • Πϯϑϥ • CI/CDύΠϓϥΠϯ • ηΩϡϦςΟʢAWSηΩϡϦςΟ/ίʔυηΩϡϦςΟʣ • αϯϓϧόοΫΤϯυ
ICASU NOTE 53 ୯ʹIaCͷςϯϓϨʔτΛ͢߹ɺઃܭ࣌ͷߟྀ͕ڞ༗͞Εʹ͍͘ ߟྀ͕ඞཁͳʹICASU NOTEͱͯ͠ίϝϯτΛهࡌ package/iac/bin/infra.tsͷத
ICASU NOTEͷߏ 54 • ಄จ • ઃܭͰΑ͘ߟྀϙΠϯτͱͳΔ෦Λهࡌ • ຊจ •
࣮ࡍʹى͖Δ DevIOͳͲಡΉ͖هࣄͷϦϯΫͳͲΛهࡌ
ICASU NOTE 55 ޙ͔ΒgrepͰશ෦ରԠͰ͖͔ͨνΣοΫϦετͱͯ͠༻Մೳ ͍ํࣗମReadmeͷICASU_NOTEʹهࡌ
։ൃʹඞཁͳπʔϧ 56 • Linter/Formatter • Biome.js • TypeScriptͷLinter/Formatterઃఆ͕ॳΊΘ͔Γʹ͍͘ͱ͍͏ίϝ ϯτ͕͋ͬͨͨΊσϑΥϧτઃఆΛఏڙ •
ECSଆγϯϓϧͳBiome.jsΛઃఆ • SpellCheck • CSpell • PRͰͷεϖϧϛεͷࢦఠΛۃྗݮΒ͠ੜ࢈ੑΛ্͛ΔͨΊՃ • IaCͷ߹ɺIDϛεͰϦιʔε࡞Γ͋͠Γ͏ΔͷͰॏཁ
Πϯϑϥ 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
CI/CDύΠϓϥΠϯ 58 GitHub ActionsͰΑ͘Ҋ݅Ͱ͏CI/CDͷجຊύλʔϯΛ࣮ • CI • PullReq࡞࣌ʹLintεφοϓγϣοτςετΛ࣮ߦ • CD
• ΠϯϑϥڥͷCDΛ࣮ • ίϯςφΛECRʹϏϧυ/ϓογϡ͢Δ·Ͱͷಈ࡞ࣗಈԽ
ηΩϡϦςΟ 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Ͱهࡌ
αϯϓϧόοΫΤϯυ 60 ಈ͘ͷ͕͋ͬͨ΄͏͕Θ͔Γ͍͢ͱ͍͏ϑΟʔυόοΫ͋ͬͨͨΊɹ ҎԼͷٕज़ελοΫΛ͏߹ͷαϯϓϧΛՃ • TypeScript • Prisma • ECS
on Fargate • Aurora
Lambdaϕʔε 61
ICASU Lambdaͷ֓ཁ 62 ҎԼͷػೳΛ࣮/هࡌ • ICASU NOTE • ։ൃʹඞཁͳπʔϧʢLinter/Formatter/SpellCheck) •
IaC • CI/CDύΠϓϥΠϯ • ϞχλϦϯά • ηΩϡϦςΟ • αϯϓϧόοΫΤϯυ
࣌ؒͷ߹Ͱলུ Ͳ͔͜Ͱผͷϝϯόʔ͔Β ৄࡉൃද͕ࠓޙ͋Δ…ͣʂ 63
ޮՌͷଌఆ 64
ޮՌͷଌఆ 65 Ͳ͏ͬͯ͜ͷࢪࡦ͕͏·͍ͬͨ͘ͱஅ͢Δ͔ ҎԼͷࢦඪΛઃఆͯ͠ɺఆྔత/ఆੑతͳධՁΛ࣮ࢪ • ఆྔతධՁࢦඪ • վળ • ৽نҊ݅Ͱͷಋೖ
• ಋೖ࣌ͷݮ • طଘҊ݅ͰͷҰ෦ػೳಋೖ • ίϯτϦϏϡʔτͷྔͱ࣭ʢPRͱissueͷʣ • GitHub OrgͷࢀՃऀʢ࣌୯ಠͷOrgΛར༻ʣ
ఆྔతධՁࢦඪͷ݁Ռ 66 ఆྔతධՁࢦඪ Ϋϥεϝιου20ظɿ20237݄ʙ20246݄ • վળ • ৽نҊ݅Ͱͷಋೖˠ4Ҋ݅ʢ20224݅ʣ • ಋೖ࣌ͷݮˠ1~2िؒ
• طଘҊ݅ͰͷҰ෦ػೳಋೖˠෆ໌ • ίϯτϦϏϡʔτͷྔͱ࣭ʢPRͱissueͷʣˠPR:140/issue:58 • GitHub OrgͷࢀՃऀʢ࣌୯ಠͷOrgΛར༻ʣˠ120ਓ
ఆྔతධՁࢦඪͷݶք 67 Ξϯέʔτ݁ՌͰݮ1~2िؒͱ͍͏ճ ্ͨͩه݁Ռ͚ͩͰޮՌ͕ଌΓ͖Εͳ͍ͱஅ • ʹͳ͍ͬͯΔ͕ݮओ؍తͳධՁ • ICASU͕ͳ͚Ε࣮ͦͦͰ͖ͳ͔ͬͨՄೳੑ • ICASU͕ͳ͔ͬͨ߹ɺಉ࣭͡ͷͷΛ࡞ΔͷʹͲΕ͚͔͔ͩͬͨͷ
͔ਖ਼֬ʹଌΔ͜ͱ͕ඇৗʹ͍͠ • A/BςετͷΑ͏ʹҰ෦ͷҊ݅Ͱ͏/Θͳ͍Λ͚Δʁ • ಉ͡Α͏ͳ݅ͷҊ݅/εΩϧϨϕϧͷਓһͷΞαΠϯݱ࣮తʁ →ఆੑతධՁݕ౼த
ICASUීٴͷͨΊͷ׆ಈ ʢ͕࣌ؒ͋Εʣ 68
લఏ 69 https://speakerdeck.com/mfpais/what-is-platform-as-a-product-and-why-should-you-care?slide=43
એ/SWAG 70 ࣮ͷ༰ࣗମΛհ͢ΔൃදΛ࣮ࢪͨ͠Γ Pull Request࡞ऀʹ͚ࣾʹSWAGΛఏڙ
·ͱΊ 71
·ͱΊ 72 • ΰʔϧ • Platform EngineeringΛͲ͏ղऍͯ͠ɺ࣮ફ͠Α͏ͱ͍ͯ͠Δ ͔ҰྫΛΔ • ࣗࣾΛTeam
TopologiesͷղऍͰੳ͠ɺঢ়گΛѲ͢Δ ۩ମྫΛఏࣔɻ৫͝ͱͷPlatform LevelΛߟ͑ɺࣗͷ ৫ʹ͋ͬͨPlatformͷΧλνΛબ • ۩ମྫ͔Β໌ͷ։ൃͷώϯτΛಘΔ • ՌύϒϦοΫʹͳ͍ͬͯΔͷͰ͝׆༻͍ͩ͘͞
None
74