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.8k
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 Vibe Coding Fes
tomoki10
1
820
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
990
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
1
2.2k
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
2
3.6k
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
3.1k
AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜/jaws-days-2025-cdk-panel-discussion
tomoki10
0
140
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-introduction
tomoki10
9
2.8k
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
760
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
520
Other Decks in Technology
See All in Technology
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
250
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
240
研究開発と製品開発、両利きのロボティクス
youtalk
1
530
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
280
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1k
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
640
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
120
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
450
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
420
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Practical Orchestrator
shlominoach
190
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Building Adaptive Systems
keathley
43
2.7k
Optimizing for Happiness
mojombo
379
70k
GitHub's CSS Performance
jonrohan
1032
460k
Designing Experiences People Love
moore
142
24k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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