Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ

1,717 views

Published on

第18回Cloud Foundry輪読会用
Buildpackを使ってアプリを 載せるためのアプローチ

Published in: Technology
  • Be the first to comment

第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ

  1. 1. buildpackを使ってアプリを 載せるためのアプローチ
  2. 2. 自己紹介 名前: morika-t 仕事: Cloud Founrdy関連 最近のCF的興味: Diego(DeaまわりのGo実装) Buildpack周り pivotalも最近力をいれており buildpackチームが作られたので動向が気になる所
  3. 3. Cloud Foundryのアーキテクチャ http://docs.run.pivotal.io/concepts/architecture/
  4. 4. CFとherokuの構成 DEA コンテナ (Warden) RouterRouter コンテナ (Dyno) APP APP Cloud Foundry heroku
  5. 5. Cloud Foundryを使うには(v2) 方法 1. Publicにサービス展開されているCloud FoundryのPaaSを使う 2. cf_nise_installer(Iwasaki Yudai氏のツール)を使う a. https://github.com/yudai/cf_nise_installer b. 基本1VMはcoreのみ4~8GBもあれば十分 c. 手軽に使える為、非公式ながら人気が高い 3. BOSH-lite(公式推奨) a. Vagrant環境VAGRANT上に6GB以上のメモリを要求する為気軽に試 すのには向いていない b. Cloud Foundryの公式ではBOSH(BOSH-liteのマルチノード構成)の ものを使用しているがBOSHを使う為だけにVMがいくつも必要になり手 軽でない
  6. 6. アプリ開発者にとっての Cloud Foundry&BOSH https://flic.kr/p/9qmqeh
  7. 7. Cloud Foundryのv2になって herokuと同じ buildpackが入った!
  8. 8. アプリを載せるのが 簡単になるはずだった。。。
  9. 9. 現状のCloud Foundryの現実 ● buildpackになっても ○ ちょっと直して動かすがやりにくい ○ buildpackそのもののエラー落ちやアプリ起動時のログが拾いにくい ● 少なくともアプリ開発者にとって ○ ccngやrouterなどは開発者にとっては必須ではないい ■ 複数インスタンスの試験が必要でない限り ○ deaとwardenだけで動ける方が幸せそう ■ リードエンジニアさん曰く将来的には Diego(go実装版)等で改善されるらしい ○ 現状CFは外からSSHする手段がない。。。 ■ Wardenのwshは出来るが、通常routerの外からはそのような手段が取れない ※前回の輪読会でその悩みの暫定解決法は紹介済
  10. 10. 現状のCFの PaaSの恩恵を受けるまでの状態 httpshttps://www.flickr. com/photos/the_3rd_place/4853328 408/in/photostream/://www.flickr. com/photos/the_3rd_place/4853328 408/in/photostream/ https://flic.kr/p/8r9kdJ
  11. 11. buildpack ● buildpackとは ○ 元々はherokuで使われていた ○ Cloud Foundryの場合 ■ DEA上のWardenコンテナの中でユーザのアプリが pushされたものを組み立てるのに使う ○ 3つのフェーズが存在 ■ detect ● 『このファイルがあったらこの buildpackです!』と紐づける ■ compile ● javaのwebアプリなどはtomcatをどこかから持って来たりする処理が書かれている ● 運営者側でbuildpackキャッシュにファイルを置いておけば高速化出来る ■ release ● 環境変数のPATH等の設定 ● Procfileの設定等(-c相当でstartコマンドを決める) ■ ● 参考資料 ○ はじめてのCF biuldpack ■ http://www.slideshare.net/jacopen/cf-buildpack
  12. 12. 『buildpackを使っている』 という事は?
  13. 13. 『buildpack向けのツールの 恩恵が受けられる』ということ
  14. 14. 最近では 『Immutable Infrastructure』 というキーワードが流行ってきており 『Docker』 という便利なツールも使える為、PaaSに取って良い方向性に
  15. 15. 簡単にbuildpackを試す環境を作りたい そういったニーズから いくつか似たアプローチのツールが登場 1. dokku(buildstep) 2. building 3. docker-paas-example
  16. 16. Dokku(buildstep) ● buildstepとdokkuとは ○ Jeff Lindsayさんという人が開発 ○ 同じ人がFlynnという名称のPaaSを作成中(まだ開発中) ○ buildstep ■ buildpackを使ってDockerコンテナを作るスクリプト(ほぼほぼbash) ○ dokku ■ buildstep + git pushするとdockerコンテナを作ってくれる機能などが 存在 ● 参考 ○ http://qiita.com/hokaccha/items/af109d4037fa1d788617
  17. 17. 試した結果 ● flynn ○ 軽く試したけれどうまく動きませんでした。。。 ● dokku ○ 安定的かというと難しい所ですがplugin拡張なども出来 postgresqlなども使える『mini-heroku的』な存在 ■ https://github.com/progrium/dokku/wiki/Plugins ● buildstep ○ 簡単にbuildpackを使うには割と便利(後程デモします)
  18. 18. building ● buildingとは ○ Cloud FoundryのAppFog運営元?のCenturyLinkLabsの作ったrubyの gem ○ github上でも公開されている ○ こちらもdockerを使っていてbuildstepの+αくらいの位置づけ ■ buildstepのtarコマンド部分で固めたりする部分が簡略化されているらしい ○ 参考URL ■ https://github.com/CenturyLinkLabs/building ■ http://www.centurylinklabs.com/heroku-on-docker/ ■ http://qiita.com/futoase/items/21167e9d064b0e336e8f
  19. 19. docker-paas-example ● docker-paas-example ○ Naoya Itoさんが作成 ○ dokkuと同様な挙動でDocker+rubyで出来ている ○ Docker Meetup Tokyo #2向けに制作されたらしい ■ https://github.com/naoya/docker-paas-example
  20. 20. まとめ ● herokuのbuildpackと同じ仕組を使っていると同 じようなツールで恩恵を受ける事ができそう ● 個人的にはできればwardenもdocker位に楽に 使えるようになってほしい ● dokkuの人は元々Piston Cloudで OpenStack+Cloud Foundryを使っていて構築 に時間がかかって苦労したという経験からflynn 等を作ったという経歴がなかなか興味深い存在 ※http://wazanova.jp/items/985

×