CI/CDツールの導入失敗はどの段階で起きるのか
CI/CDツールの導入失敗は、ツールを選んだ時点で決まるとは限りません。導入の流れを段階に分けて考えると、どこに問題があったのかを特定しやすくなります。これから導入する企業にとっても、注意点を整理する手がかりです。失敗をとらえるための考え方を2つ紹介します。
計画・移行・運用の3段階でとらえる
CI/CDツールの導入は、目的や範囲を決める計画段階、既存の手順をツールに置き換える移行段階、日々の開発で使い続ける運用段階の3つに分けられます。段階ごとに起こりやすい問題は異なります。
例えば、属人化が解消しないという結果は運用段階で表面化しますが、原因は計画段階にある場合があります。結果が現れた段階だけを見て対策を考えるのではなく、さかのぼって原因を確認することが大切です。段階ごとに確認項目を用意しておくと、見直しを進めやすくなります。
失敗の原因は複数の要因が重なる
導入の失敗は、ツールの機能不足、社内の体制、既存システムの状況など、複数の要因が重なって起こる場合があります。一つの原因だけに注目すると、対策が不十分になるおそれがあります。
例えば、リリースミスが減らない場合でも、ツールの設定の問題なのか、運用ルールの問題なのか、テストの不足なのかによって対策は変わります。問題が起きたときは、ツール、人、手順の3つの面から原因を洗い出してみましょう。特定の担当者の責任と決めつけない姿勢も大切です。
計画段階で属人化の解消につながらない理由
CI/CDツールを導入してもビルドやデプロイ(本番環境への反映)の属人化が解消しない背景には、計画段階での見落としがある場合があります。ツールを入れるだけでは、人に頼った状態は変わりません。計画段階で起こり得る3つの問題を解説します。
ツールの導入自体が目的になる
CI/CDツールを導入すること自体が目的になると、何を自動化し、どのような状態を目指すのかがあいまいなまま進んでしまう場合があります。その結果、一部の作業だけが自動化され、残りは従来どおり担当者の手作業に頼る状態が続きます。
計画段階では、属人化している作業を具体的に挙げ、どの作業を誰でも実行できる状態にするのかを目標として決めましょう。目標が明確であれば、導入後に効果を確認する基準としても使えます。
担当者の知識を棚卸ししない
属人化している作業には、手順書に書かれていない判断や工夫が含まれていることがあります。これらを洗い出さないままパイプライン(ビルドからデプロイまでの処理の流れ)を作ると、肝心な部分が抜け落ち、結局その担当者に確認しなければ進められない状態が残ります。
導入前に、担当者と一緒に作業を一つずつ確認し、暗黙の手順や判断の基準を文書にしておきましょう。棚卸しの結果をもとにパイプラインを設計すると、担当者以外でも理解しやすい仕組みを作れます。
管理者が1人のまま運用を始める
CI/CDツールの設定を1人の担当者だけが行い、そのまま運用を始めると、今度はツールの管理が属人化する場合があります。作業の属人化をツールの属人化に置き換えただけでは、根本的な解決とはいえません。
導入の段階から複数人で設定に関わり、設定の内容や変更の手順を共有しておきましょう。管理者のアカウントを複数人に付与し、設定の変更にはほかのメンバーの確認を必要とする決まりを作ることも有効です。
手作業とFTPアップロードからの移行で失敗する原因
手作業でビルドし、FTPでサーバーにアップロードする運用から、CI/CDツールへ移行する際につまずく場合があります。FTPとはファイルをサーバーに転送する通信方式です。移行で起こり得る失敗の原因を2つに分けて解説します。
サーバー側の前提条件を確認していない
CI/CDツールからサーバーへ自動でデプロイするには、ツールからサーバーへ接続できることが前提です。共用のレンタルサーバーなどでは、利用できる接続方式に制限があったり、外部からの接続を許可する設定が必要だったりする場合があります。
移行前に、サーバー側で使える接続方式や、認証情報の扱い方を確認しましょう。サーバーの契約内容によっては対応できないこともあるため、サーバーの提供会社への確認や、デプロイ先の見直しも検討が必要です。
旧来の手順との並行運用が長引く
移行の途中で、新しいパイプラインと旧来の手作業が並行して使われる期間が長引くと、どちらの方法で反映されたのかがわからなくなる場合があります。手作業でアップロードしたファイルが、パイプラインの反映で上書きされるといった混乱も考えられます。
移行の期限を決め、切り替えた後は旧来の手順でのアップロードを原則として行わないルールを定めましょう。サーバーへの接続権限を整理し、例外的に手作業が必要な場合の手順と承認者も決めておくと安心です。
ITトレンドでは、最新の製品・サービスを多数比較・掲載しています。まず資料請求して、さまざまな製品の機能や特徴を比較してみてください。忙しい業務時間内でも、各社に問い合わせる手間なく、たった1回の入力(約60秒)でCI/CDツールの一括資料請求が可能です。浮いた時間で、じっくりと製品を比較検討し進めましょう。
運用段階でリリースミスや処理の遅れが残る原因
CI/CDツールの運用を始めた後も、リリースミスが減らない、繁忙期に処理が遅くなるといった問題が残る場合があります。運用段階で起こり得る3つの原因を解説します。いずれも、ツールの設定と運用ルールの両方から見直すことが大切です。
パイプラインの外で手作業が続く
CI/CDツールを導入しても、設定ファイルの差し替えやデータベースの変更など、一部の作業がパイプラインの外で手作業のまま残っていることがあります。手作業の部分では、従来と同じように抜け漏れや誤りが起こる可能性があります。
リリースの手順を最初から最後まで書き出し、どの作業がパイプラインに含まれていないかを確認しましょう。すぐに自動化できない作業は、チェックリストや承認ステップとしてパイプラインに組み込むと、確認漏れを減らせます。
環境ごとの設定の差が残る
検証環境では問題がなかったのに、本番環境で不具合が起こる場合、環境ごとの設定の違いが原因の一つとして考えられます。設定値の違いや、インストールされているソフトウェアのバージョンの違いなどが影響します。
環境ごとの設定値をCI/CDツールで一元管理し、どの値が使われたかを記録に残しましょう。実行環境の構成をコードで定義し、検証環境と本番環境をできるだけ同じ構成に保つ工夫も、リリースミスを減らすことにつながります。
繁忙期にビルドが滞る
リリースが集中する繁忙期には、CI/CDツールの処理が遅くなることがあります。同時に動かせるジョブ(ビルドやテストなど1回分の処理)の数の上限、実行環境の性能不足、テストの増加、外部サービスの応答の遅れなど、複数の要因が考えられます。
実行履歴から、どの処理で待ち時間が発生しているかを確認しましょう。同時実行数を増やせるプランへの変更や実行環境の追加、テストの並列化、繁忙期のリリース日程の調整など、原因にあわせた対策を組み合わせることが大切です。
失敗を避けるCI/CDツール導入の進め方
ここまで紹介した失敗は、導入の進め方を工夫することで避けやすくなります。目標を明確にし、小さく始めて改善を続けることが基本です。失敗を避けるための2つの進め方を紹介します。導入済みの企業が運用を立て直す際にも活用できます。
目標を数値で決めてから始める
導入の目標は、手作業のデプロイの回数をゼロにする、リリースにかかる時間を半分にするなど、できるだけ数値で決めましょう。数値の目標があれば、導入後に効果が出ているかを客観的に確認できます。
導入前の状態も記録しておくことが大切です。現在のリリースにかかる時間やミスの件数を把握しておけば、導入後と比較して改善の度合いを示せます。社内への報告や、追加の投資を判断する材料としても使えます。
なお、目標は一度決めたら終わりではなく、導入後の状況にあわせて見直しましょう。
小さく始めて振り返りを重ねる
最初から多くのシステムをまとめて移行しようとすると、問題が起きたときの影響が大きくなります。まずは一つのプロジェクトや一部の作業から始め、うまくいった方法をほかに広げていきましょう。
導入後は、定期的にチームで振り返りの場を設け、失敗したビルドの傾向や残っている手作業を確認します。振り返りの結果をパイプラインや運用ルールに反映し続けることで、導入の効果を高めていけます。振り返りの記録を残しておけば、次に別のシステムへ広げる際の手引きとしても活用できます。
導入計画の段階から比較したいCI/CDツール
導入計画を立てる段階で比較候補にできるCI/CDツールと、DevOps関連のサービスを紹介します。既存の手順からの移行方法や支援の範囲は、資料で確かめましょう。
Jenkins (CloudBees, Inc.)
- ビルドとテストを自動化し継続的に変更検証。
- パイプライン定義で標準化CI/CDフロー構築。
- 豊富なプラグインで多様なツールや環境と連携可能。
OctopusDeploy (Octopus Deploy)
- 多様な技術・プラットフォームに対応
- 自動デプロイ、リリース管理、環境設定、セキュリティ制御機能
- 数千組織の利用で、ソフトウェアデリバリーパイプラインを効率化
AWSCodePipeline (アマゾンウェブサービスジャパン合同会社)
- リリースプロセスのステージ定義と合理化
- 新機能を迅速にリリースし、フィードバックを繰り返し反映
- ニーズに合わせて独自のプラグインを使用
DevOps (アクセンチュア株式会社)
- アジャイルとDevOpsで短期間の価値提供
- 新旧システム対応と運用効率向上。
- 品質確保と継続的リリースを支える開発運用基盤。
BitbucketPipelines (アトラシアン株式会社)
- 100超のテンプレートとワークフローを提供。
- クラウドでスケール、CI/CDを組織全体で一元管理。
- 設定とログ監視でデプロイ状況を可視化し迅速対応
Travis CI (Travis CI GmbH)
- CI/CDパイプラインの短時間構築
- 並列処理や多環境ビルドに対応
- GitHub等と連携し、コード変更時にビルドとテストを自動実行
まとめ
CI/CDツールの導入失敗は、計画、移行、運用のいずれかの段階に原因がある場合があります。計画段階では目的の明確化と知識の棚卸し、移行段階ではサーバー側の前提条件の確認と並行運用の整理が大切です。運用段階では、残った手作業や環境の差、繁忙期の負荷への対策を進めましょう。目標を数値で決め、小さく始めて改善を続けることも重要です。導入の進め方にあうCI/CDツールを比較したい方は、ITトレンドの資料請求を活用してください。

