
画像: iStockphoto/Rawpixel
従来のソフトウェア開発ライフサイクル (SDLC) モデルは次のようになります。
- 計画
- 実装
- テスト
- ドキュメント
- 展開と保守
- 維持
SDLCモデルは長年使用され、業界で大きな成果を上げてきました。しかし、コンテナ化されたアプリケーションの登場と普及に伴い、古いモデルはもはや通用しなくなっています。なぜでしょうか?それはスピードです。コンテナ化されたアプリケーションの主なメリットの一つは、作成とデプロイのスピードです。
さらに、特にエンタープライズレベルのビジネスにとって、コンテナ化されたアプリケーションとサービスは、デプロイメントからスケーリング、アップデートまで、ほぼ完全に自動化できるという利点があります。この2つの側面(スピードと自動化)は、従来のライフサイクルモデルでは到底実現できないものです。
ここでCI/CDが活躍します。CI/CDとは?継続的インテグレーションと継続的デリバリー。この記事は「CI/CDとは?」(無料PDF)としてダウンロードすることもできます。
参照:採用キット: データベース管理者(TechRepublic Premium)
パイプラインとは何ですか?
CIやCDについて話す前に、まずパイプラインとは何かを理解しておくのが最善です。パイプラインとは、一連のイベントまたはジョブが順番に接続されたグループです。しかし、各シーケンス(またはステージ)は前のステージの出力に依存しているため、実際には少し複雑です。つまり、
ステージ1 > 出力 > ステージ2 > 出力 > ステージ3 > 出力
いずれかのステージの出力が失敗すると、次のステージも失敗します。CI/CDパイプラインは自動化が全てです。コードビルドの開始、自動テスト、そしてステージング環境または本番環境への自動デプロイです。複雑ですが、非常に高速なパイプラインです。
継続的インテグレーション (CI) とは何ですか?
継続的インテグレーションとは、開発者が一日を通して新しいコードを共有リポジトリ(GitHubなど)に統合できるプロセスです。コミットを継続的に送信することで、システム全体(通常は自動化によって)がコミットの初期段階で統合バグを検出し、問題を即座に解決できるようになります。
新しいコードが既存のリポジトリにマージされると、新しいビルドがトリガーされます。ビルドが完了すると、ビルドに対してテストが自動的に実行され、問題がないことが確認されます。このコードの統合は継続的に行われます(CIの「C」の由来はここにあります)。
継続的デリバリー (CD) とは何ですか?
継続的デリバリー(CD)はCIサイクルの最後に行われ、開発段階から本番段階への統合コードの自動配信を担います。CDの役割は、統合コードの自動配信だけでなく、配信されたコードにバグや遅延がないことを確認することです。
継続的デリバリーは、開発者が新しいコードを高い一貫性をもってメインブランチにマージするのに役立ちます。また、このサイクルのCD部分は、コードの品質テストと、機能的なビルドを本番環境にリリースできるかどうかを確認するためのチェックも行います。
CI/CDの段階
CI/CDの開発サイクルは従来のモデルよりも短く、段階は次のとおりです。
- 専念
- 建てる
- テスト
- 展開する
このライフサイクルはステージ数が少ないだけでなく、継続的に実行されます。そのため、開発者が日中リポジトリにコミットするたびに、次のステップが自動的に実行されます。Jenkinsなどの自動化ツールのおかげで、サイクルはステージからステージへと継続的に移行します。
CI/CDの長所と短所
この開発サイクルには明らかにメリットとデメリットがあります。メリットの例をいくつか挙げます。
- 展開のスピード
- より高速なテストと分析
- より小さなコード変更
- より優れた、より迅速な障害分離
- コードカバレッジの向上
- 本番環境への自動デプロイ
- 壊れたコードを出荷しない
- プロセスは繰り返し可能
- 解決までの平均時間の短縮
- バックログの減少
- 顧客満足度の向上
- 多数のオープンソースツールが利用可能
CI/CD の欠点は次のとおりです。
- 新しいスキルセットを学ぶ必要がある
- 自動化を実装するための急峻な学習曲線
- 多額の先行投資
- レガシーシステムではCI/CDがサポートされることはほとんどない
- 高い規律と品質への献身
CI/CD はあなたのビジネスに適していますか?
これは難しい質問であり、綿密な計画が必要になります。しかし、開発ライフサイクルを加速し、より一貫性のある製品を提供したいと考えているなら、継続的インテグレーション/継続的デリバリーが最適な選択肢となるかもしれません。