Skip to content

Latest commit

 

History

History
240 lines (173 loc) · 8.73 KB

cloud-foundry.md

File metadata and controls

240 lines (173 loc) · 8.73 KB

Cloud Foundryにデプロイ

ここまで作成してきたサービスをCloud Foundryにデプロイします。

まずは全てのサービスを停止してください。

image

今回は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ブランチ)から参照可能です。

Pivotal Web Servicesにログイン

$ cf login -a api.run.pivotal.io

User Provided Serviceの作成

まずはデプロイする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の作成をスキップしても構いません。

bootstrap.propertiesの変更

Config Serverとしてバックエンドサービスを使えるようにbootstrap.propertiesを変更します。

  1. eureka-seversrc/main/resources/bootstrap.propertiesこの内容に変更
  2. membershipsrc/main/resources/bootstrap.propertiesこの内容に変更
  3. recommendationssrc/main/resources/bootstrap.propertiesこの内容に変更
  4. uisrc/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

を実行することで、全アプリケーションのビルドが行われます。

Manifestファイルのダウンロード

Cloud Foundryに各アプリケーションをデプロイするための�Manifestマニフェストファイルを用意します。

config-servermanifest.yml

$ cd $WORKSHOP/config-server
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/config-server/manifest.yml

eureka-servermanifest.yml

$ cd $WORKSHOP/eureka-server
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/eureka-server/manifest.yml

membershipmanifest.yml

$ cd $WORKSHOP/membership
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/membership/manifest.yml

recommendationsmanifest.yml

$ cd $WORKSHOP/recommendations
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/recommendations/manifest.yml

uimanifest.yml

$ cd $WORKSHOP/ui
$ curl -OL https://github.com/making/metflix/raw/05_cloud-foundry/ui/manifest.yml

Cloud Foundryへアプリケーションをデプロイ

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 appscf 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を自分のアカウントまたはイニシャルに変更してください)。

image

スクリプトによる作業自動化

  • アプリケーションのビルド
  • 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に定義されている変数suffixtmakiから自分のアカウントまたはイニシャルに変更してください。

以下のコマンドでデプロイしたアプリケーションの削除とUser Provided Serviceの削除を行うことができます。

$ cd $WORKSHOP
$ ./scripts/cleanup.sh