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

私達のチームのデプロイ戦略の軌跡 〜継続的デプロイの導入に至るまで〜

私達のチームのデプロイ戦略の軌跡 〜継続的デプロイの導入に至るまで〜

hamakou108

March 13, 2023
Tweet

More Decks by hamakou108

Other Decks in Technology

Transcript

  1. Copyright© M&Aクラウド
    私達のチームのデプロイ戦略の軌跡
    〜継続的デプロイの導入に至るまで〜
    PHPerKaigi 2023(勝手に)リジェクトカンファレンス
    株式会社M&Aクラウド 濱田晃輔

    View Slide

  2. Copyright© M&Aクラウド 2
    悔しいっ......!悔しいっ......!
    PHPerKaigi 2023 のプロポーザル通過ならず...

    View Slide

  3. Copyright© M&Aクラウド 3
    だがこれでいい......!
    (勝手に) リジェクトカンファレンス LT 🎉🎉🎉

    View Slide

  4. Copyright© M&Aクラウド 4
    プロポーザルの内容
    私達のチームのデプロイ戦略の軌跡 〜継続的デプロイの導入に至るまで〜 by 濱田晃輔 | トーク | PHPerKaigi 2023 #phperkaigi - fortee.jp

    View Slide

  5. Copyright© M&Aクラウド 5
    レギュラートーク...?
    私達のチームのデプロイ戦略の軌跡 〜継続的デプロイの導入に至るまで〜 by 濱田晃輔 | トーク | PHPerKaigi 2023 #phperkaigi - fortee.jp

    View Slide

  6. Copyright© M&Aクラウド 6
    20分......???
    私達のチームのデプロイ戦略の軌跡 〜継続的デプロイの導入に至るまで〜 by 濱田晃輔 | トーク | PHPerKaigi 2023 #phperkaigi - fortee.jp

    View Slide

  7. Copyright© M&Aクラウド 7
    出来らあっ!!!
    えっ!!5分で20分の内容を!?

    View Slide

  8. Copyright© M&Aクラウド 8
    とある上長 1on1 にて
    自分「なるほど...?」
    上司「目標設定何か1つ
    やりたいこと入れて良いよ」

    View Slide

  9. Copyright© M&Aクラウド 9
    そういえば...
    「おもしれーやつ」
    「Four Keys って言うんだ」
    生産性を可視化したい! / SUZURI's four keys - Speaker Deck
    DevOpsDays Tokyo2022 ファクトから始める改善アプローチ 〜「LeanとDevOpsの科学」を実践して〜 - Speaker Deck
    開発組織の生産性を可視化する State of DevOpsとFour Keysとは / deep dive into State of DevOps - Speaker Deck

    View Slide

  10. Copyright© M&Aクラウド 10
    聖書を読む
    「継続的デプロイ導入すれば良
    いんじゃね?」
    Nicole Forsgren Ph.D et al. 著, 武舎 るみ et al. 訳 (2018), LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する

    View Slide

  11. Copyright© M&Aクラウド
    デリバリーのパフォーマンス
    11
    Four Keys と継続的デプロイの関係
    ● Four Keys
    ○ デリバリーのパフォーマンスの計測指標
    ■ デプロイ頻度
    ■ 変更のリードタイム
    ■ 平均復旧時間
    ■ 変更失敗率
    ○ 組織の収益性や市場占有率、生産性と相関がある
    ● 継続的デプロイ
    ○ コード修正を自動的に本番反映するプラクティス
    ○ Four Keys 向上に大きな効果が期待できる

    View Slide

  12. Copyright© M&Aクラウド 12
    翌週
    自分「時代は
     継続的デプロイです」
    上司「ええやん」
    ※実際にはもっと具体的な議論を行っています

    View Slide

  13. Copyright© M&Aクラウド 13
    赤信号みんなで渡れば怖くない?
    継続的デプロイ導入に伴うリスク
    ● 本番環境で盛大にバグるかも...
    ● ロールバックの判断が難しくなるかも
    ...
    ● もう元の開発フローに後戻りできないかも
    ...

    View Slide

  14. Copyright© M&Aクラウド
    ● バージョン管理
    ● デプロイメントの自動化
    ● 継続的インテグレーション
    ● トランクベースの開発
    ● テストの自動化
    ● テストデータの管理
    ● 情報セキュリティのシフトレフト
    ● 疎結合アーキテクチャ
    ● 権限をもつチーム
    ● モニタリング
    ● プロアクティブ(予防的)な通知
    14
    再び聖書を読む
    継続的デリバリーを促進するケイパビリティ
    Nicole Forsgren Ph.D et al. 著, 武舎 るみ et al. 訳 (2018), LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する

    View Slide

  15. Copyright© M&Aクラウド
    ● バージョン管理 ✅
    ● デプロイメントの自動化 ✅
    ● 継続的インテグレーション ✅
    ● トランクベースの開発 ✅
    ● テストの自動化 ✅
    ● テストデータの管理 🚨
    ● 情報セキュリティのシフトレフト 🚨
    ● 疎結合アーキテクチャ ✅
    ● 権限をもつチーム ✅
    ● モニタリング ✅
    ● プロアクティブ(予防的)な通知 🚨
    15
    再び聖書を読む
    継続的デリバリーを促進するケイパビリティ
    Nicole Forsgren Ph.D et al. 著, 武舎 るみ et al. 訳 (2018), LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する

    View Slide

  16. Copyright© M&Aクラウド 16
    CI/CD パイプラインによる自動化とその高速化
    ● 自動化
    ○ テスト・静的解析
    ○ DB マイグレーション
    ○ キャッシュクリア
    ○ 全文検索エンジンのインデックス更新
    ○ デプロイ (confirmation あり)
    ● 高速化
    ○ テスト並列化
    ○ デプロイ速度のチューニング
    デプロイメントの自動化 継続的インテグレーション テストの自動化
    バージョン管理

    View Slide

  17. Copyright© M&Aクラウド 17
    Feature Toggle 戦略
    ● ロジックや UI を Feature Toggle で切り替え
    ● ON/OFF データの管理を環境変数から RDB へ
    ● 条件分岐コードの一括削除
    ○ kubotak-is/php-del
    ○ fyui001/rice-ball
    ● ON への切り替え時に社内 Slack にリリース通知
    デプロイメントの自動化
    FeatureToggle戦略と運用方法 - Speaker Deck
    トランクベースの開発
    バージョン管理

    View Slide

  18. Copyright© M&Aクラウド 18
    モニタリングとアラート検知
    モニタリング
    バージョン管理
    ● Cloudwatch
    ○ 死活監視
    ○ リソース負荷の監視
    ● Sentry
    ○ アプリケーションエラー検知
    ○ パフォーマンス問題の検知
    ■ レスポンス時間の長いページ
    ■ N+1 クエリ

    View Slide

  19. Copyright© M&Aクラウド
    ● CI/CD パイプラインによる自動化とその高速化
    ○ => 低コストかつ高頻度でデプロイできる
    ● Feature Toggle 戦略
    ○ => 小さなバッチサイズを維持できる
    ● モニタリングとアラート検知
    ○ => 問題があったらすぐに検知して対処できる
    19
    実際に役に立った?
    継続的デプロイとの相性

    View Slide

  20. Copyright© M&Aクラウド 20
    2018年4月リリースから2023年現在に至るまで
    日々の開発フロー改善の積み重ねがあった

    View Slide

  21. Copyright© M&Aクラウド 21
    青信号を確認して渡ろう
    必要最低限のケイパビリティは備えていると判断して導入
    メインブランチを
    develop から master へ!
    レビュープロセスや
    DoD の変更!
    マージされたら CircleCI で本
    番デプロイ!



    View Slide

  22. Copyright© M&Aクラウド
    ● 「LeanとDevOpsの科学」では継続的デリバリーの促進要因が示されている
    ● 次のような開発フロー改善が継続的デプロイ導入に特に役立った
    ○ CI/CD パイプラインによる自動化と高速化
    ○ Feature Toggle 戦略
    ○ モニタリングとアラート検知
    ● 継続的デプロイ導入には日々の開発フロー改善が役に立つ
    22
    まとめ

    View Slide

  23. Copyright© M&Aクラウド
    Thank you for your attention! 🤩
    23

    View Slide

  24. Copyright© M&Aクラウド
    ● 生産性を可視化したい! / SUZURI's four keys - Speaker Deck
    ● DevOpsDays Tokyo2022 ファクトから始める改善アプローチ 〜「LeanとDevOpsの科学」を実践して〜 - Speaker Deck
    ● 開発組織の生産性を可視化する State of DevOpsとFour Keysとは / deep dive into State of DevOps - Speaker Deck
    ● Nicole Forsgren Ph.D et al. 著, 武舎 るみ et al. 訳 (2018), LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する
    ● プログラマ三大美徳を実現するデプロイフローを目指して
    - Speaker Deck
    ● PHPコードを消すライブラリを作った - Speaker Deck
    ● FeatureToggle戦略と運用方法 - Speaker Deck
    24
    参考資料

    View Slide