cloud focker を試してみた public
DESCRIPTION
TRANSCRIPT
© 2014 IBM Corporation
Cloud Focker を試してみた
第20回 PaaS 勉強会
2014年9月19日
@ibmamnt
© 2014 @ibmamnt
自己紹介 ~
名前: 天野 武彦
所属:IBM 東京ソフトウェア開発研究所
主な活動: 先端開発技術の推進・啓蒙
(エリア: Cloud Foundry, Orion, Jazz, DevOps)
趣味: 目下のところ育児に没頭
ブログ: http://amanoblog.wordpress.com
つぶやきはじめました (@ibmamnt)
© 2014 @ibmamnt
よく聞く話・・・
• Cloud Foundry いいんだけど、デバッグどうやればいいの?
• sshできないっす!( tmate-boostrapで出来る?https://github.com/danhigham/tmate-bootstrap/blob/master/scripts/cf-ssh )
• サービスにつなげられない
• そもそも動かないんだけど・・・
だけではよくわからな“cf logs --recent” だけではよくわからないことが多い。そもそもコンテナ⽴ち
上がらないと、”cf files” コマンドも動かない。
© 2014 @ibmamnt
いままでのおさらい、他
• cf-debug-tools の紹介 by @morika_tさん– 「Cloud foundry(v2)へアプリを載せ替え」
(http://www.slideshare.net/morika_t/cloud-foundryv2-17-cloud-foundry )
• Node アプリケーションのリモートデバッグツール by @pmuellrさん(IBM)– https://github.com/pmuellr/cf-node-debug
• あと Java とかのリモートデバッグ手法– http://www.paasmag.com/2014/07/31/debugging-java-
applications-running-in-bluemix/
© 2014 @ibmamnt
そもそもステージ
できないと・・・
今日も stage failed !
© 2014 @ibmamnt
Cloud Focker について
• Cloud Foundry Docker = Cloud Focker
Cloud Foundry のコンテナをローカルPCで動かす仕組み
– CloudCredo社がプロジェクトとして発表• https://github.com/CloudCredo/cloudfocker
• まだ Version 0.0.1 で始まったばかり
–特徴• Cloud Foundry の stack (lucid64)をベース
• コンテナは Docker で動かす
• buildpackのサポート!
※ @kenojiriさんの twitter メッセージで知りました!
© 2014 @ibmamnt
Cloud Focker at a glance
fock up
Cloud Foundry Container( lucid64)
Application source buildpack+
stage
Cloud Focker image (Ubuntu / Docker)
Run application
run
© 2014 @ibmamnt
fock コマンド
VERSION:
0.0.1
COMMANDS:
docker Docker情報出⼒
this Cloud Foundry image ダウンロード
up アプリケーション stage と実⾏
off アプリケーションコンテナ停止
buildpacks buildpack表示
add-buildpack buildpack追加
delete-buildpack buildpack削除
stage stageだけ実⾏
run stageされたアプリの実⾏
© 2014 @ibmamnt
ビルドパック追加
$ fock buildpacks
java-buildpack
nodejs-buildpack
$ fock add-buildpack
https://github.com/cloudfoundry/ruby-buildpack.git
$ fock buildpacks
java-buildpack
nodejs-buildpack
ruby-buildpack
Ruby のビルドパックを追加
Ruby ビルドパック追加された
© 2014 @ibmamnt
doraでも動かすか!
• 輪読会で定評のある dora
$pwd
/tmp/cf-acceptance-tests/assets/dora
$ echo “web: exec bundle exec rails server -p $PORT” > Procfile
$fock up
Starting the CloudFocker container...
Running Buildpacks...
-----> Compiling Ruby/Rack
Started the CloudFocker container.
Connect to your running application at http://localhost:8080/
$curl http://localhost:8080
Hi, I'm Dora!
※※※※重要
© 2014 @ibmamnt
Cloud Focker : orzな点
# fock up
Starting the CloudFocker container...
Running Buildpacks...
Started the CloudFocker container.
Deleting the CloudFocker container...
cloudfocker-staging
Deleted container.
2014/09/18 02:01:22 Staging failed
Stage 失敗してもコンテナ削除しないでくれ orz・・・
© 2014 @ibmamnt
Tips
• Procfile が必要な場合がある (Node, Ruby)
web: <コマンド>
• VCAP_APP_PORTなど環境変数なし– process.env.PORTなどに変更
• わりと動かない– IBM Liberty buildpack (^O^)
まだ産声をあげたところなので、温かく⾒守りましょう!
© 2014 @ibmamnt
コンテナに入ってみる
$docker ps
CONTAINER ID IMAGE NAMES
222c0f6535bb cloudfocker-base:latest /bin/bash
$PID=$(docker inspect --format {{.State.Pid}} 222c0f6535bb)
$sudo nsenter --target $PID --mount --uts --ipc --net --pid
# pstree -a
bash /app/cloudfocker-start-1c4352a23e52040ddb1857d7675fe3cc.sh /app
bundle exec rackup config.ru -p $PORT
└─ruby /app/vendor/bundle/ruby/2.0.0/bin/rackup config.ru -p 8080
└─2*[{ruby}]
nsenter コマンドを使う
© 2014 @ibmamnt
Cloud Foundry Warden との違い
• アプリケーション起動は wshdではなく独自の仕組み
• アプリケーションは /home/vcap/app ではなくて /app に直接放り込まれる
• Port: 8080 でフォワードされている
• /home/vcap/logs にあたるものが⾒当たらない
– 当面 “docker logs <コンテナ>” で代用
• サービスとの bind は vcap_service.jsonファイルに直接記入
• コンテナは1個だけサポート(のように⾒える。
要確認)
© 2014 @ibmamnt
用途
• ビルドパック開発
• アプリケーションローカルデバッグ
• アプリケーションポーティングのプロトタイプ
• 等
© 2014 @ibmamnt
感想
• Version 0.0.1 にしてはわりとよくできている
• 課⾦を気にする会社にはよいのではないか
– Cloud Focker である程度動作確認(デバッグ)して
から、Cloud Foundry PaaSに deploy
• お手軽!
– 昔の PC 環境でも使える
• スペックが低いPCで開発というのは結構よく聞く
– cf-nise-install との併用推奨
© 2014 @ibmamnt
【余談】最近のBluemix
⼥⼦会やったり
あと踊ってみたりww
https://www.youtube.com/watch?v=UXXiS_IYROE
© 2014 @ibmamnt
すこし宣伝など
みんなでラスベガスに⾏こう!\(^o^)/http://www-01.ibm.com/software/events/interconnect/
Image from Wikipedia
Image from http://www.las-vegas-urlaub.com/hotel-mandalay-bay.htm
2万人募集中!
今年はナイトクラブにラップトップ持ち込ん
で話を聞いていたらしい
© 2014 @ibmamnt
ご清聴ありがとうごご清聴ありがとうございました!
© 2014 @ibmamnt
AppendixAppendixCloud Focker の導入
© 2014 @ibmamnt
Cloud Focker の導入(簡単版)
• VirtualBox / Vagrant を導入
• Cloud Focker プロジェクトクローン
– git clone https://github.com/CloudCredo/cloudfocker.git
• OS イメージ導入
$ vagrant up –provider virtualbox
$ vagrant ssh
• nsenterの導入
docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter(/usr/local/bin に入る)
© 2014 @ibmamnt
資料の最終ページ