SpeedData

CI/CD パイプラインの図

CI/CD パイプラインにおける安定性と機敏性の両立を達成

2024年8月30日
著者: Sergey Katsev, Leo Vasiliou, Anna Jones
翻訳: 逆井 晶子

この記事は米Catchpoint Systems社のブログ記事「Achieving stability with agility in your CI/CD pipeline」の翻訳です。
Spelldataは、Catchpointの日本代理店です。
この記事は、Catchpoint Systemsの許可を得て、翻訳しています。


このブログを読み、同じテーマに関する最近のウェビナーを視聴した後、より良いソフトウェアを構築し、ソフトウェア開発ライフサイクル全体で効果的にコラボレーションし、Internet Performance Monitoring(IPM)を使用してDevOpsライフサイクル全体を監視する方法を理解することができるようになることを期待しています。

これは誰に当てはまるのでしょうか?
DevOpsおよびAppDevの担当者、特に成熟度の高い企業の担当者の方々に向けています。

率直に言って、初期のスタートアップでは、誰もがすべてを行います。
成功するには、敏捷性が必要です。
その結果、必ずしも安定性が必要ではありません。
お客様を獲得することが目的であり、そのためには実験が必要です。

しかし、そのような企業は成長します。
お客様がいるため、彼らを失望させることはできません。
システムがダウンすることも、主要な機能が壊れることも、データが誤っていることも許されませんが、それでもイノベーションを止めることもできません。
これが私たちのターゲットです。

安定性を保ちながら機敏性を実現する方法について話すとき、要点は、新しいお客様を獲得しながら既存のお客様を満足させ続ける方法です。

これは誰もが目指す目標ですが、必ずしも簡単なことではありません。

IPM を活用して CI/CD で安定性と機敏性を実現する

VP of Engineering の Sergey です。
Catchpoint の IPM プラットフォームを担当していますので、もちろんバイアスがかかっていますが、同時に Catchpoint は私が説明した成熟したカテゴリーに非常に当てはまります。
私たちは、失望させることのできない大規模な顧客基盤を持っています。

私たちは、何千ものコンポーネントと多くの依存関係を持つ大規模なインフラストラクチャを持っています(すぐに詳しく説明します)。
それでも、私の仕事の一つは、革新を続け、新しい機能や機能を提供することです。
Catchpoint では、機敏でありながら安定していなければなりません。

IPM を中心とした CI/CD の5つのヒント

ここで、IPM を中心としたこの微妙なバランスを達成するための私自身の経験から得た5つのヒントを共有したいと思います。

#1 - 安定性を達成するために必要なObservabilityを設定する

間違った決断をしたことがあります。
安定性より機敏性を優先した時もありました。
それは難しい選択です。

エンジニアリングリーダーとして、私たちは常に可能な限り迅速に進み、チームの負担を最小化し、最も興味深いプロジェクトに取り組んで大きな成果を上げたいと考えています。
しかし、アプリケーションやプラットフォーム内部で何が起こっているかを監視するための適切なシステムを整備せずに過度に迅速に進めると、大きな問題を引き起こす可能性があります。

負担を軽減する方法は、単に CI/CD を実践するだけでなく、適切に実行するために、システム全体を理解し、正確に測定する方法が必要です。

#2 - すべての依存関係(内部および外部)を分析する

最近のInternet Resilience Reportによると、回答者の77%がサードパーティへの依存関係がインターネットレジリエンスの成功に極めて重要または非常に重要であると回答しました。
異なるチームが製品の保守または開発に関わっている場合、データベース、サーバー、ストレージなどの内部依存関係を分析する可能性がありますが、DNS、CDN、電子メールサービスなどの外部依存関係を評価することはあまりありません。

さらに、ほとんどの人はお客様側のことを考えていません。
すべてのお客様が単一の場所に集中し、その地域で主要なISP障害が発生した場合、お客様がサイトにアクセスできなくなる可能性があります。

繰り返し自問すべき質問は、これらの依存関係のいずれかが影響を受けたときに、安定性が影響を受けるかどうかです。

そうであれば、サードパーティの依存関係を CI/CD プレイブックやランブックに組み込む方法を見つける必要があります。
IPM は Internet Stack全体をカバーします。
IPM は、最も重要な部分にレジリエンスを実装することに役立ちます。
また、内部のお客様(従業員)および外部のお客様(お客様)の両方の依存関係を理解し、それらを適切に評価、考慮、優先順位付けし、監視できるようにします。

