Technical Articles
IBM CloudのDelivery Pipelineを利用してSAP CPへのアプリデプロイを自動化する
このブログは、SAP Advent Calendar 2019 の14日目の記事として投稿しています。
私が普段からSAP Cloud Platformに対して抱いている不満の1つは、CIツールが統合されていない点です。
今回はIBM CloudのDelivery Pipelineの助けを借り、ソースコードのGitリポジトリへのコミットから、SAP Cloud Platformへのアプリのデプロイまでを自動化してみます。
この記事を書いた背景
我々のプロジェクトでは、SAP Cloud Platformに不足している機能(具体的にはHANA as a Serviceのアラート外部通知やHANA DBの起動管理)をNode.js製の自前のツールで補完している点がいくつかあり、開発・ソースコード管理・デプロイ作業が煩雑であることが課題になっています。
今回目指す姿
IBM Cloudについて
IBM Cloudには、アプリの開発、ビルド、デプロイを容易にする統合DevOpsツールチェーンが用意されています。
本日紹介するDelivery Pipelineは、Gitリポジトリのコミットを検知して自動的にアプリをデプロイするCIツールで、特別な設定なしで利用できるようになっています。
IBM Cloudは全てがブラウザ上で完結し、個人的には一番好きなクラウドプラットフォームです。
- 上図のように、全てブラウザ内で完結するDevOpsツールが揃っている
- 割当メモリによる課金なので、トラフィックが増えても心配なし(合計512MBメモリまでのNode.jsアプリは無料枠で運用できます。128MB×4アプリも可。)
の2点が、お気に入りポイントです
本ブログの前提条件
- IBM Cloudのアカウントを持っていること(クレカ登録無しでもLiteプランとして利用できますが、登録だけではまだ課金されないため登録をオススメします)
- SAP Cloud Platform Cloud Foundry環境のサブアカウント及びスペースが作成済であること
1.Node.jsアプリの作成
IBM Cloudで、新規Node.jsプロジェクトを作成します。リソースの作成ボタンをクリック
Node.js Microservice with Expressを選択します
適当に名前を付けて作成します。
アプリは作成されました。続いて継続的デリバリを有効化します。
継続的デリバリーの構成をクリック
デプロイ先のターゲットをKubernetesにするかCloud Foundryにするか選択できます。ここではCloud Foundryを選択し、他の設定は全てデフォルトのままで作成ボタンをクリックします。
1分ほど待つと、Gitリポジトリとデリバリパイプラインが作成されました。
標準設定では、これから開発するアプリのデプロイ先はIBM Cloudです。デリバリパイプラインの設定を変更し、SAP CPにデプロイするようにしていきます。
2.デリバリパイプラインの設定変更
デプロイ設定のステージの構成をクリック
デプロイ先のCloud Foundryタイプを、『IBM パブリック・クラウド』から『汎用 Cloud Foundry』へと変更します。
SAP CPのエンドポイントURL、SAP CPへのログインユーザID(メールアドレス)、パスワードを入力して認証ボタンをクリックします。
フランクフルトリージョンの場合のエンドポイントURLは下記の通りです。
https://api.cf.eu10.hana.ondemand.com
デプロイ先の組織とスペースを選択して保存ボタンをクリックします。
以上でSAP CPへのデプロイ設定は完了です。
3.アプリケーションソースコードの修正
続いてNode.jsアプリケーションのソースコードの確認と修正を行います。
ツールチェーン名をクリック
Eclipse Orion Web IDEのアイコンをクリック
SAP CPのWeb IDEと同じく、ブラウザ上で開発が可能です。
SAP CPにデプロイするためには、manifest.ymlを修正する必要があります。
下図がデフォルトのmanifest.ymlです。
SAP Cloud Platformにデプロイするためには、buildpackとdomainの行を削除する必要があります。
修正後のmanifest.ymlを掲載します。
保存ボタンのクリック、またはCtrl + Sキーで保存します。
4.Gitリポジトリへのコミット
続いてGitリポジトリにコミットを行います。Web IDE上で左端のGitアイコンをクリック
コミットコメントを入力してコミットボタンをクリック
コミットが完了したら、プッシュします。
GitへのPushが完了すると勝手にデリバリパイプラインが動作し、ビルドとSAP CPへのデプロイが行われます。
5.SAP CP側のアプリの確認
SAP CPにデプロイされたか確認します。
ありました!
URLを見ていただくと、SAP CP上で動作しているのがお分かりかと思います。
以上、IBM Cloudのデリバリパイプラインを利用してSAP CPへのアプリデプロイを自動化させる記事でした。
(まるでIBM Cloudのアドベントカレンダーのようになってしまいましたが・・・)