アプリの開発とデプロイメントのための継続的な統合とデリバリー
IBM Cloud およびその他のオープン・ソース・ツールを使用して、継続的統合/継続的デリバリー (CI/CD)、バージョン管理、ツール・チェーンなどをセットアップすることで、アプリの開発とデプロイメントを自動化できます。
継続的統合 (CI) は、早期のエラー検出、早期のシステム統合、開発プロセスのコラボレーションの向上に役立ちます。 継続的デリバリー (CD) は、いつでもソフトウェアを実稼働環境にリリースできるような方法で、ソフトウェアを構築してデプロイする手法です。 CI/CD パイプラインをセットアップして継続的統合/継続的デリバリーのプロセスを自動化すると、コード・リリースの再現性およびデリバリー・スケジュールの予測可能性の向上を実現できます。
コンテナー化アプリのビルドとデプロイメントを自動化するオープン・ツールチェーンが含まれている IBM® Continuous Delivery Pipeline for IBM Cloud® を使用して、DevOps アプローチを導入できます。
開始前に
作業を開始する前に、 IBM Cloud IAMで少なくとも以下の権限を持っていることを確認してください。
- Kubernetes サービスのクラスターに対するエディターのプラットフォーム・アクセス役割とライターのサービス・アクセス役割。 詳しくは、ユーザー・アクセス許可を参照してください。
- ツールチェーンを作成するクラスターのリソース・グループに対するビューアーのプラットフォーム・アクセス役割。
- ツールチェーンのサービス (このサービスは 継続的デリバリーとは別のサービスであることにご注意ください) に対するエディターのプラットフォーム・アクセス役割。
Delivery Pipeline を使用したツールチェーンの作成
ツールチェーンを使用して CI/CD パイプラインを作成するには、以下の手順を実行します。 ツールチェーンは、開発、デプロイメント、および運用の作業をサポートするツール統合の集合です。 ツールチェーンを構成するときに、ツールチェーンの作成後に自動的に作成されてトリガーされる Delivery Pipeline を組み込んで構成することができます。
- コンソールから、継続的デリバリーパイプラインを設定したいクラスタを選択します。
- **「DevOps」**タブを選択します。
- **「ツールチェーンの作成」**をクリックします。
- 使用可能なツールチェーンを確認します。 IBM は、Kubernetes ネイティブ・アプリや Helm チャートのデプロイ、テスト、モニターに使用できる事前定義済みのツールチェーンを提供しています。 各ツールチェーンを展開して、自動でセットアップされるツールの概要を確認したり、クラスターにツールチェーンを構成するために使用される GitHub のスクリプトを確認したりできます。 使用したいツールが決まっている場合は、独自のツールチェーンを作成できます。
- 使用するツールチェーンを選択して**「作成」**をクリックします。
- コンソールの指示に従って、ツールチェーンを構成します。 クラスターに関連付けたツールチェーンを後で簡単に見つけられるように、必ず、ツールチェーン名にはクラスター名を含めてください。 詳しくは、ツールチェーンの作成を参照してください。
- **「Delivery Pipeline」**を選択して、継続的統合と継続的デリバリーのパイプラインのステージを確認します。 ツールチェーンを作成すると、パイプラインが自動的に開始され、構成したステージが実行されます。 ステージが正常に実行されたことを確認し、エラーがあれば対処します。
- ツールチェーンを変更します。 ツールチェーンにさらにツールを追加したり、デリバリー・パイプラインのステージを変更したりできます。
- コンソールから、継続的デリバリーパイプラインを設定したいクラスタを選択します。
- **「DevOps」**タブを選択します。
- 変更するツールチェーンを選択します。
パイプラインを自動化するためのその他のリソース
CI/CD パイプラインを自動化するために使用できる以下の統合およびツールを確認してください。
- Codeship
- コンテナの継続的インテグレーションとデリバリーには 、Codeship をご利用いただけます。
- Grafeas
- Grafeas は、ソフトウェアサプライチェーンプロセスにおけるメタデータの取得、保存、交換の共通方法を提供するオープンソースのCI/CDサービスです。 例えば、Grafeas をアプリ・ビルド・プロセスに組み込むと、ビルド要求のイニシエーター、脆弱点スキャン結果、品質保証サインオフに関する情報を Grafeas が保管できるので、アプリを実動にデプロイできるかどうかを情報に基づいて決定できるようになります。 このメタデータを監査で使用したり、このメタデータを使用してソフトウェア・サプライ・チェーンのコンプライアンスを実証したりすることができます。
- IBM® Continuous Delivery Pipeline for IBM Cloud®
- アプリの構成ファイルが Git などのソース制御管理システムで編成されている場合は、パイプラインを構築することで、コードをテストして、
test
やprod
などの別々の環境にデプロイできます。IBM Cloud® Continuous Delivery では、ツールチェーンを使用してアプリケーションのビルドおよびコンテナーの Kubernetes クラスターへのデプロイメントを自動化できます。 こちらのチュートリアル『 Kubernetes への継続的デプロイメント』を試すこともできます。 - Razee
- Razee は、クラスタ、環境、クラウドプロバイダーにわたる Kubernetes リソースの展開を自動化および管理するオープンソースプロジェクトです。また、リソースの展開情報を視覚化することで、展開プロセスを監視し、展開上の問題をより迅速に発見できるようにします。 Razeeの詳細およびクラスタへのRazeeのセットアップ方法については 、Razeeのドキュメントを参照してください。
- Helm
- Helm は Kubernetes パッケージ・マネージャーです。 新しい Helm チャートを作成するか、既存の Helm チャートを使用して、IBM Cloud Kubernetes Service クラスターで実行される複雑な Kubernetes アプリケーションの定義、インストール、アップグレードを行うことができます。 例えば、アプリが必要とするすべての Kubernetes リソースを Helm チャート内で指定できます。 次に、Helm を使用して YAML 構成ファイルを作成して、これらのファイルをクラスターにデプロイできます。 IBM Cloud が提供する Helm チャートを統合して、ブロックストレージプラグインなど、クラスターの機能を拡張することもできます。 詳しくは、IBM Cloud Kubernetes Service での Helm のセットアップを参照してください。
- Kustomize
- Kubernetes プロジェクトを使用して Kustomize 複数の環境にまたがるデプロイメントを標準化およびカスタマイズすることで、アプリをパッケージ化します。 Kustomize は、Kubernetes リソースの YAML 構成の記述、カスタマイズ、および再利用に役立ちます。 まずは、 Kustomize を使用して、複数環境で再利用するアプリをパッケージ化するを参照してください。