Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Pivotal Cloud Foundryを始めてみる

Pivotal Cloud Foundry(PCF)を試す機会をいただきました。ローカルのPCF Devではなく、パブリッククラウドのPCFの方です!

今後少しずつ、使ってみたログを残していこうと考えています。 今回は、PCFにサンプルのSpringBootアプリケーションをアップするところまでやってみます。

Getting Started

Getting Started with Pivotal Cloud Foundry | Pivotal

パブリッククラウドのPCFだから"Try PCF on the Public Cloud"の"始める"を押すぜ! f:id:jyukutyo:20161219153554p:plain こう書いてます。

"CONTINUE"押しました。

f:id:jyukutyo:20161219153917p:plain

Cloud Foundry Command Line Interface (cf CLI)をインストールしようという画面です。 MacでアクセスしたのでMacがデフォルト表示されていますが、WindowsLinuxあります。

インストールしたらcf helpと打ってみろということですので打ちます。

f:id:jyukutyo:20161219174131p:plain

$ cf help
cf バージョン 6.22.2+a95e24c-2016-10-27, Cloud Foundry command line tool
...

出たぜ!

Deploy the Sample App

f:id:jyukutyo:20161219154233p:plain サンプルアプリがあるので、それをpushしてみようぜと書いてます。 まずgit cloneする。 で、cf CLIでPCFにログインします。

$ cf login -a xxx.pivotal.io
API エンドポイント: xxx.pivotal.io

Email> alice@example.com

Password> 
認証中です...
OK

組織 xxx をターゲットにしました

スペース jyukutyo をターゲットにしました


                      
API エンドポイント:   https://xxx.pivotal.io (API バージョン: 2.65.0)
ユーザー:             alice@example.com
組織:                 xxx
スペース:             jyukutyo

あとはさっきクローンしたアプリケーションのディレクトリでcf pushするだけ! 数分かかります。

$ cf push
マニフェスト・ファイル /Users/jyukutyo/temp/cf-sample-app-spring/manifest.yml を使用しています

alice@example.com として組織 xxx / スペース jyukutyo 内のアプリ cf-spring を更新しています...
OK

cf-spring をアップロードしています...
次のパスからアプリ・ファイルをアップロードしています: /Users/jyukutyo/temp/cf-sample-app-spring
713K、44 個のファイルをアップロードしています
Done uploading               
OK


alice@example.com として組織 xxx / スペース jyukutyo 内のアプリ cf-spring を開始しています...
Downloading azq_nodejs...
Downloading staticfile_buildpack...
Downloading go_buildpack...
Downloading nodejs_buildpack...
Downloading python_buildpack...
Downloaded staticfile_buildpack
Downloading php_buildpack...
Downloaded azq_nodejs (96M)
Downloading java_buildpack_offline...
Downloaded php_buildpack (310.4M)
Downloading dotnet_core_buildpack...
Downloaded java_buildpack_offline (249.1M)
Downloading binary_buildpack...
Downloaded python_buildpack (255.3M)
Downloading null_buildpack...
Downloaded nodejs_buildpack (109.4M)
Downloading tc_server_buildpack_offline...
Downloaded dotnet_core_buildpack (169.3M)
Downloading java_buildpack_offline_3_9...
Downloaded binary_buildpack (9.3K)
Downloading ruby_buildpack...
Downloaded go_buildpack (392M)
Downloaded null_buildpack (3K)
Downloaded java_buildpack_offline_3_9 (269.4M)
Downloaded tc_server_buildpack_offline (330.2M)
Downloaded ruby_buildpack (260.8M)
Creating container
Successfully created container
Downloading app package...
Downloaded app package (1.2M)
Downloading build artifacts cache...
Downloaded build artifacts cache (107B)
Staging...
-----> Java Buildpack Version: v3.9 (offline) | https://github.com/cloudfoundry/java-buildpack.git#b050954
-----> Downloading Open Jdk JRE 1.8.0_101 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_101.tar.gz (found in cache)
       Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.1s)
-----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (found in cache)
       Memory Settings: -Xmx681574K -XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K
-----> Downloading Spring Boot CLI 1.4.0_RELEASE from https://java-buildpack.cloudfoundry.org/spring-boot-cli/spring-boot-cli-1.4.0_RELEASE.tar.gz (found in cache)
       Expanding Spring Boot CLI to .java-buildpack/spring_boot_cli (0.0s)
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading build artifacts cache...
Uploading droplet...
Uploaded build artifacts cache (107B)
Uploaded droplet (53.2M)
Uploading complete
Destroying container
Successfully destroyed container

1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 1 個のインスタンスが実行中です

アプリが開始されました


OK

アプリ cf-spring はコマンド `CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-2.0.2_RELEASE -memorySizes=metaspace:64m..,stack:228k.. -memoryWeights=heap:65,metaspace:10,native:15,stack:10 -memoryInitials=heap:100%,metaspace:100% -stackThreads=300 -totMemory=$MEMORY_LIMIT) && SERVER_PORT=$PORT JAVA_HOME=$PWD/.java-buildpack/open_jdk_jre JAVA_OPTS="-Djava.io.tmpdir=$TMPDIR -XX:OnOutOfMemoryError=$PWD/.java-buildpack/open_jdk_jre/bin/killjava.sh $CALCULATED_MEMORY" exec $PWD/.java-buildpack/spring_boot_cli/bin/spring run app.groovy` を使用して開始されました

alice@example.com として組織 xxx / スペース jyukutyo 内のアプリ cf-spring の正常性と状況を表示しています...
OK

要求された状態: started
インスタンス: 1/1
使用: 512M x 1 インスタンス
URL: xxx.pivotal.io
最終アップロード日時: Mon Dec 19 06:53:21 UTC 2016
スタック: cflinuxfs2
ビルドパック: java-buildpack=v3.9-offline-https://github.com/cloudfoundry/java-buildpack.git#b050954 open-jdk-like-jre=1.8.0_101 open-jdk-like-memory-calculator=2.0.2_RELEASE spring-boot-cli=1.4.0_RELEASE

     状態   開始日時                 CPU    メモリー             ディスク           詳細
#0   実行   2016-12-19 03:54:47 PM   0.0%   512M の中の 198.9M   1G の中の 144.4M

出力の最後の方にあるURL:にアクセスします。

f:id:jyukutyo:20161219174151p:plain

表示されました!

次は管理画面見たりマーケットプレイス使ってみたりしよう!