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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Naomichi Yamakita
May 26, 2024
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第一回ライブラリ開発について考える会
Naomichi Yamakita
May 26, 2024
More Decks by Naomichi Yamakita
See All by Naomichi Yamakita
現場で試したAI駆動開発
naomichi
0
28
ClickHouse活用によるパフォーマンス改善について
naomichi
0
160
SRE が駆動するプロダクト品質と アーキテクチャ進化の仕組み
naomichi
0
210
今こそ聞きたい!ガバメントクラウド
naomichi
0
62
AWSにおける横断的なログ分析と コストの管理
naomichi
1
7k
失敗から始まるリアーキテクト: SREの実践例で見る改善の道筋
naomichi
0
890
プロダクト横断で可視化する ダッシュボードの開発
naomichi
0
410
Serverless Application Repositoryでトイルを削減する
naomichi
0
360
SRE的観点から日常を振り返る
naomichi
0
1.1k
Featured
See All Featured
Visualization
eitanlees
152
17k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Test your architecture with Archunit
thirion
1
2.3k
My Coaching Mixtape
mlcsv
0
150
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
For a Future-Friendly Web
brad_frost
183
10k
Marketing to machines
jonoalderson
1
5.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Transcript
©2024 Metaps Holdings, Inc. 第⼀回ライブラリ開発について考える会 SRE領域におけるライブラリ開発の 取り組み 株式会社メタップスホールディングス プロダクトオーナー 兼
SREチーフエンジニア ⼭北 尚道 1
©2024 Metaps Holdings, Inc. ⾃⼰紹介 ⼭北 尚道 株式会社メタップスホールディングス srestプロダクトオーナー 兼
SREチーフエンジニア Yamakita Naomichi @sre_yamakita ベトナム‧ハノイでのオフショア事業⽴ち上げからキャリアをスタートし、ア プリケーション開発からマネジメントまでを経験 2015年に当社参画。徐々にクラウドインフラにも携わり、現在は横断的なテッ クリードやSREチーフエンジニアとして従事 「AWS DevDay Tokyo」登壇、「Amazon Web Services ブログ」、 「builders.flash」寄稿、AWS Community Builderメンバー 昨年よりSREのためのダッシュボード「srest」プロダクトオーナーを兼任
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • システムの全体像を俯瞰的に捉え、インフラの⾃動化、障害対応、アプリケーション
の最適化を通じて可⽤性を確保し、信頼性を⾼めることを⽬的とする • 主な指標 ◦ サービスレベル⽬標 (SLO) ◦ 監視 ◦ モニタリング ◦ ポストモーテム ◦ トイルの削減 (運⽤の⾃動化) SRE (Site Reliability Engineering) とは?
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • CI/CD
• IaC (Infrastructure as a Code) • トイルの削減 トピック
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. CI/CD •
課題 ◦ 複数のプロダクトでGitHub Actionsを⽤い たWorkflowを構築している 各Workflowで共通化したい処理‧機能があ るとき、どのようにActionを実装するべき か?
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • 提案
◦ Composite Actionを使う ◦ Actionにより⼊⼒パラメータを渡したり、 Composite Action内で条件分岐することが 可能 ◦ 開発したライブラリはプライベートリポジ トリとして共有可能 jobs: dependabot: if: ${{ github.actor == 'dependabot[bot]' }} runs-on: ubuntu-latest steps: - uses: metaps/action-dependabot-auto-merge@main CI/CD
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. IaC (Infrastructure
as a Code) • 課題 ◦ アプリケーションを稼働させるための、信 頼性が⾼く、安全かつ効率的なインフラ基 盤を構築したい (Terraformで)
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • 提案
◦ Terraform modulesを利⽤する ◦ AWSやGoogle Cloudが公式moduleを公開 しているほか、組織独⾃のmoduleを作成す ることも可能 IaC (Infrastructure as a Code) github.com/metaps/terraform-modules |- modules |- aws |- ec2 |- fargate |- rds |- datadog |- monitor |- ...
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • 課題
◦ AWS環境において、複数のプロダクトで利 ⽤可能なトイルを削減するアプリケーショ ンを開発‧配布したい トイルの削減
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • 提案
◦ AWS Serverless Application Repository (SAR) を使うことで、開発したアプリケー ションをAWSのリポジトリから配布するこ とが可能 トイルの削減
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. • アプリケーションの実装例
◦ コードはLambdaで実装 (Go、Rubyなど) ◦ 共通ライブラリはLambda Layerで実装 ▪ ベンダーライブラリもLambda Layerに いれることでアプリケーションのサイズ を削減できる トイルの削減
©2024 Metaps Holdings, Inc. ©2024 Metaps Holdings, Inc. まとめ (ライブラリ開発で注意している点)
• 開発は属⼈化させない ◦ テスト‧レビュー‧ドキュメンテーションを通して、複数⼈が開発に携わる体制を作る • トレンドに流されない ◦ その時々で流⾏りの⾔語やパッケージは変わるもの ◦ PaaSはプラットフォーム依存となるため、メンテナンスのしやすさ (EOL‧アップグレード対応 など) を考慮する • バージョン管理はしっかりと ◦ SRE領域のライブラリ開発は、API経由での呼び出しが多く、バグ1つで多数のサービスに影響を 与えてしまう可能性があります。後⽅互換性を含め、バージョニング戦略を設計する