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
Naomichi Yamakita
May 26, 2024
150
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
37
ClickHouse活用によるパフォーマンス改善について
naomichi
0
170
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
KATA
mclloyd
PRO
35
15k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Code Reviewing Like a Champion
maltzj
528
40k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
The World Runs on Bad Software
bkeepers
PRO
72
12k
Become a Pro
speakerdeck
PRO
31
6k
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つで多数のサービスに影響を 与えてしまう可能性があります。後⽅互換性を含め、バージョニング戦略を設計する