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
モノレポによるマイクロサービスアーキテクチャの開発運用
Search
Yuta Shimakawa
March 08, 2023
Technology
6.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モノレポによるマイクロサービスアーキテクチャの開発運用
マイクロサービスのコードベース管理手法の一つであるモノレポによる開発のメリット・デメリットに触れつつ、実際の開発現場における運用上の工夫について紹介します
Yuta Shimakawa
March 08, 2023
More Decks by Yuta Shimakawa
See All by Yuta Shimakawa
How much English do you really need? - English for Engineering Career Meetup #1
bananaumai
0
140
現場のデータを集める技術
bananaumai
0
220
Build real world data collecting architecture with Goroutine and Channel
bananaumai
1
730
Other Decks in Technology
See All in Technology
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
360
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
960
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
130
Digitization部 紹介資料
sansan33
PRO
2
7.8k
AI駆動開発を組織で促すために
lycorptech_jp
PRO
7
8.7k
markdown-poster Introduction
kazamori
0
400
EUDIWの枠組みを出発点に民間エコシステムの在り方を考える(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
350
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
830
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
360
ハッカソンで入賞した話 @ Findy LT
asari194617
0
1.5k
あなたの知らないバージョン命名規則
sat
PRO
2
850
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.2k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
Fireside Chat
paigeccino
42
4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
560
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
500
WENDY [Excerpt]
tessaabrams
12
39k
Evolving SEO for Evolving Search Engines
ryanjones
0
270
Transcript
© 2023 MODE, Inc. モノレポによる マイクロサービスアーキテクチャの開発運用 MODE, Inc. YUTA Shimakawa
1 2023/03/09 "良い開発者体験"にむけた国内/海外のアーキテクチャLT会 AWS編
© 2023 MODE, Inc. • SWE in the tech industry
for 10+ years • Joined MODE, Inc. 2019 • Backend & DevOps • SNS ◦ Twitter: @banana_umai ◦ GitHub: @bananaumai ◦ LinkedIn: Yuta Shimakawa YUTA Shimakawa 島川 悠太 Yuta Shimakawa 2
© 2023 MODE, Inc. MODE, Inc. 拠点:シリコンバレー、東京 2014年〜 シリコンバレー 2017年〜
東京 創業者:上田 学 /イーサン・カン 3 センサーからデータ集めて可視化・分析するた めの技術を軸に、現実世界のビジネス業務を改 善するためのIoT * DXなソリューションを提供
© 2023 MODE, Inc. 4 マイクロサービスアーキテクチャ
© 2023 MODE, Inc. 5 モノレポ • マイクロサービスのソースコードの管理手法の一つ • 各サービスを一つのソースコードリポジトリで管理する
• 反対はサービス毎にリポジトリを分ける • 日本だと比較的事例が少なめ(?) • アメリカのTech系スタートアップの界隈だと議論になりがち(らしい) • 某米検索最大手出身者が創業した会社ではモノレポが採用されがち(らしい)
© 2023 MODE, Inc. 6 • サービスの一覧性を高くしやすい • 開発に必要なサービス一式を立ち上げやすい •
同一言語で実装している場合、共通ライブラリの運用がしやすい • 複数のサービスやライブラリのコードを同一目的で変更しやすい • ハード/ソフトな共通化がしやすい(設定、デプロイ、規約など) モノレポのメリット
© 2023 MODE, Inc. 7 モノレポのデメリット • CICDパイプラインの構築に工夫が必要になりがち ◦ 工夫しないとCICDプロセスが鈍重になりやすい
◦ モノレポの構成自体にベストプラクティスがあるわけではないので、 すぐに使えるテンプレート的なCICDワークフローがない • モノレポに関わる人数や組織の構造によっては難しくなりがち(コンフリ クトの増加やブランチ管理の煩雑化など)
© 2023 MODE, Inc. 8 CICDパイプラインの工夫 ECR CodePipeline ECS AWS
GitHub Action push container images trigger pipeline • GHAでcontainer imageをbuild -> ECRにpush -> CodePipelineをトリガー • GHA WorkflowとAWS CodePipelineはサービス * 環境毎に作成 • mainブランチへのマージ時にサービスのコードに影響があればサンドボックス環境に自動デプロイ • ステージング及び本番デプロイについてはGit Tagを用いてデプロイワークフローをトリガーする
© 2023 MODE, Inc. 9 モノレポ管理の工夫 • 複雑なブランチ運用や長期ブランチを避ける(feature flagなど) •
モノレポで「あらゆるコード」を管理すべきか? ◦ NO ◦ 関連性が少ないコードは別リポジトリで分けている ◦ 例)ゲートウェイやモバイルアプリは別リポジトリで管理
© 2023 MODE, Inc. 10 所管・まとめ • 同一言語でバックエンドのマイクロサービスを構築する場合、モノレポは悪くな い選択肢 •
CICDパイプラインの管理やブランチ管理などには工夫が必要 • 似たような経験・知見・アドバイス・悩みがある方は是非お話ししましょう ◦ Twitter: @banana_umai ◦ GitHub: @bananaumai ◦ LinkedIn: Yuta Shimakawa
© 2023 MODE, Inc. 11 MODE is hiring
© 2023 MODE, Inc. 12