Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第一回ライブラリ開発について考える会
Search
Naomichi Yamakita
May 26, 2024
160
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
57
ClickHouse活用によるパフォーマンス改善について
naomichi
0
220
SRE が駆動するプロダクト品質と アーキテクチャ進化の仕組み
naomichi
0
240
今こそ聞きたい!ガバメントクラウド
naomichi
0
72
AWSにおける横断的なログ分析と コストの管理
naomichi
1
7.2k
失敗から始まるリアーキテクト: SREの実践例で見る改善の道筋
naomichi
0
940
プロダクト横断で可視化する ダッシュボードの開発
naomichi
0
430
Serverless Application Repositoryでトイルを削減する
naomichi
0
370
SRE的観点から日常を振り返る
naomichi
0
1.1k
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Facilitating Awesome Meetings
lara
57
7.1k
Documentation Writing (for coders)
carmenintech
77
5.5k
Google's AI Overviews - The New Search
badams
0
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Making Projects Easy
brettharned
120
6.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Navigating Weather and Climate Data
rabernat
0
510
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つで多数のサービスに影響を 与えてしまう可能性があります。後⽅互換性を含め、バージョニング戦略を設計する