Internet Stackの図
Internet Stackの図
#3 - Shift wide(left and right)

Shift wideとは何を意味するのでしょうか?
まず、少し遡って説明しますが、Shift leftとは、開発プロセスの早い段階で問題を発見することでコストを削減する戦略です。

しかし、それは常にそうであるとは限りません。
例えば、ボタンの色を変更するような単純な変更については、本番環境でのテスト Shift Rightでも問題ありません。(これについてはさらに詳しく説明します)。
shift wideには、すべての問題に迅速に対応し、問題が発生した場合には修正するための共通の基準、つまり共通の標準化された測定値が必要です。
ここでIPMが役立ちます。

#4 - CI/CD パイプラインの中心に IPM を共通言語として使用する

では、CI/CD パイプラインについてさらに詳しく見ていきましょう。

CI/CD パイプラインの図
CI/CD パイプラインの図

すべての異なるフェーズを見渡すと、「監視」が中心に位置していることに気が付くでしょう。

実際、IPM は CI/CD パイプラインの中で非常に重要な段階です。
ソフトウェアライフサイクルのさまざまな段階を担当するチームがコミュニケーションに使える共通の言語や基準を提供します。

たとえば、製品管理チームは IPM データを使用して、システムのパフォーマンスがどのようであるべきかを特定することができます。
その後、DevOpsやOpsチームと協力して、ソフトウェアが存在する前に監視戦略を作成することができます。
開発者は同じデータを使用して、コードが正しく動作することを確認することができます。
テスターはシステムテストに使用し、運用段階に進むまでに、全員が同じページにいて、システム全体が意図どおりに動作していることを確認することができます。

私はこれを「観測可能なソフトウェア開発ライフサイクル(OSDLC)」と呼んでいます。

#5 - 労力を軽減し 運用費を節約するための「コードとして」の自動化と統合

最後に、Observabilityをコードとして取り扱うことについて話しましょう。

結局のところ、これは CI/CD です。
すべてがワークフローに自動化される必要があります。
そのためには、自動化が必要であるだけでなく、シームレスでシンプルでなければなりません。
それを達成するためには、OSDLC の一部として実装しているObservabilityをコードとして扱う必要があります。

これにより、特に大規模に作業する場合にチームの負担を軽減し、運用費を節約することができ、手動の反復的なプロセスに時間とリソースを費やす必要がなくなります。

Catchpoint では、もちろん、IPM を CI/CD パイプラインに組み込むための多くの方法があります。
おそらく、お客様がObservabilityをコードとして実行する最も成熟した方法は、REST API を使用して新しい機能がリリースされるたびに新しいテスト構成を作成することです。

これにより、デプロイメントにタグ付けし、アドホックテストを実行して正常に動作していることを確認し、Webhooksやメールを使用してアクションやその他の自動化をトリガーし、収集したすべてのデータをデータウェアハウスに送信して他のデータソースと組み合わせて、最終的に目標とする成果(ビジネスKPIレポートなど)を実現することができます。

問題が発生するのは「もし」ではなく「いつ」の問題

最終的には、シンプルな質問に行き着きます。
インシデントが発生した場合、その影響はどの程度になるか?という問題です。
インシデントが発生するかどうかではなく、いつ発生するかということが重要です。

先に述べたInternet Resilience Reportでは、企業の 43% が、インターネットの障害や劣化による経済的影響または損失を毎月 100 万ドル以上と見積もっています。
IPM を OSDLC 全体で共通言語として使用し、これらの障害がビジネスに影響を与える前に先手を打つことを始めましょう。

Internet Resilience Report 2024 (Catchpoint)の図
Internet Resilience Report 2024 (Catchpoint)の図

Catchpoint の IPM プラットフォームがどのように役立つかについて詳しくは、ソリューションエンジニアにお問い合わせください

さらなるリソース

これらのコンセプトをさらに詳しく説明した関連ウェビナーをご覧ください(サンプルの CI/CD ワークフローを含む):https://www.catchpoint.com/webinar/how-to-achieve-agility-with-stability

Catchpoint が DevOps ライフサイクル全体でどのように役立つかを確認してください:https://www.catchpoint.com/application-experience/devops-lifecycle