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
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
43
ClickHouse活用によるパフォーマンス改善について
naomichi
0
180
SRE が駆動するプロダクト品質と アーキテクチャ進化の仕組み
naomichi
0
220
今こそ聞きたい!ガバメントクラウド
naomichi
0
65
AWSにおける横断的なログ分析と コストの管理
naomichi
1
7.1k
失敗から始まるリアーキテクト: SREの実践例で見る改善の道筋
naomichi
0
900
プロダクト横断で可視化する ダッシュボードの開発
naomichi
0
410
Serverless Application Repositoryでトイルを削減する
naomichi
0
360
SRE的観点から日常を振り返る
naomichi
0
1.1k
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
270
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
How to build a perfect <img>
jonoalderson
1
5.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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つで多数のサービスに影響を 与えてしまう可能性があります。後⽅互換性を含め、バージョニング戦略を設計する