デプロイ・QA・Four Keysを自動化し、可視化するfreeeの統合デリバリー基盤の進化とその実践
CloudNative Days Summer 2024においてfreee株式会社の藤原 彰人氏が発表した「デプロイ・QA・Four Keysを自動化?見える化するfreeeの統合デリバリー基盤」についてのセッションは、デリバリープロセスの効率化と可視化をテーマにしたものである。統合デリバリー基盤を通じて、プロダクトにおけるデプロイの標準化、Four Keysの取得、ステージング確認の可視化を実現し、開発者の負担を軽減しつつ、品質を確保している。さらにケイパビリティの改善活動にも取り組むことで、組織全体のデリバリー効率向上を目指している。
freeeの統合デリバリー基盤
freeeは「スモールビジネスを、世界の主役に。」をミッションに掲げ、会計や人事労務、販売管理を核とした統合型経営プラットフォームを開発・提供している。
freeeの統合デリバリー基盤は、SRE Platform Deliveryチームが、「開発者が機能を思いついてから、それが実際にユーザーに届くまでのプロセスを最短化することを目指して」設計されたものである。
藤原氏は「freeeの統合デリバリー基盤は4年前から運用されており、当初はデプロイの手順の標準化とQA・監査プロセスの自動化を中心にしていました。しかし、1~2年前からはFour Keysの取得と可視化が重要な役割を担うようになりました」と、その進化を語った。
開発チームのデプロイフローを効率化するための大規模なプロダクトとして機能しているfreeeの統合デリバリー基盤だが、藤原氏はこの基盤の役割について次のように説明している。「freeeでは50以上のプロダクトが存在し、1日に複数回デプロイが行われるケースもあります。このような大規模な環境において、デプロイフローの標準化は重要で、Slackベースでの操作を通じて、デプロイからQA、監査プロセスまでを自動化しています」と藤原氏。
デリバリーを最短にするためには、以下の2つの要素が重要と言う。
デリバリーパフォーマンスの可視化
freeeでは、デプロイの頻度やリードタイム、変更失敗率、MTTR(Mean Time To Recovery、平均復旧時間)といったFour Keysの指標を用いて、デリバリーパフォーマンスを可視化している。これにより、各プロダクトがどの程度効率的にデリバリーされているかをリアルタイムで把握し、改善のためのフィードバックループを確立することができる。
デプロイ基盤の標準化
50以上のプロダクトに対応するため、デプロイフローが一貫して効率的に動作するように標準化されている。この標準化により、開発者がデプロイ手順を簡単に理解し、負担を感じることなく迅速にデプロイを進めることが可能になっている。
統合デリバリー基盤はGitHub、ArgoCD、Slackなどのツールと連携し、開発者が直感的に操作できるGUIを提供する。各プロダクトのデプロイフローがSlackを介して可視化され、リポジトリごとのステータスやデプロイ確認の進捗が一目で把握できる。また、Googleカレンダーとの連携により、デプロイ禁止日などの設定も容易である。
藤原氏は、「この基盤によって、各チームが必要とするカスタム機能を設定し、プロセスを効率的に進めることができるようになっています」と言い、開発者の柔軟な作業環境を強調している。
ステージング確認の可視化と自動化
統合デリバリー基盤のもう一つの特徴は、ステージング確認プロセスの自動化である。PRがステージング環境にデプロイされると、PR作成者やQA担当者はSlack上で自動生成されたステージング確認リストを使って、各ステップの進捗を確認していく。この一連のプロセスが可視化されることで、手動の確認作業が効率的に進められ、全体のデプロイプロセスのスピードが向上する。
藤原氏によれば「PR作成者は、自分のPRが問題なく動作しているかを確認し、その結果がステージング確認リストに反映されます。すべてのPRが承認された後、プロダクト環境へのデプロイが行われるようになります」とのことだ。またこのステージング確認には、e2eテストの実行や監視の終了通知も含まれており、確認作業がスムーズに進行するようサポートされている。
Four Keysの取得と障害管理の可視化
freeeでは、Four Keysを通じてデプロイのパフォーマンスを可視化し、改善活動を進めている。Four Keysは、デプロイ頻度、リードタイム、変更失敗率、MTTRの4つの指標で構成されており、これらの指標をモニタリングすることで、プロダクトのパフォーマンスを評価する。
藤原氏は「Four Keysを取得することで、デプロイプロセスの効率や品質を可視化し、それに基づいてプロダクトの改善を図っています」と言い、プロダクトごとにダッシュボード上でFour Keysの状況が確認できる仕組みを説明している。
さらにJiraなどのツールと連携して障害情報を管理することで、どのデプロイが障害を引き起こしたか、またどのデプロイが障害から復旧したかを一目で把握できるようになっている。この連携により、障害発生時の対応が迅速化され、MTTRの短縮が実現されている。
Four Keysへの向き合い方
Four Keysは、デリバリーのパフォーマンスを向上させるための強力なツールだが、数値だけを追い求めるのはアンチパターンである。藤原氏は「数字だけを見るのではなく、その背景にあるケイパビリティの改善が重要です」と強調している。freeeでは、ケイパビリティの向上がFour Keysの向上に直結していると考え、組織全体での改善活動に取り組んでいる。
とくにトランクベース開発や自動テスト、自動デプロイメントの導入などが進められており、これらの取り組みがプロダクトの品質向上に貢献しているという。freeeでは、このようなケイパビリティの改善活動をパッケージ化し、プロダクトチーム全体に展開することで、全社的な取り組みとして進めている。
ケイパビリティ改善と今後の課題
freeeでは、Four Keysの数値改善だけでなく、組織全体のケイパビリティ向上に重きを置いている。藤原氏は「ケイパビリティ改善がプロダクトチームのOKR(Objectives and Key Results、目標と主要な結果)に組み込まれることで、より強力な改善活動が進められると考えています」と述べ、プロダクトチームが自主的に改善活動に取り組む文化の必要性を強調した。
またfreeeは統合デリバリー基盤のさらなる進化を目指しており、今後もプロダクト品質と開発効率の向上を実現するために、基盤の機能改善を続けていく考えだ。「今後も統合デリバリー基盤をアップデートし、さらに効率的な開発環境を提供していきたい」と藤原氏は述べ、今後の展望を示した。freeeの統合デリバリー基盤は、デプロイフローの自動化、Four Keysの可視化、そしてケイパビリティ改善に向けた取り組みを通じて、プロダクトの品質と開発者の生産性を高めている。freeeは、この基盤を通じて今後も開発プロセスを効率化し、サービスの品質向上に努めていくという。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 【いよいよ6/15開催!】CNDS2024は札幌+オンラインで開催、注目のキーノート・CFPセッションを再確認しよう!
- クラウドネイティブ開発で注目されるPlatform Engineering、チーム作りから環境構築までのポイントを知る
- Kubernetesで安全にアプリケーションをデプロイするCDツール“Spinnaker”とは
- 重視するのは個々の技術力より、何かを作り、変えようというモチベーション。「入社してから伸びる人」を採用したい
- DevOpsを始めるときに「何をやるべきか」を理解しよう
- CI/CDから障害の復旧までハイレベルの運用自動化を実現するKeptnとは
- ソフトウェアテストのスムーズな導入
- アジャイル開発の「構築フェーズ」で留意すべきポイント
- コンテナ開発へのDevSecOpsの適用
- DevOpsはここから始めよう