1.はじめに
Sreake 事業部でインターンしている村山です。インターンをするにあたり、DevOps の理解と最近の動向を掴むことが必要であると感じ、Accelerate State of DevOps Report をまとめることにしました。
DevOps Report は、ソフトウェアデリバリーや運用における組織パフォーマンスを促進する機能とプラクティスが検証された分析情報を毎年提供しています。著者である Google Cloud の DevOps Research and Assessment(DORA)チームは DevOps Report について以下のように述べています。
State of DevOps Report は、チームが DevOps のパフォーマンスを高める方法について理解しようとする出発点として最適です。さらに、他の組織がどのようにレポートを使用して、組織全体に有意義な影響を与えているか知るのにも役立ちます。
Google Cloud ブログ 2022年のAccelerate State of DevOps Report を発表: セキュリティに焦点 より引用
この記事は、2022 年の Accelerate State of DevOps Report についてまとめた記事です。2022 年の報告書は 2021 年までの調査項目に加え、新たにソフトウェアサプライチェーンのセキュリティに関するトピックの調査も並行して行っています。
今年の調査結果では、昨年までの調査と同様に SRE の実践が多くの部分で組織のパフォーマンスに良い影響を与えることが示されていました。ここで、多くの部分としたのは昨年までとは真逆の結果が得られた部分もあったためです。ただ、この真逆の結果は、昨年までと調査対象が異なったことによるものではないかと研究チームは報告しています。
次章では、報告書を基にそれらの調査と結果についてより詳細にまとめていきます。
2.レポート概要
2022 年の DevOps Report にて調査された領域は以下のとおりです。
- 過去のレポートから継続して調査されている項目
- ソフトウェアデリバリーのパフォーマンス
- 運用パフォーマンスの信頼性
- 組織のパフォーマンス
- 今回のレポートから調査され、メインとなる新規の項目
- ソフトウェアサプライチェーンセキュリティ
パフォーマンスの評価は、以下の2つのクラスター分析のアプローチによって行われています。
- ソフトウェアデリバリーパフォーマンス
- 4つの指標に基づいたクラスター分析
- 変更のリードタイム
- デプロイ頻度
- 変更障害率
- サービス復元時間
- 4つの指標に基づいたクラスター分析
- 運用パフォーマンス
- 上記の4つの指標に「信頼性」を加えたクラスター分析
ソフトウェアデリバリーパフォーマンスと運用パフォーマンス
ソフトウェアデリバリーパフォーマンスの4つの指標(Four Keys)は、スループットと安定性の観点から考えられています。
- スループット
- コード変更のリードタイム
- デプロイ頻度
- 安定性
- インシデント発生後のサービス復旧までの時間
- デプロイが原因で本番環境で障害が発生する割合
運用パフォーマンスはこれらの4つの指標に、信頼性を加えたものを指標とします。
ソフトウェアデリバリーパフォーマンス
ソフトウェアデリバリーパフォーマンスの4つの指標
- デプロイ頻度
どれくらいの頻度でコードを本番環境にデプロイしたり、エンドユーザーにリリースしているか - コード変更のリードタイム
コードがコミットされてから本番環境で正常に動作するまでにかかる時間はどれくらいか - サービス復元時間
ユーザーに影響を与えるサービスインシデントや不具合が発生した場合、サービス復旧に通常どれくらい時間がかかるか - 変更障害率
本番環境への変更またはユーザーへのリリースのうち、サービス低下につながり、その後、修復を必要とする割合はどれくらいか
これらの指標によってパフォーマンスのクラスター分析を行われています。また、2022年のレポートでは、Eliteクラスターが除外されていますが、その理由について以下のように述べています。
2018年から使用している Elite、High、Medium、Low の4クラスターによるクラスター分析の評価を行ったところ、High と Low の明確な区別はできるものの、Medium と High については明確な区別はできませんでした。また、適切なクラスター分析を行うための指標からも、3つのクラスターによるクラスター分析がデータを最も適切に捉えることが示唆されました。そのため、今年は Elite クラスを除外し、昨年の Elite クラスターと High クラスターをあわせたものを High クラスターとして扱いました。Elite クラスターを除外した理由としては、今年の最もパフォーマンスの高いクラスターが昨年の Elite クラスターと同様の特徴を満たしていないからです。
今年のクラスター分析の結果から以下のようなことが示されています。
- High クラスターの割合の減少
- Low クラスターの割合の増加(2021 年の 7%→19%)
- Medium クラスターの割合の増加(全体の 2/3 以上)
High クラスターのハイパフォーマーや Elite クラスターのエリートパフォーマーが大きく減少しているのは、今年の回答者の多くが、DevOps 文化を確立していない、あるいは確立している途中にある組織やチームに所属していることが示されているようです。
2021 年と 2022 年のクラスターで共通している部分としては、ハイパフォーマーとローパフォーマーとの間に大きな差があることなどが挙げられます。
具体的に、デプロイ頻度では、ハイパフォーマーは年間に 1460 回デプロイを行うのに対し、ローパフォーマーは年間に 3.4 回のデプロイで、ハイパフォーマーとローパフォーマーでは 417 倍の差があるとしています。
運用パフォーマンス
DevOps において、ソフトウェアデリバリーのパフォーマンスは組織全体の運用パフォーマンスに貢献するものと考えることができます。そのため、ソフトウェアデリバリーのスループットと安定性、デリバリーパフォーマンスの信頼性についてクラスター分析が行われ、クラスター分析の結果、以下の4つのクラスターに分類されたようです。
- 初期段階
プロダクト、機能、サービスの開発の初期段階にいる可能性があります。信頼性よりも、フィードバックを得ることやマーケットへの適合性の確認などを重視している可能性があります。 - フロー段階
スループット、安定性、信頼性のすべてのカテゴリーにおいて、優れたパフォーマンスを発揮します。 - 後期段階
頻繁にデプロイはしないものの、デプロイ自体の成功率は高く、徐々に改善が進んでいるチームです。チームと顧客は現在のアプリケーションやプロダクトの状態に概ね満足しています。 - 終了段階
チームや顧客にとってまだ価値のあるサービスやアプリケーションに取り組んでいるものの、積極的な開発は行っていません。
クラスターによって、プラクティスや技術的な能力には大きく差があります。最も高いパフォーマンスを発揮しているフロー段階クラスターは、他のクラスターと比べて以下の点に注力しているようです。
- 疎結合アーキテクチャ
チームが他のチームの変更を待たずにシステムの設計に大規模な変更を加えることができる範囲 - 柔軟性の提供
従業員の労働条件に関して企業がどれだけ柔軟か - バージョン管理
- 継続的インテグレーション(CI)
- 継続的デリバリー(CD)
昨年のレポートでは、ドキュメンテーションのプラクティスがソフトウェアデリバリーと運用(SDO)パフォーマンスの中心であることを発見しましたが、このフロー段階クラスターはそうではないようです。ドキュメンテーションに重点を置かずとも、ドキュメント以外の方法で SDO パフォーマンスを向上させる方法が数多く存在することや、コードの継続的なリファクタリングにより、別途のドキュメントを必要としないプロセスが構築されていることが、高いパフォーマンスを発揮している理由として考えられます。
SDO と組織パフォーマンスの関連要素
昨年までは SDO パフォーマンスと組織パフォーマンスに焦点を当て、調査されていました。それに加えて今年は、SDO や組織のパフォーマンスに関連している要素として以下の要素も調査されています。
- 燃え尽き症候群(バーンアウト)
- 知人等に自身のチームを薦める可能性
- 計画外の仕事
- エラーの傾向
クラウド
クラウドの利用は年々増加している上に、例年、確認されているクラウドの利用による組織全体のパフォーマンスの向上を今年も確認されました。クラウドの利用による組織パフォーマンスとその関連要素への影響は以下のとおりです。
好影響
- 業績目標を上回る可能性の向上
- ソフトウェアサプライチェーンセキュリティや信頼性の向上につながった可能性
- 企業文化や職場環境の成果
- 創造的な文化、燃え尽きの減少、安定性の向上、従業員満足度の向上
悪影響
- 変更障害率の向上
- 全てのユーザーから確認。今後、より詳しく調査する予定
SRE と信頼性
このレポートでは、SRE のプラクティスと信頼性の成果というインプットとアウトプットの両方が、他の DevOps 能力とともに予測モデルへのパラメータとして使用されています。今回の調査では、信頼性が低い場合、ソフトウェアデリバリーのパフォーマンスが高くても組織として成功するかはわからないことがわかりました。しかし、信頼性の向上とともに、ソフトウェアデリバリーによる組織の成功へと繋がることが明らかになりました。「Enterprise Roadmap to SRE」での Jカーブに沿うと今回の調査結果は以下のようなパターンであると言えます。
- SRE を導入する初期段階
- 信頼性エンジニアリングのプラクティスが少ない → プラクティスによる信頼性向上の予測はできない
- SRE の導入が進む
- SRE の利用が信頼性、組織のパフォーマンスを強く予測するような変曲点に達する
また、信頼性の成果については、信頼と協調を示す創造的な文化を持つチームほど、SREを活用する傾向があり、良好な成果を達成する可能性が高いことが示されました。
技術的な DevOps の能力
今年は様々な技術的手法による組織のパフォーマンスについても調査されています。調査結果を正しく理解するために、ソフトウェア開発の 2つの大きなフェーズである「インナーループ」と「アウターループ」も考慮されています。
- インナーループ(開発者のタスク)
- コーディング
- テスト
- バージョン管理へのプッシュ
- アウターループ
- コードマージ
- 自動化されたコードレビュー
- テストの実行
- デプロイ
- リリース
これら2つのフェーズの開発に優れている組織は、より速く、より高い信頼性でコードを出荷できることが明らかになりました。以下の機能が、優れた開発を行うために最も貢献する機能です。
- バージョン管理機能
- 継続的インテグレーション
- 継続的デリバリー
- 疎結合アーキテクチャ
これらの全ての機能を平均以上に使用する組織は、これらを使用しない組織よりも 3.8 倍の組織パフォーマンスを発揮していました。ただ、疎結合アーキテクチャについてはこれによって組織が燃え尽きやすくなってしまう可能性があることが明らかになりました。
昨年までの調査では、疎結合アーキテクチャによる燃え尽きの減少が確認されているため、矛盾している今年の結果はより詳細な調査が必要としています。
サプライチェーンセキュリティ
ソフトウェアサプライチェーンのセキュリティは SolarWinds に対しての攻撃を機に、大きな注目を浴びるようになりました。今年のレポートでは、サプライチェーンセキュリティについての調査も行っています。Supply Chain Levels for Software Artifacts(SLSA) と Secure Software Development Framework(SSDF) に関連するソフトウェアサプライチェーンセキュリティ対策はどの程度普及し、使われているのかについて調査しています。数百人のソフトフェア専門家を対象に調査した結果、以下のような発見がありました。
- SLSA と SSDF で具体化されたソフトウェアサプライチェーンセキュリティのプラクティスは、既に緩やかに採用されているが、さらに採用が進んでいく余地は十分にある
- 信頼性が高く、「非の打ち所がない」文化は、信頼度が低い組織文化よりも SLSA と SSDF のプラクティスを確立している傾向がある
- ソフトウェアサプライチェーンセキュリティの技術面の導入は、CI/CD の使用が大きく影響する
- 良いセキュリティプラクティスは、セキュリティリスクの低減に加え、燃え尽き症候群の減少などのメリットがある
また、まとめとして、SLSA や SSDF に従うことが直接的にパフォーマンス指標などを改善するわけではないが、セキュリティが他の開発優先事項の犠牲になる必要はないとしています。
興味深い調査結果
今回の調査において、予期していなかったもしくは受け入れがたい調査結果として以下のようなものを共有しています。これらは来年以降も引き続き調査し、再現性があるか、説明可能か、または外れ値として無視すべきかを判断していきたいとしています。
- トランクベースの開発手法のソフトウェアデリバリーへの影響
- 2014 年から 2021 年まで、トランクベースの開発手法はソフトウェアデリバリーパフォーマンスに好影響を与えていたが、2022 年では悪影響を与えることが示された
- 回答対象者の経験年数の変化によるものであると考えられている
- 回答者の経験年数は、2021 年は 5 年以下が 14%、16 年以上は 41% であるのに対し 2022 年は 5 年以下の経験年数が 35%、16 年以上の経験年数は 13% とキャリア初期の回答者が多かった
- ソフトウェアデリバリーパフォーマンスが組織パフォーマンスに有益であるのは、運用パフォーマンスが高い場合であるが、多くの回答者はその高い運用パフォーマンスを持っていなかった
- ドキュメンテーションの実践によるソフトウェアデリバリーパフォーマンスへの悪影響
- 以前のレポートと矛盾する。仮説として、ドキュメンテーションが高性能なチームを中心に自動化されたプラクティスになっている可能性がある
- トランクベース開発、疎結合アーキテクチャ、CI/CD は燃え尽き症候群を引き起こす可能性がある
- 今年の回答者の多くは、前年の回答者と比較して、キャリア初期であった
- 回答にあたって、イニシアチブをとる責任者ではなく、実際に技術的に実装を行う責任者が回答していた可能性がある
- 信頼性エンジニアリングのプラクティスは、ソフトウェアデリバリーパフォーマンスに悪影響を与える
- 必ずしも因果的ではなく、切り離されているものであると考えている
- 組織パフォーマンスの観点からソフトウェアデリバリーパフォーマンスを重視するためには、信頼性の確保が必要である
- SLSA 関連のプラクティスの追加によって、チームがセキュアなソフトウェアサプライチェーンの維持に向けてどれくらいアプローチの採用をしているか
- セキュリティプラクティスがバージョン管理、CI/CD を通してソフトウェアデリバリーおよび組織パフォーマンスに影響を与えるというメカニズムを発見した
今年の調査によって確認されたもの
今年の調査によって確認された現象は、過去数年間の反響や蓄積によるものとして以下のような現象をあげています。
- 技術力は相互に構築され、パフォーマンスを向上させる
- クラウドの利用には多くの利点がある
- 職場の文化と柔軟性が組織のパフォーマンスを向上させる
- 従業員の燃え尽きが組織の目標達成を妨げる
また、最後に DORA チームの研究について以下のように述べていました。
私たちの研究が、あなたとあなたの組織がより優れたチームとソフトウェアを構築するのを助けるとともに、ワークライフバランスを維持することができるようになることを願っています。
3.私感
- パフォーマンスの向上には信頼性の向上が鍵となる
- 信頼性の向上には様々なプラクティスを試していくことが重要である
- 技術の導入や文化の浸透には時間がかかるので、早い段階から SRE の導入が肝心である
- ただ技術の導入にはエンジニアへのコストも必要とするので、組織ごとにやり方を適応させていく必要がある
- サプライチェーンセキュリティは他の開発事項の犠牲になりがち
- セキュリティリスクの低減や副次的効果として組織パフォーマンスの向上が見込めるなど、導入することによるメリットは大きい
- 導入へのハードルを下げること、導入後の運用が簡易になることが重要であると考える
4.参考文献
- 2022 Accelerate State of DevOps Report
https://services.google.com/fh/files/misc/2022_state_of_devops_report.pdf - 2022 年の Accelerate State of DevOps Report を発表: セキュリティに焦点
https://cloud.google.com/blog/ja/products/devops-sre/dora-2022-accelerate-state-of-devops-report-now-out