ここまで作成してきたサービスをCloud Foundryにデプロイします。
まずは全てのサービスを停止してください。
今回はPivotal Web Servicesにデプロイしますが、無償枠ではアプリケーション合計でメモリを2GBまでしか使用できないため、各アプリケーションに以下のメモリを配分します。併せて、アプリケーションのURLも記載します。
以降、tmaki
の部分を自分のアカウント名またはイニシャルに置き換えてください。
Application | Memory (MB) | URL |
---|---|---|
config-server |
340 | http://config-server-tmaki.cfapps.io |
eureka-server |
358 | http://eureka-server-tmaki.cfapps.io |
membership |
450 | http://member-tmaki.cfapps.io |
recommendations |
450 | http://recommendations-tmaki.cfapps.io |
ui |
450 | http://ui-tmaki.cfapps.io |
hystrix-dashboard
はメモリ不足のためデプロイしません。
またデプロイするアプリケーションに割くメモリ量が小さいため、動作が不安定です。
本ページで作成するソースコードとスクリプトはこちら(05_cloud-foundry
ブランチ)から参照可能です。
$ cf login -a api.run.pivotal.io
まずはデプロイするConfig ServerとEureka Serverをバックエンドサービスとして、Membershipサービス、Recommendationsサービス、UIサービスにアタッチできるように、User Provided Serviceを作成します。
$ cf create-user-provided-service config-server -p '{"uri":"http://config-server-tmaki.cfapps.io"}'
$ cf create-user-provided-service eureka-server -p '{"uri":"http://eureka-server-tmaki.cfapps.io"}'
Tips
スクリプトによる作業自動化の準備を行えば、
$ cd $WORKSHOP $ ./scripts/deploy.shを実行することで、アプリケーションのデプロイと同時にUser Provided Serviceの作成もできるため、ここではUser Provided Serviceの作成をスキップしても構いません。
Config Serverとしてバックエンドサービスを使えるようにbootstrap.properties
を変更します。
eureka-sever
のsrc/main/resources/bootstrap.properties
をこの内容に変更membership
のsrc/main/resources/bootstrap.properties
をこの内容に変更recommendations
のsrc/main/resources/bootstrap.properties
をこの内容に変更ui
のsrc/main/resources/bootstrap.properties
をこの内容に変更
bootstrap.properties
を変更したら全てのプロジェクトをビルドします
$ cd $WORKSHOP/config-server
$ ./mvnw clean package -Dmaven.test.skip=true
$ cd $WORKSHOP/eureka-server
$ ./mvnw clean package -Dmaven.test.skip=true
$ cd $WORKSHOP/membership
$ ./mvnw clean package -Dmaven.test.skip=true
$ cd $WORKSHOP/recommendations
$ ./mvnw clean package -Dmaven.test.skip=true
$ cd $WORKSHOP/ui
$ ./mvnw clean package -Dmaven.test.skip=true
Tips
スクリプトによる作業自動化の準備を行えば、
$ cd $WORKSHOP $ ./scripts/build.shを実行することで、全アプリケーションのビルドが行われます。
Cloud Foundryに各アプリケーションをデプロイするための�Manifestマニフェストファイルを用意します。
$ cd $WORKSHOP/config-server
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/config-server/manifest.yml
$ cd $WORKSHOP/eureka-server
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/eureka-server/manifest.yml
$ cd $WORKSHOP/membership
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/membership/manifest.yml
$ cd $WORKSHOP/recommendations
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/recommendations/manifest.yml
$ cd $WORKSHOP/ui
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/ui/manifest.yml
Manifestマニフェストファイルを使ってCloud Foundryにjarをデプロイします。
$ cd $WORKSHOP/config-server
$ cf push config-server-tmaki
$ cd $WORKSHOP/eureka-server
$ cf push eureka-server-tmaki
$ cd $WORKSHOP/membership
$ cf push membership-tmaki
$ cd $WORKSHOP/recommendations
$ cf push recommendations-tmaki
$ cd $WORKSHOP/ui
$ cf push ui-tmaki
Tips
スクリプトによる作業自動化の準備を行えば、
$ cd $WORKSHOP $ ./scripts/deploy.shを実行することで、User Provided Service及び、アプリケーションのデプロイが行われます。
cf apps
、cf services
の結果が以下のようになっていることを確認。
$ cf apps
name requested state instances memory disk urls
config-server-tmaki started 1/1 340M 1G config-server-tmaki.cfapps.io
eureka-server-tmaki started 1/1 358M 1G eureka-server-tmaki.cfapps.io
membership-tmaki started 1/1 450M 1G membership-tmaki.cfapps.io
recommendations-tmaki started 1/1 450M 1G recommendations-tmaki.cfapps.io
ui-tmaki started 1/1 450M 1G ui-tmaki.cfapps.io
$ cf services
name service plan bound apps last operation
config-server user-provided eureka-server-tmaki, membership-tmaki, recommendations-tmaki, ui-tmaki
eureka-server user-provided membership-tmaki, recommendations-tmaki, ui-tmaki
http://ui-tmaki.cfapps.ioにアクセス (tmaki
を自分のアカウントまたはイニシャルに変更してください)。
- アプリケーションのビルド
- User Provided Serviceの作成とアプリケーションのデプロイ
はこちらのスクリプトを使えば自動で行えます。
$ cd $WORKSHOP
$ mkdir scripts
$ cd scripts
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/scripts/common.sh
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/scripts/build.sh
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/scripts/deploy.sh
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/scripts/cleanup.sh
$ chmod +x *.sh
$ cd ..
common.sh
に定義されている変数suffix
をtmaki
から自分のアカウントまたはイニシャルに変更してください。
以下のコマンドでデプロイしたアプリケーションの削除とUser Provided Serviceの削除を行うことができます。
$ cd $WORKSHOP
$ ./scripts/cleanup.sh