既存のアプリケーション
このチュートリアルでは、Cloud-Native Toolkitをアプリケーションに組み込んで、Red Hat OpenShiftクラスター上でアプリケーションを構築、テスト、デプロイする方法を紹介します。ツールキットを使用して、アプリケーションをユニバーサル・アプリケーション・イメージ(UAI)にするタスクのパイプラインを作成する方法を実際に体験してください。これは、Red Hat Container Certificationの要件を満たすための大きな第一歩となります。
このチュートリアルは、記事Use the Cloud-Native Toolkit starter kitsで説明されている概念に基づいています。
このチュートリアルの手順に従って、ツールキットを使用して必要なファイルを既存のGitHubリポジトリに追加し、アプリケーションのデプロイを管理するためのOpenShift CI/CDパイプラインを構築できるようにします。
GitHub リポジトリに加えた変更は、パイプラインのトリガーとなります。
- コードベースのコンパイルとビルド *コードベースのコンパイルとビルド * レポで定義されたユニットテストや統合テスト、SonarQube を使用したコード品質とセキュリティを含むテストの実行
- UAI の構築とスキャン
- UAI を OpenShift クラスタにデプロイする
- UAI と GitHub リポジトリにリリースバージョンのタグを付ける
- UAIをコンテナレジストリに格納
このチュートリアルでは、パイプラインが失敗する可能性のある例と、それらの問題を解決するための手順についても説明します。
前提条件¶
このチュートリアルを完了するには、以下へのアクセスが必要です。
また、以下のセットアップ作業を行う必要があります。
- チュートリアルInstall the Cloud-Native Toolkitで説明されているように、OpenShiftクラスターにCloud-Native Toolkitをインストールします。OpenShiftクラスターの管理者のみがツールキットをインストールすることで、お客様がアクセスできるようになります。
- ドキュメントに記載されている手順に従って、Cloud-Native Toolkit 用のアカウントを準備します。これには、GitHub と IBM のアクセストークンの生成が含まれます。
- Cloud-Native Toolkit developer toolsを自分のマシンにインストールします。
- Cloud-Native Toolkit Command Line Interface (CLI)をインストールします。
NOTE:IBM Cloud アカウントが必要なのは、このサンプルアプリが Watson Assistant サービスを使用するためだけです。Cloud-Native Toolkit の要件ではなく、Red Hat OpenShift など、サポートされている Kubernetes ベースのクラスターと一緒に使用することができます。
見積もり時間¶
このチュートリアルを完了するには、約 60 分かかります。
デプロイされるアプリケーション¶
このチュートリアルで使用するアプリケーションは、オープンソースの Node.js アプリケーションです -- IBM Cloud 上に作成された IBM Watson Assistant サービス上に構築された、ピザを注文するチャットボットです。
このアプリケーションは、以下のような特性を持っているため、良い例となります。
- オープンソースのGitHubリポジトリで管理されているソース
- アプリのインストール、テスト、および実行方法を指定する従来のビルドファイル
- 定義されたユニットテストとインテグレーションテスト
- Dockerイメージを構築するためのDockerfile
リポジトリはhttps://github.com/IBM/watson-assistant-slots-introで、アプリのビルドと実行の手順を示すREADMEが含まれています。
このアプリが完全に機能するには、IBM Watson Assistant サービスの使用が必要です。そのためには、Watson サービスの設定と構成が必要です。
また、アプリをローカルで実行してテストしたい場合は、Node.jsランタイムやnpm
をインストールする必要があります。
このチュートリアルのパイプラインの部分だけに集中して、Watson サービスには一切触れたくないという方のために、このチュートリアルでは Watson サービスの内容をバイパスしても、最終的にデプロイを成功させるための手順を紹介します。
手順¶
- レポをフォークしてクローンする
- Cloud-Native Toolkitを使うためにプロジェクトを準備する
- [GitHubレポの準備】(#3-prepare-the-github-repo)
- ツールキットを使ってパイプラインを作成する
- パイプラインを OpenShift の Web コンソールで見る
- **デプロイ**タスクの問題を解決する
- パイプラインを再実行する
- **健康**タスクの問題を解決する1.
- 結果を調べる
1.レポをフォークしてクローンを作成する¶
まず、自分のGitHubアカウントにレポをフォークします。次に、フォークしたレポをローカルマシンにクローンします。
// ヘルスエンドポイントの追加 app.get('/health', (req, res) => { ... console.log('Health Check called'); res.send('UP'); });