CI/CD 導入時にやりがちな5つの誤り

この記事はRaj Subrameyerによるゲスト投稿です。

アジャイル環境で働いている方なら、継続的テストDevOpsといった言葉を聞いたことがあるでしょう。欠陥をより早期に見つけることの重要性は、ずっと前から認識されており、チームは開発プロセスを開始するときからテストを始め、デリバリーパイプラインのさまざまなフェーズを通じて継続的に実行できるよう、テストをシフトレフトしてきました。

リリースサイクルが速くなるにつれ、コラボレーションが製品のデリバリーを成功させるためのキーになりました。結果として、開発・テスト・運用チームが1つの組織として協力するDevOpsに注目が集まりました。

DevOpsと継続的テストを結び付けるのが、シームレスなCI/CDパイプラインです。そのため、企業はなりふりかまわずCI/CD統合に突き進んでは、障害にぶつかって足踏みしています。

CI/CD導入時におかしがちな5つの誤りを検討し、罠にはまらないようにしましょう。

1. 用語の意味をめぐって混乱する

CI/CDパイプラインが導入されているとは、何を意味するかについて、明確に認識されていないケースがあります。CIとCDの違いを認識していないチームもあり、それが混乱の原因になっています。

次の用語について皆と話してみましょう。 

  • 継続的インテグレーション: 1日に数回、継続的にコードをバージョン管理システムまたはメインブランチにマージすることを意味します。
  • 継続的デリバリー: 複数の変更を複数の非運用環境にデプロイし、自動的にテストを開始して成功するかどうかを確認することを意味します。
  • 継続的デプロイメント: アプリケーションを常にデプロイ可能な状態に保ち、Netflix、Amazon、Facebookといった企業が行っているように、1日に複数回アプリケーションをデプロイできるようにすることを意味します。

これらの用語の意味を明確にすると、実装のさまざまな段階で何を行い、どのツールを使うべきかを理解するのに役立ちます。

2. 間違ったプロセスを自動化する

大部分の企業は、CI/CDを一から実装するか、完全に自動化されたCI/CDパイプラインに向けて段階的に移行します。その際、間違ったプロセスを自動化する、あるいは優先度の低いプロセスを自動化するという誤りをおかすことがよくあります。そして、CI/CDパイプラインが付加価値を提供しないと文句を言うのです。

CI/CDに飛びこむ前に、以下のような基本的な点を明らかにしましょう。

  • より迅速にリリースするさまたげになっている、最も時間のかかるプロセスは何か?
  • 自動化する必要があるものは何か?優先度が最も高いものは何か?
  • どのようなテストを作成する必要があり、何を実行する必要があるか?
  • 非運用環境および運用環境への自動デプロイメントをどのように処理するか?

これらの質問への答えは、自動化に優先順位を付け、時間を節約するのに役立ちます。

3. チームのコラボレーションが足りない

CI/CDの導入を成功させるには、QA、DevOps、開発、インフラチームが協力する必要があります。これらのチームが独立して作業を始め、互いに会話をしない場合、特にCI/CD環境で作業している場合には、問題が起きます。

オープンなコミュニケーションのさまたげになるものがあれば、直ちに対処し、複数のチームにまたがる自由な情報の流れを確保する必要があります。チームのメンバーが常にゴール、責任、期待値について明確に理解している必要があります。

4. 適切なメトリクスを適切な方法で計測していない

大きな組織でありがちなのは、進捗を測るために使用しているダッシュボードやメトリクスがばらばらであることです。複数のチームで一貫性がなければ、コミュニケーションギャップにつながり、余分なツールやライセンスに使う費用がかさむことになります。あるチームのデータは別のチームでは意味をなしません。

そんなことは終わりにするべきです。全社的に統一された標準的なメトリクスおよびダッシュボードを持ち、ステークホルダーやチームがCI/CDパイプラインの有効性を理解できるようにするべきです。チームはそれぞれ製品の異なる機能を担当しているとしても、顧客が使用するのは全体としての製品です。ですから、共通のメトリクスとダッシュボードを持つことで、誰もが開発の進捗およびその他の関連メトリクスについて統一された認識を持つことができます。

5. 適切なツールやリソースがない

通常、スタートアップや中規模の企業には、CI/CDパイプラインを確立するのに必要なツールに投資する資金やリソースがありません。あったとしても、どのツールが自分たちのニーズに合っているかが明確ではありません。利用可能なツールは膨大にあり、たちまち混乱に陥ります。

ですから、小さく始めましょう。すでに利用可能なツールやリソースを分析し、チーム全体でブレーンストーミングを行います。1日に何回も機能をプッシュできるような完全なCI/CDパイプラインに向けて、段階的に移行する計画を立てましょう。 

CI/CD導入時にありがちな誤りを知っておくと、障害を乗り越えるための準備を整えることができます。CI/CDへの移行は容易ではありませんが、投資の見返りは、トランスフォーメーションにかけた労力、時間、費用を上回ります。

(この記事は、開発元Gurock社の Blog 「5 Common Mistakes Teams Make During CI/CD Implementation」2021年9月1日の翻訳記事です。)

eBook 公開中

Paul Gerrard著 効果的なテスト管理12の秘密 (日本語)

テスト計画やテスト管理に役立つ12のトピックを解説します。

詳細はこちら