CI/CD入門 | TechRepublic

CI/CD入門 | TechRepublic

画像: iStockphoto/Rawpixel

従来のソフトウェア開発ライフサイクル (SDLC) モデルは次のようになります。

  1. 計画
  2. 実装
  3. テスト
  4. ドキュメント
  5. 展開と保守
  6. 維持

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の開発サイクルは従来のモデルよりも短く、段階は次のとおりです。

  1. 専念
  2. 建てる
  3. テスト
  4. 展開する

このライフサイクルはステージ数が少ないだけでなく、継続的に実行されます。そのため、開発者が日中リポジトリにコミットするたびに、次のステップが自動的に実行されます。Jenkinsなどの自動化ツールのおかげで、サイクルはステージからステージへと継続的に移行します。

CI/CDの長所と短所

この開発サイクルには明らかにメリットとデメリットがあります。メリットの例をいくつか挙げます。

  • 展開のスピード
  • より高速なテストと分析
  • より小さなコード変更
  • より優れた、より迅速な障害分離
  • コードカバレッジの向上
  • 本番環境への自動デプロイ
  • 壊れたコードを出荷しない
  • プロセスは繰り返し可能
  • 解決までの平均時間の短縮
  • バックログの減少
  • 顧客満足度の向上
  • 多数のオープンソースツールが利用可能

CI/CD の欠点は次のとおりです。

  • 新しいスキルセットを学ぶ必要がある
  • 自動化を実装するための急峻な学習曲線
  • 多額の先行投資
  • レガシーシステムではCI/CDがサポートされることはほとんどない
  • 高い規律と品質への献身

CI/CD はあなたのビジネスに適していますか?

これは難しい質問であり、綿密な計画が必要になります。しかし、開発ライフサイクルを加速し、より一貫性のある製品を提供したいと考えているなら、継続的インテグレーション/継続的デリバリーが最適な選択肢となるかもしれません。

Tagged: