ビジネスでCI/CDが必要な理由 トップ10 #GitLab #CI/CD #DevOps #継続的インテグレーション #継続的デリバリー
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「GitLab」社のブログで2022年2月15日に公開された「10 Reasons why your business needs CI/CD」の日本語翻訳です。
ビジネスでCI/CDが必要な理由 トップ10
ソフトウェア業界の企業でなくても、ソフトウェアと無関係な企業はありません。
競合他社、顧客、投資家、社員の全てが、自社で何らかの製品を作る際に、常に最新のソフトウェアを必要としています。
そのため、現実を(DevOps も含めて)受け入れ、最も効率的な継続的インテグレーションとデリバリーパイプラインの導入に投資しましょう。この戦略を経営陣にどう売り込むか、悩んでいませんか?まず、一番の競合が、すでに間違いなく 継続的インテグレーション/継続的デリバリー (CI/CD) を活用している事実を指摘することから始めましょう。そして、さらに強力な説得術が必要な方向けに、ビジネスでCI/CDが必要な理由トップ10をまとめました。
CI/CDとは?
CI/CDは、自動化機能を活用してコード開発とデリバリーを劇的に効率化する2つのステップからなるプロセスです。CIは、ソースコードの統合やバージョン管理といった開発者のタスクを効率化し、ソフトウェアをより早く本番環境にデプロイできます。CDは、ソフトウェアのテストとデプロイメントを自動化します。CI/CDを併せ持つことは、モダンなソフトウェア開発における強力かつ比類のない主導力となり、ビジネスにとって計り知れない利益をもたらします。
ビジネスにおけるCI/CDの利点は?
CI/CDは、ビジネスにとって多くのメリットをもたらします。
-
優れたコード品質の確保
GitLab社の「2021 Global DevSecOps Survey」によると、DevOpsを行う第一の理由としてコード品質をあげており、DevOpsにチームが最も必要とするプロセスは、言うまでもなくCI/CDであると述べています。CI/CDパイプラインによりテストの自動化が可能になり、開発者はコード上の問題をほぼリアルタイムで把握できます。この「Failing Fast = 早く失敗せよ」という考え方は、バグのあるコード対応でチームの時間やリソースを無駄にしないこと、また開発者が他のプロジェクトに移った後、延々と修正リクエストに悩まされる必要がないことも意味しています。時間とコストを節約でき、開発者はプロジェクト間で右往左往することもなく、良い事尽くしと言えます。 -
リリースの加速 / 迅速なデリバリ
CI/CDの利点について懐疑的なメンバーには、グローバル金融企業であるゴールドマンサックスのサクセスストーリーを共有してみましょう。ゴールドマンサックスのテクノロジー部門は、CI/CDの導入により、2週間に1回だったコードのビルドを、1日1,000回以上にまで改善できました。CI/CDパイプラインは、ソフトウェアのリリース速度を上げる、言わばターボエンジンのようなものです。コードが早くリリースされればされるほど、より多くの新しいコードが開発、リリースされ、それが無限に続けられます。要するに、CI/CDパイプラインがうまく機能していれば、貴重な開発者リソースを無駄にすることはないのです。 -
CI/CDパイプライン:自動化によるコスト削減
ソフトウェア開発プロセスに「人」が介入する必要がなければ、時間とコストの削減に繋がります。そのため、自動化はDevOpsを成功させる土台となります。CI/CDは、ハンドオフ、ソースコード管理、バージョン管理システム、デプロイ、そして当然、テストを自動化します。
その中でも、 テストの自動化は最も重要であると言っても過言ではないでしょう。2021年の我々の調査では、リリースが遅れる理由の第一位にテストが挙げられています。リリースの遅れは、コスト、ブランディング、広報、さらには信頼性の観点からもビジネスに影響を与えるだけでなく、迅速な市場投入を目指すビジネスにとっては致命的です。従来、ソフトウェアのテストは手作業で行われており膨大な時間を要したため、開発に従事する企業は年に1、2回しか新しいコードをリリースできませんでした。昨今では、企業は継続的にリリースし続けることが求められており、それを可能にするには自動化されたソフトウェアテストが不可欠です。 -
障害分離
DevOpsとCI/CDがソフトウェア開発において普及する以前は、開発チームはコードに問題があることは分かっていても、どこで問題が発生しているのかを正確に把握するのに苦戦していました。CI/CDと自動化されたテストが、それを変革したのです。開発者は、コードの不具合を容易に特定し、切り分けられるようになり、生産性を飛躍的に向上できるようになりました。 -
ロールバックの簡略化
CI/CDパイプラインを使用すれば、開発者は早い段階で失敗に気付き、さらに迅速にリカバリーできます。コードを本番環境にプッシュし、問題があればロールバックするだけの作業で済みます。コードのロールバックが容易にできれば、チームの時間や労力、リソースが節約でき、問題のあるコードの迅速な修復へと繋がります。 -
継続的なフィードバック
統一されたCI/CDプロセスは、DevOpsプラットフォームの一部として動作し、ビジネスのステークホルダーを含むチーム全員が、今何がどこで起きているか、何が間違っている可能性があるかを確認できるようになります。これは一見単純なようですが、実際のところ、ソフトウェア開発における一元化はほぼ革命的とも言えるでしょう。
以前は、単純に膨大な数のツールが存在したため、プロジェクトマネージャーは、状況を把握する際に様々なツールを確認し、そして多くのメンバーにコンタクトを取る必要がありました。開発者も運用担当者も、当然うまくいくはずもありません。特に問題が発生したときには、時間とリソースの無駄であるのは明らかでした。 -
最適な透明性と説明責任
継続的なフィードバックのおかげで、CI/CDパイプラインを通して、ソフトウェア開発プロセス全体をビジネス面に対して完全に透明化できるようになりました。プロダクトマネージャーは、プロジェクト状況を一目で確認でき、必要に応じて責任追跡できます。 -
平均解決時間(MTTR)の改善
CI/CDパイプラインの可視性により、DevOpsチームは即座に問題に気付き、迅速に修復できます。迅速な問題解決能力は、開発の重要な指標であるMTTR(Mean Time to Resolution)の核心となるものです。MTTRが改善されればされるほど、DevOpsチームはより効率的に作業し、より迅速にソフトウェアをリリースできるので、MTTRは言わばビジネスの収益に直接的に影響を与える指標と言えるでしょう。 -
メトリクスデータのモニタリング
コードが実世界でどのように機能しているかを、チームは知る必要があります。しかし、従来のソフトウェア開発手法では、モニタリングのメトリクスが存在しないことがよくありました。チームがコード上の問題に気付き、エンドユーザーに気付かれるよりもずっと前に、ロールバックできるのが理想的と言えるでしょう。CI/CDパイプラインにより、様々なメトリクスに関する継続的なフィードバックが得られるので、その「理想」を現実に変えられます。メトリクスデータへのアクセスは単なる時間の節約にとどまりません。バグだらけのコードやうまく動作しないアプリケーションと関わりたくないのはどの組織でも同じでしょう。 -
バックログの重大ではない不具合の削減
CI/CDが時間とコストの節約になることは、もう分かりいただけたと思います。開発者は古いコードを修正して、よりクリーンで効率性の高いコードに書き換えるなど、普段できない作業により取り組めるようになります。開発者がバックログだけでなく、重大ではない不具合にも取り組む必要がなくなるということは、DevOpsとCI/CDによってチームにもたらされた大変革と言えるでしょう。