はじめに
今回はIBM CloudのDevSecOpsを触りながらソフトウェア開発サイクルを理解し、自ら簡単なアプリケーションをデプロイしてみることを最終目標として検証していきます。
今回はその初めての段階としてCIツールチェーンの作成について記述します。
前提条件
今回の作業のためには以下の前提条件をクリアする必要があります。
流れの中で説明されていますが、各インスタンスは同様のリージョン、リソース・グループに設定する必要があります。
今回私は、全てリージョンは「東京」、リソース・グループは「Default」に設定しています。
- IBM Cloudのアカウントを用意
- IBM Cloud上のパスワードや鍵など、シークレット管理ができるサービスを作成(Secret Managerなど)
- こちらにてKubernetesクラスターを作成
- こちらにてContainer Registry名前空間の作成
- こちらにてIBM Cloud APIキー作成
- IBM Cloud CLIインストール
- こちらにてIBM Cloud Object Storageインスタンスとバケット作成
DevSecOpsについて
概念
普段DevOpsという言葉によく触れているかと思います。
DevOps(開発・運用)は一言で言うと、開発者と運用者が常に連携しながら協業していくフレームワークの考え方を示します。アプリの開発の品質と速度を改善し、新規および修正されたソフトウェア機能やリリース時間を短縮を目標としています。
ここでDevSecOpsとは、DevOpsの考え方にSec(Security)が加えられたもので、ソフトウェア開発ライフサイクルのすべてのフェーズにセキュリティーを自動的に組み込み、アジャイルとDevOpsのスピードでのセキュアなソフトウェアの開発を実現するものとなります。
CI(Continuous Integration)とは
CIはとは継続的インテグレーションの略で、各開発者が少なくとも1日に1回、新規コードをメインブランチのコードと統合する、ソフトウェア開発とDevOpsのプラクティスです。
継続的インテグレーションは、DevOpsフレームワークにおいてソフトウェア開発プロセスの初期段階に位置しています。
CIツールチェーンの作成の流れ
上記記載の前提条件が全て完了しましたら、CIツールチェーンを作成します。
IBM Cloudコンソール画面のナビゲーション・メニュー
をクリックし、DevOps
→ツールチェーン
にアクセスします。
IBM Cloudで提供している様々なツールチェーンが表示されますが、今回はCIツールチェーンの作成をします。CI-セキュア・アプリの開発(DevSecOpsプラクティス)
をクリックします。
以下の画面がツールチェーン作成画面となります。上端に社内開発に利用する際の「One -Pipelineバージョン」設定ボタンがありますが、今回は設定なしで進めます。
下の始動する
ボタンをクリックします。
ツールチェーン設定画面でツールチェーン名やリージョン、リソース・グループを設定します。
注意点として、ツールチェーンのリージョンは、クラスターと各種レジストリのリージョンと同じリージョンやリソース・グループを設定する必要があります。
設定が完了したらツールチェーンの作成
をクリックします。
*ツールチェーンの作成は各ページの下端に表示されるツールチェーンの作成
ボタンにて、デフォルト値で自動作成されます。もしボタンクリックでも進めない箇所があれば、そのページでの設定を行い、もう一度試してください。
よくあるパターンは、前提条件を満たしていない場合や、上記のリージョンが設定が合わないため、システム的に自動で入力されないケースです。
次は前提条件で作成したSecrets Managerの設定です。
リージョンやリソース・グループを設定し、ツールチェーンの作成
をクリックします。
次はデプロイメント・ターゲットを設定します。
前提条件として作成したIBM Cloud APIキーを入力します。
もし作成が漏れている場合などは、新規
ボタンにて作成することができます。
IBM Cloud APIキーは鍵マーク
をクリックすると、自動に設定されます。
もしうまくいかない場合には、IBM Cloudコンソール画面で管理
→アクセス(IAM)
→APIキー
に進み、詳細に記載されているIDをコピーして入力ください。
IBM Cloud APIキーの設定が終わったら、下にスクロールし、同様にIBM Kubernetes Serviceのクラスターを設定します。
Container Registryのリージョンや名前空間、開発クラスター・リージョン、リソース・グループなどを設定します。
設定が完了したら、下端のツールチェーンの作成
をクリックします。
次はアプリケーションの Docker イメージに署名するためイメージ署名鍵(GPGキー)を設定します。
今回私は持っていなかったため新規に作成していますが、もしお持ちの方は鍵マーク
にて自動設定してください。
イメージ署名鍵の設定が終わったら、ツールチェーンの作成
をクリックします。
次はオプションで設定できるSlack機能の選択有無です。
Slackと連携することによって、チーム同士での共同作業などにおける通知設定が可能となります。
Slackの通知設定はSlack API WebサイトにてWebhookの設定を行うことで可能となります。今回はSlack設定は行っていませんが、もしWebhook設定が必要な方は、私が以前作成した【IBM Cloud】Event Notificationsを使ってSlackと連携し、通知を飛ばしてみたにWebhook設定の流れが記載されているので、参考にしてください。
設定が完了したら、ツールチェーンの作成
をクリックします。
ここまで完了すると、自動にツールチェーンの作成が開始され、ツールチェーンインスタンスに表示されます。
最後に
今回はDevOpsにおけるCIツールチェーンを作成する流れを整理しました。
最初独学で行ったところ、色々詰まったり失敗した箇所が多く、初めて触る方にもぜひ参考にしていただければと思います。
次回はCDツールチェーンの作成を行い、アプリデプロイに向けて記事を公開していきます。
注意点
- ツールチェーン作成の際、リージョンやリソース・グループは全て統一してください。
- Qiita記事作成にあたり、環境の時間軸の前後やインスタンス名の違いなどがあります。
参考
- IBM Cloud Docs