はじめてのcf buildpack

28
はじめてのCF Buildpack UDCP Kazuto Kusama @jacopen

Upload: kazuto-kusama

Post on 28-May-2015

4.243 views

Category:

Technology


0 download

DESCRIPTION

Cloud Foundryでも使えるようになったHeroku Buildpackについて解説します。

TRANSCRIPT

Page 1: はじめてのCF buildpack

はじめてのCF Buildpack

UDCP Kazuto Kusama @jacopen

Page 2: はじめてのCF buildpack

自己紹介

•草間 一人(くさま かずと)

• UDCPメンバー

!• Twitter: @jacopen • Facebook: jacopen

Page 3: はじめてのCF buildpack

呉鎮守府

Page 4: はじめてのCF buildpack

UDCP

• Blog (U1TB) !!!!!

• 自転車イベント参加 !!

• おいしいものを食べる

Page 5: はじめてのCF buildpack

今日のお題

‣ CF v2のBuildpackを触ってみよう!

‣ 経験豊富な人には既知の話が多いかも。

‣ v1ばっかりでv2あんまり経験無いよ、という人向け

Page 6: はじめてのCF buildpack

Buildpackとは

• Herokuが作った、任意の言語/フレームワークを利用できるようになる仕組み

• HerokuのCeder Stackで対応している言語(Ruby, Java,

Clojure, Node.js, Scala)は、Buildpackで実装されている

Page 7: はじめてのCF buildpack

$ heroku create myapp --buildpack https://github.com/heroku/heroku-buildpack-ruby

Page 8: はじめてのCF buildpack

Third-Party buildpacks

Page 9: はじめてのCF buildpack

ということで

• とても便利なのでCloud FoundryもBuildpack使えるようにしたよ! ・・・というのが、v2 CFの大きな特徴。

Page 10: はじめてのCF buildpack

v2でbuildpackを使ってみよう!

Page 11: はじめてのCF buildpack

CF PHP & Apache Buildpack

• mod_phpかphp_fpmかを選べる

• Apache 2.2か2.4かを選べる

Page 12: はじめてのCF buildpack

CF PHP Example WordPress

• CF PHP Buildpackで上手く動くように作られたWordPressのサンプル。

• といっても大したことはしていなくて、以下のようなディレクトリ分けをしただけ

• Buildpackのコンフィグをオーバーライドするconfig

ディレクトリ • PHPやHTMLが入るhtdocs

ディレクトリ

Page 13: はじめてのCF buildpack

$ git clone [email protected]:dmikusa-pivotal/cf-ex-worpress.git

$ cd cf-ex-worpress/

$ cf push --buildpack=https://github.com/dmikusa-pivotal/cf-php-apache-buildpack.git

Page 14: はじめてのCF buildpack

_人人人人人人_ > 動かない < ‾Y^Y^Y^Y^Y‾

Page 15: はじめてのCF buildpack

$ cf logs wpjacopen

VCAP_SERVICES={“mysql-5.5”:[{“name”:”mysql-wpjacopen”,”label”:”mysql-5.5”,”tags":["relational"],"plan":"default","credentials":{"name":"dc75750d21df148fc9942cd9b4e996229","hostname":"xxx.xxx.xxx.xxx","host":"xxx.xxx.xxx.xxx","port":3307,"user":"xxxxxxxxxxx","username":"xxxxxxxxxxx","password":"xxxxxxxxxxxxxxxxx","uri":"mysql://xxxxxxxxxxxxx:[email protected]:3307/dc75750d21df148fc9942cd9b4e996229"}}]}

Page 16: はじめてのCF buildpack
Page 17: はじめてのCF buildpack

その他のCF向けBuildpack

• java buildpack • https://github.com/cloudfoundry/java-buildpack

• cloudfoundry-buildpack-java • https://github.com/cloudfoundry/cloudfoundry-buildpack-java • もうメンテされてない?

• ruby buildpack • https://github.com/cloudfoundry/heroku-buildpack-ruby

• nodejs buildpack • https://github.com/cloudfoundry/heroku-buildpack-nodejs

• ibm-websphere-liberty-buildpack • https://github.com/cloudfoundry/ibm-websphere-liberty-buildpack • 良く分からない\(^o^)/

Page 18: はじめてのCF buildpack

Community Buildpack

• https://github.com/glyn/virgo-buildpack • https://github.com/jmcc0nn3ll/jetty-buildpack • https://github.com/dmikusa-pivotal/cf-php-apache-buildpack • https://github.com/mstine/heroku-buildpack-clojure • https://github.com/BrianMMcClain/heroku-buildpack-haskell • https://github.com/michaljemala/cloudfoundry-buildpack-go • https://github.com/hmalphettes/heroku-buildpack-go • https://github.com/Orange-OpenSource/java-buildpack/blob/jonas/docs/

container-jonas.md • https://github.com/dmikusa-pivotal/cf-test-buildpack • https://github.com/cloudfoundry-community/nginx-buildpack • https://github.com/cloudfoundry-community/.net-buildpack • https://github.com/ephoning/heroku-buildpack-python • https://github.com/joshuamckenty/heroku-buildpack-python • https://github.com/cloudfoundry-community/strongloop-suite-buildpack

Page 19: はじめてのCF buildpack

HerokuのBuildpackは使えるの?

• 使えるものは使える!

Page 20: はじめてのCF buildpack

動くことが確認されているHeroku buildpack

• https://github.com/heroku/heroku-buildpack-php • https://github.com/iphoting/heroku-buildpack-php-tyler • https://github.com/heroku/heroku-buildpack-python • https://github.com/heroku/heroku-buildpack-scala

• with https://github.com/jbayer/hello-scala

Page 21: はじめてのCF buildpack

自分でBuildpackを作る!

Page 22: はじめてのCF buildpack

• ほんとはここでこんなBuildpack作ったぜ(ドヤッ)って言いたかったんだけど・・・

• 時間がありませんでした/(^o^)\

• というか欲しいBuildpack既にあるんだもん・・・

Page 23: はじめてのCF buildpack

Buildpackの簡単な仕組み解説

• Buildpackの実体は3つのスクリプト

• compile • detect • release

Page 24: はじめてのCF buildpack

compile

• 言語の実行環境をセットアップするためのスクリプト • バイナリをダウンロードしてきて配置するスクリプトが多い • PHP buildpackではpythonを使っているが、シェルスクリプト等でもOK

Page 25: はじめてのCF buildpack

detect

• buildpackの実行条件を指定するスクリプト。

• PHP buildpackの場合、.phpスクリプトがあればOK。

• OKならばexit 0、NGならばexit 1を返すという決まり。

Page 26: はじめてのCF buildpack

release

• なんかメタデータとか入れるらしい

Page 27: はじめてのCF buildpack

Buildpackを自作するための資料

• Heroku reference • https://devcenter.heroku.com/articles/buildpack-api

• heroku-buildpack-ffmpeg • https://github.com/shunjikonishi/heroku-buildpack-ffmpeg 構造がシンプルなので、動作の把握にちょうど良いかも

Page 28: はじめてのCF buildpack

質問とかあれば