Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SREはこうやって開発生産性と戦います / LM-Pioneer-Kawatsu

SREはこうやって開発生産性と戦います / LM-Pioneer-Kawatsu

More Decks by リンクアンドモチベーション

Other Decks in Technology

Transcript

  1. LM - SRE はこうやって
    開発生産性と戦います
    株式会社 Link & Motivation
    SRE - 川津 雄介

    View Slide

  2. ● 前職は某複写機メーカーでエンジニアして
    ました
    ● 現職では SRE
    ● FE→BE→OS→インフラ 全部やりたい派
    ● 採用活動もしてます
    自己紹介
    https://github.com/megmogmog1965
    https://qiita.com/megmogmog1965

    View Slide

  3. 今日のテーマ
    SRE の言う「開発生産性」って何?
    03
    01
    02 どうやって改善項目を決めるの?
    LM流・改善を成果に繋げるには (布教活動)
    しくみ

    View Slide

  4. 01
    SRE の言う「開発生産性」って何?

    View Slide

  5. そもそも LM の開発体制は?
    開発チームはミッシ
    ョンで分けます。
    SRE は開発室を
    横断する!
    新規顧客獲得の為の
    機能開発チームとか

    View Slide

  6. 開発あるある...

    View Slide

  7. 最近リリース
    速くなったね!
    開発者

    View Slide

  8. (特に何も変わって
    ないけど..?)
    開発者

    View Slide

  9. 開発者
    最近開発
    遅くない?

    View Slide

  10. (頑張って前より沢
    山開発してるんだけ
    どなぁ...)
    開発者

    View Slide

  11. 感覚じゃなくて...
    ものさし (指標) が必要

    View Slide

  12. 生産性指標 = 4 Key Metrics
    デプロイ頻度
    本番環境へのリリースの頻度 (回)
    ※「20 回/週」とか!
    リードタイム
    初回の git commit から、そのコ
    ードが本番デプロイされるまでの
    時間
    ※「5日」とか!
    本番環境で発生した障害から
    復旧するまでの時間
    ※「平均 120 分」とか!
    MTTR
    本番へのリリース回数に対して、
    障害が発生した割合 (%)
    ※「15%」とか!
    変更障害率

    View Slide

  13. 開発のスピードを表す Metrics
    デプロイ頻度
    本番環境へのリリースの頻度 (回)
    ※「20 回/週」とか!
    リードタイム
    初回の git commit から、そのコ
    ードが本番デプロイされるまでの
    時間
    ※「5日」とか!
    本番環境で発生した障害から
    復旧するまでの時間
    ※「平均 120 分」とか!
    デプロイ頻度
    本番へのリリース回数に対して、
    障害が発生した割合 (%)
    ※「15%」とか!
    変更障害率

    View Slide

  14. 品質が損なわれていないか Metrics
    デプロイ頻度
    本番環境へのリリースの頻度 (回)
    ※「20 回/週」とか!
    リードタイム
    初回の git commit から、そのコ
    ードが本番デプロイされるまでの
    時間
    ※「5日」とか!
    本番環境で発生した障害から
    復旧するまでの時間
    ※「平均 120 分」とか!
    MTTR
    本番へのリリース回数に対して、
    障害が発生した割合 (%)
    ※「15%」とか!
    変更障害率

    View Slide

  15. バランスが重要
    品質を犠牲にすれば
    スピードは簡単に上げられる

    View Slide

  16. 02
    どうやって改善項目を決めるの?

    View Slide

  17. State of DevOps Report - 2021
    High/Mid/Low
    Performaer の分類
    一般的な目標値のランク

    View Slide

  18. 私達は今どのレベルにいるのかな?
    LM での High/Mid-*/Low
    の独自解釈版

    View Slide

  19. 例えば昔...

    View Slide

  20. デプロイ頻度を上げたい

    View Slide

  21. BEFORE…

    View Slide

  22. 元々 EB を手でデプロイしてた
    EB
    沢山あるよ〜
    3時間かかる...
    リリース担当者
    が決まってて
    誰でもできない
    EB
    EB
    EB
    EB
    EB
    EB EB
    EB
    EB
    EB
    ミスったら...

    View Slide

  23. AFTER !!

    View Slide

  24. コンテナ化 (ECS) しました
    EB ECS

    View Slide

  25. All Terraform 化もしました
    ※ 実はその前は AWS CDK (TypeScript) を使ってた

    View Slide

  26. 堅牢性・透明性の担保
    静的なコード
    ● HCL はほぼ「設定ファイル」
    ● プログラムコードの様な難しさが
    無い
    変更箇所が明確
    ● `terraform plan` で、変更箇所が明確に分かる
    ● 「やってみないと分からなくて怖い...」が無い

    View Slide

  27. Github / CodeBuild CI でデプロイ自動化
    Master マージ
    で自動デプロイ
    Blue /
    Green
    にした
    Blue /
    Green
    にした

    View Slide

  28. そして次は...

    View Slide

  29. リードタイムを上げたい

    View Slide

  30. BEFORE…

    View Slide

  31. この木、なんの木?
    「マージ待ち、お見合い行列の木」

    View Slide

  32. 開発組織が拡大する → 複雑化
    ● Master マージすると自動デプロイされるから、気軽にマージできない
    ● 「明日だれがリリースする?」「もうリリースブランチ(PR)作った?」

    View Slide

  33. AFTER !!

    View Slide

  34. (作業を〜ではなく)
    プロセスを自動化します

    View Slide

  35. Git-flow にしたよ!

    View Slide

  36. 自動でリリース担当に通知 (依頼)
    朝 7:00 に
    Slack に自動で来る
    ※ Feature Flags
    も導入してます

    View Slide

  37. リリース用の Github PR も自動で
    朝 7:00 に
    PR 自動で作られる

    View Slide

  38. ステージングデプロイ → 自動テスト
    ステージング環境
    自動デプロイ
    自動テスト

    View Slide

  39. Release ver の git tag も自動で
    Feature リリースなら
    Minor ver が上がる
    Hotfix リリースなら
    Patch ver が上がる

    View Slide

  40. Github Actions で実現
    Git 周りの自動化は
    Github Actions でほぼ完結します

    View Slide

  41. 03
    改善を成果に繋げるには

    View Slide

  42. 仕組みは、作った後の
    布教活動が重要!

    View Slide

  43. どうやって布教するか?
    1. 全体の場で「意義・メリット」を布教!
    2. 各チームに「伝道者」 (※相談人) を作る!

    View Slide

  44. 最後に...
    計測 → 改善 のサイクル
    計測
    今現在の最大の
    ボトルネックは
    どこか?
    改善
    特定した課題をどう
    「仕組み」で解決
    するか?

    View Slide

  45. THANKS
    私達、株式会社 Link & Motivation は
    一緒に働く新しい仲間を募集しています!
    応募ページはこちら!

    View Slide