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
SREはこうやって開発生産性と戦います / LM-Pioneer-Kawatsu
Search
リンクアンドモチベーション
September 16, 2022
Technology
0
700
SREはこうやって開発生産性と戦います / LM-Pioneer-Kawatsu
リンクアンドモチベーション
September 16, 2022
Tweet
Share
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
AIとともに歩んだライブラリアップデートの道のり/ vue-fes-japan-2024-link-and-motivation
lmi
2
5k
Aiderとともに進めるライブラリアップデートの第一歩 / ai-agent-software-link-and-motivation
lmi
1
91
AIとともに踏み出す技術的負債返済への一歩 / Tech-Debt-Meetup-link-and-motivation
lmi
1
98
開発チームへのディープダイブで見えてきた顧客=開発者の本当の課題/sre-next-2024-link-and-motivation
lmi
1
1.7k
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
650
生成AIに振り回された3か月間の成功と失敗/dev-productivity-con2024-link-and-motivation
lmi
8
7.7k
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
350
ハイパフォーマンスな組織をつくるための開発生産性の考え方 / developer-productivity-high-performer-link-and-motivation
lmi
3
1k
Other Decks in Technology
See All in Technology
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
13
1.6k
偶有的複雑性と戦うためのアーキテクチャとチームトポロジー
knih
3
1.9k
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
130
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
190
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
190
Application Development WG Intro at AppDeveloperCon
salaboy
0
210
コンパウンド戦略に向けた技術選定とリアーキテクチャ
kworkdev
PRO
0
1.2k
SDN の Hype Cycle を一通り経験してみて思うこと / Going through the Hype Cycle of SDN
mshindo
3
290
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
290
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
140
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
1
120
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
1
260
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Scaling GitHub
holman
458
140k
A Tale of Four Properties
chriscoyier
156
23k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Teambox: Starting and Learning
jrom
133
8.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Ruby is Unlike a Banana
tanoku
97
11k
Designing for humans not robots
tammielis
250
25k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Adopting Sorbet at Scale
ufuk
73
9.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
LM - SRE はこうやって 開発生産性と戦います 株式会社 Link & Motivation SRE
- 川津 雄介
• 前職は某複写機メーカーでエンジニアして ました • 現職では SRE • FE→BE→OS→インフラ 全部やりたい派 •
採用活動もしてます 自己紹介 https://github.com/megmogmog1965 https://qiita.com/megmogmog1965
今日のテーマ SRE の言う「開発生産性」って何? 03 01 02 どうやって改善項目を決めるの? LM流・改善を成果に繋げるには (布教活動) しくみ
01 SRE の言う「開発生産性」って何?
そもそも LM の開発体制は? 開発チームはミッシ ョンで分けます。 SRE は開発室を 横断する! 新規顧客獲得の為の 機能開発チームとか
開発あるある...
最近リリース 速くなったね! 開発者
(特に何も変わって ないけど..?) 開発者
開発者 最近開発 遅くない?
(頑張って前より沢 山開発してるんだけ どなぁ...) 開発者
感覚じゃなくて... ものさし (指標) が必要
生産性指標 = 4 Key Metrics デプロイ頻度 本番環境へのリリースの頻度 (回) ※「20 回/週」とか!
リードタイム 初回の git commit から、そのコ ードが本番デプロイされるまでの 時間 ※「5日」とか! 本番環境で発生した障害から 復旧するまでの時間 ※「平均 120 分」とか! MTTR 本番へのリリース回数に対して、 障害が発生した割合 (%) ※「15%」とか! 変更障害率
開発のスピードを表す Metrics デプロイ頻度 本番環境へのリリースの頻度 (回) ※「20 回/週」とか! リードタイム 初回の git
commit から、そのコ ードが本番デプロイされるまでの 時間 ※「5日」とか! 本番環境で発生した障害から 復旧するまでの時間 ※「平均 120 分」とか! デプロイ頻度 本番へのリリース回数に対して、 障害が発生した割合 (%) ※「15%」とか! 変更障害率
品質が損なわれていないか Metrics デプロイ頻度 本番環境へのリリースの頻度 (回) ※「20 回/週」とか! リードタイム 初回の git
commit から、そのコ ードが本番デプロイされるまでの 時間 ※「5日」とか! 本番環境で発生した障害から 復旧するまでの時間 ※「平均 120 分」とか! MTTR 本番へのリリース回数に対して、 障害が発生した割合 (%) ※「15%」とか! 変更障害率
バランスが重要 品質を犠牲にすれば スピードは簡単に上げられる
02 どうやって改善項目を決めるの?
State of DevOps Report - 2021 High/Mid/Low Performaer の分類 一般的な目標値のランク
私達は今どのレベルにいるのかな? LM での High/Mid-*/Low の独自解釈版
例えば昔...
デプロイ頻度を上げたい
BEFORE…
元々 EB を手でデプロイしてた EB 沢山あるよ〜 3時間かかる... リリース担当者 が決まってて 誰でもできない EB
EB EB EB EB EB EB EB EB EB ミスったら...
AFTER !!
コンテナ化 (ECS) しました EB ECS
All Terraform 化もしました ※ 実はその前は AWS CDK (TypeScript) を使ってた
堅牢性・透明性の担保 静的なコード • HCL はほぼ「設定ファイル」 • プログラムコードの様な難しさが 無い 変更箇所が明確 •
`terraform plan` で、変更箇所が明確に分かる • 「やってみないと分からなくて怖い...」が無い
Github / CodeBuild CI でデプロイ自動化 Master マージ で自動デプロイ Blue /
Green にした Blue / Green にした
そして次は...
リードタイムを上げたい
BEFORE…
この木、なんの木? 「マージ待ち、お見合い行列の木」
開発組織が拡大する → 複雑化 • Master マージすると自動デプロイされるから、気軽にマージできない • 「明日だれがリリースする?」「もうリリースブランチ(PR)作った?」
AFTER !!
(作業を〜ではなく) プロセスを自動化します
Git-flow にしたよ!
自動でリリース担当に通知 (依頼) 朝 7:00 に Slack に自動で来る ※ Feature Flags
も導入してます
リリース用の Github PR も自動で 朝 7:00 に PR 自動で作られる
ステージングデプロイ → 自動テスト ステージング環境 自動デプロイ 自動テスト
Release ver の git tag も自動で Feature リリースなら Minor ver
が上がる Hotfix リリースなら Patch ver が上がる
Github Actions で実現 Git 周りの自動化は Github Actions でほぼ完結します
03 改善を成果に繋げるには
仕組みは、作った後の 布教活動が重要!
どうやって布教するか? 1. 全体の場で「意義・メリット」を布教! 2. 各チームに「伝道者」 (※相談人) を作る!
最後に... 計測 → 改善 のサイクル 計測 今現在の最大の ボトルネックは どこか? 改善
特定した課題をどう 「仕組み」で解決 するか?
THANKS 私達、株式会社 Link & Motivation は 一緒に働く新しい仲間を募集しています! 応募ページはこちら!