Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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 参考資料