LM - SRE はこうやって開発生産性と戦います株式会社 Link & MotivationSRE - 川津 雄介
View Slide
● 前職は某複写機メーカーでエンジニアしてました● 現職では SRE● FE→BE→OS→インフラ 全部やりたい派● 採用活動もしてます自己紹介https://github.com/megmogmog1965https://qiita.com/megmogmog1965
今日のテーマSRE の言う「開発生産性」って何?030102 どうやって改善項目を決めるの?LM流・改善を成果に繋げるには (布教活動)しくみ
01SRE の言う「開発生産性」って何?
そもそも 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 - 2021High/Mid/LowPerformaer の分類一般的な目標値のランク
私達は今どのレベルにいるのかな?LM での High/Mid-*/Lowの独自解釈版
例えば昔...
デプロイ頻度を上げたい
BEFORE…
元々 EB を手でデプロイしてたEB沢山あるよ〜3時間かかる...リリース担当者が決まってて誰でもできないEBEBEBEBEBEB EBEBEBEBミスったら...
AFTER !!
コンテナ化 (ECS) しましたEB ECS
All Terraform 化もしました※ 実はその前は AWS CDK (TypeScript) を使ってた
堅牢性・透明性の担保静的なコード● HCL はほぼ「設定ファイル」● プログラムコードの様な難しさが無い変更箇所が明確● `terraform plan` で、変更箇所が明確に分かる● 「やってみないと分からなくて怖い...」が無い
Github / CodeBuild CI でデプロイ自動化Master マージで自動デプロイBlue /GreenにしたBlue /Greenにした
そして次は...
リードタイムを上げたい
この木、なんの木?「マージ待ち、お見合い行列の木」
開発組織が拡大する → 複雑化● Master マージすると自動デプロイされるから、気軽にマージできない● 「明日だれがリリースする?」「もうリリースブランチ(PR)作った?」
(作業を〜ではなく)プロセスを自動化します
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 は一緒に働く新しい仲間を募集しています!応募ページはこちら!