Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
CFのあの便利機能を
他の環境でも。
Open
Service
Broker
Pivotal Japan - Platform Architect
Kazuto Kusama
@jacopen
Open Service Brokerの前に
Service Brokerの話をしよう
イメージしてみよう
アプリ開発した!DBも用意して動かそう!
① DBを作る
VM/ベアメタルにインストールしたり
RDSのようなManagedサービス使ったり
アプリ開発した!DBも用意して動かそう!
host:	aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432
db:	production
user:	mssql
pass:	xxxxx
① DBを作る
VM...
アプリ開発した!DBも用意して動かそう!
host:	aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432
db:	production
user:	mssql
pass:	xxxxx
db:
host:	...
アプリ開発した!DBも用意して動かそう!
host:	aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432
db:	production
user:	mssql
pass:	xxxxx
db:
host:	...
アプリ開発した!DBも用意して動かそう!
host:	aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432
db:	production
user:	mssql
pass:	xxxxx
db:
host:	...
Cloud Foundryの解決方法
Marketplace
CF CLIでDBを作成し、アプリに紐付ける例
cf push frontend (1)
cf create-service p-mysql 100mb-dev mydb (2)
cf bind-service frontend mydb (3...
CF CLIでDBを作成し、アプリに紐付ける例
cf push frontend (1)
cf bind-service frontend mydb (2)
Backend
Application
① フロントエンドアプリをpush ② アプリ...
イケてる 😃
Marketplaceのメリット
• バックエンドサービスのプロビジョニングとコンフィグレーション
が自動化できる
• どのサービスも同じインタラクションで利用できる
この仕組みを実現するのがService Broker
Service Broker
• Cloud FoundryでMarketplaceを実現したい!
• Cloud Foundryと外部サービスを中継する仕組みが要るよね
• 中継する仕組みが備えるべきAPIをService Broker AP...
Service
Broker
for
AWS
create-service	aws-rds-oracle
service	broker
API AWS	API
responseresponse
Service
Broker
for
AWS
bind-service	aws-rds-oracle
service	broker
API
configuration
アプリケーションには環境変数で
必要なコンフィグが渡される
configur...
Service
Broker
for
AWS
create-service	aws-rds-oracle
create-service aws-rds-postgres
create-service	aws-rds-aurora
create-...
Service
Broker
for
AWS
MySQL
for
PCF
Broker
GCP
Service
Broker
New	Relic
Service
Broker
さまざまなBrokerを登録することで
どのサービスもcreate ...
Service Brokerの良さ
• Service Brokerの設計や思想は非常にシンプルであり、かつ実用的
• 後付けする形でCloud Foundryの機能を拡張していける
• Cloud Foundryの強さの要因の一つ
12 Factor App
• スケールし、クラウドに適したアプリを構築するための12の方法論
バックエンドサービスをリソース化
• 12 Factor AppのIV項「バックエンド
サービス」で説かれている方法論
• バックエンドサービスをリソースと
して扱い、アプリケーションにはそ
れをアタッチする
Open Service Brokerとは
すべてをコンテナ化するk8s、しかし・・・
• KubernetesはStateful Setsなどの機能により、SoRな仕組みもホスト
できるようになりつつある。
• しかし、無理にk8sの中で動かすのではなく、マネージドサービスを
使った方...
コンテナだってMarketplaceしたい!
• Marketplaceの考え方はk8sでも活用できる
• Service Brokerよく出来てるから、他でも使えるようにしよう!
• でも、Cloud Foundry前提に作られている・・・
organization_guidやspace_guidなど、
Cloud Foundry固有のパラメータが必須になっている
例えば・・・
Open Service Broker APIプロジェクト
• さまざまな実装に対応した仕様を定める
• テストスイートを作成する
• この仕組みを広める
CF固有のパラメータはdeprecatedにして、
contextという汎用的、かつOptionalなパラメータを導入
例えば・・・
ガバナンス
実装
現在
例えば、Trove Service
Brokerなんてもアリか
もしれない
まとめ
• Service BrokerはCFの強力な機能
• エコシステムを広げるため、CF以外に解放。
それがOpen Service Broker
• Kubernetesでも、近い将来使えるようになるはず!
CFの便利機能を他の環境でも。Open Service Broker
Nächste SlideShare
Wird geladen in …5
×

CFの便利機能を他の環境でも。Open Service Broker

7.373 Aufrufe

Veröffentlicht am

OpenStack Daysで発表した資料です

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

CFの便利機能を他の環境でも。Open Service Broker

  1. 1. CFのあの便利機能を 他の環境でも。 Open Service Broker
  2. 2. Pivotal Japan - Platform Architect Kazuto Kusama @jacopen
  3. 3. Open Service Brokerの前に Service Brokerの話をしよう
  4. 4. イメージしてみよう
  5. 5. アプリ開発した!DBも用意して動かそう! ① DBを作る VM/ベアメタルにインストールしたり RDSのようなManagedサービス使ったり
  6. 6. アプリ開発した!DBも用意して動かそう! host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 db: production user: mssql pass: xxxxx ① DBを作る VM/ベアメタルにインストールしたり RDSのようなManagedサービス使ったり ② コンフィグを控える ホスト名orIP、DB名、ユーザー名、 パスワードは最低限控えておく必要がある
  7. 7. アプリ開発した!DBも用意して動かそう! host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 db: production user: mssql pass: xxxxx db: host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 name: production user: mssql pass: xxxxx ① DBを作る VM/ベアメタルにインストールしたり RDSのようなManagedサービス使ったり ② コンフィグを控える ホスト名orIP、DB名、ユーザー名、 パスワードは最低限控えておく必要がある ③ アプリのコンフィグを修正 アプリのコンフィグファイルに②を記述。 より汎⽤的にするなら、環境変数から読み込むように することも。
  8. 8. アプリ開発した!DBも用意して動かそう! host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 db: production user: mssql pass: xxxxx db: host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 name: production user: mssql pass: xxxxx ① DBを作る VM/ベアメタルにインストールしたり RDSのようなManagedサービス使ったり ② コンフィグを控える ホスト名orIP、DB名、ユーザー名、 パスワードは最低限控えておく必要がある ③ アプリのコンフィグを修正 アプリのコンフィグファイルに②を記述。 より汎⽤的にするなら、環境変数から読み込むように することも。 ④ 起動!
  9. 9. アプリ開発した!DBも用意して動かそう! host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 db: production user: mssql pass: xxxxx db: host: aaa.bbb.ap-northeast-1.rds.amazonaws.com:5432 name: production user: mssql pass: xxxxx ① DBを作る VM/ベアメタルにインストールしたり RDSのようなManagedサービス使ったり ② コンフィグを控える ホスト名orIP、DB名、ユーザー名、 パスワードは最低限控えておく必要がある ③ アプリのコンフィグを修正 アプリのコンフィグファイルに②を記述。 より汎⽤的にするなら、環境変数から読み込むように することも。 ④ 起動!
  10. 10. Cloud Foundryの解決方法 Marketplace
  11. 11. CF CLIでDBを作成し、アプリに紐付ける例 cf push frontend (1) cf create-service p-mysql 100mb-dev mydb (2) cf bind-service frontend mydb (3) Frontend Application ① フロントエンドアプリをpush ② DBを作成(marketplaceのp-mysqlを選択) Frontend Application DB ③ アプリとDBを紐付け(バインド) Frontend Application DB
  12. 12. CF CLIでDBを作成し、アプリに紐付ける例 cf push frontend (1) cf bind-service frontend mydb (2) Backend Application ① フロントエンドアプリをpush ② アプリとDBを紐付け(バインド) Frontend Application DB Backend Application
  13. 13. イケてる 😃
  14. 14. Marketplaceのメリット • バックエンドサービスのプロビジョニングとコンフィグレーション が自動化できる • どのサービスも同じインタラクションで利用できる この仕組みを実現するのがService Broker
  15. 15. Service Broker • Cloud FoundryでMarketplaceを実現したい! • Cloud Foundryと外部サービスを中継する仕組みが要るよね • 中継する仕組みが備えるべきAPIをService Broker APIとして定義 • Service Broker APIを実装した中継くんをService Brokerと呼ぶ
  16. 16. Service Broker for AWS create-service aws-rds-oracle service broker API AWS API responseresponse
  17. 17. Service Broker for AWS bind-service aws-rds-oracle service broker API configuration アプリケーションには環境変数で 必要なコンフィグが渡される configuration AWS API
  18. 18. Service Broker for AWS create-service aws-rds-oracle create-service aws-rds-postgres create-service aws-rds-aurora create-service aws-dynamodb create-service aws-s3 どのAWSのサービスも同じインタラクションで作成可能
  19. 19. Service Broker for AWS MySQL for PCF Broker GCP Service Broker New Relic Service Broker さまざまなBrokerを登録することで どのサービスもcreate service, bind-serviceで 作成とバインディングができる
  20. 20. Service Brokerの良さ • Service Brokerの設計や思想は非常にシンプルであり、かつ実用的 • 後付けする形でCloud Foundryの機能を拡張していける • Cloud Foundryの強さの要因の一つ
  21. 21. 12 Factor App • スケールし、クラウドに適したアプリを構築するための12の方法論
  22. 22. バックエンドサービスをリソース化 • 12 Factor AppのIV項「バックエンド サービス」で説かれている方法論 • バックエンドサービスをリソースと して扱い、アプリケーションにはそ れをアタッチする
  23. 23. Open Service Brokerとは
  24. 24. すべてをコンテナ化するk8s、しかし・・・ • KubernetesはStateful Setsなどの機能により、SoRな仕組みもホスト できるようになりつつある。 • しかし、無理にk8sの中で動かすのではなく、マネージドサービスを 使った方がいいケースは往々にしてある。 • たとえばメールサーバーなんて誰もホストしたくない。SendGridやAmazon SESを使いたい • DBの運用をコンテナ内でしたくない、RDS使いたい • NewRelic、Datadogなどなど便利なサービスもいっぱいある。
  25. 25. コンテナだってMarketplaceしたい! • Marketplaceの考え方はk8sでも活用できる • Service Brokerよく出来てるから、他でも使えるようにしよう! • でも、Cloud Foundry前提に作られている・・・
  26. 26. organization_guidやspace_guidなど、 Cloud Foundry固有のパラメータが必須になっている 例えば・・・
  27. 27. Open Service Broker APIプロジェクト • さまざまな実装に対応した仕様を定める • テストスイートを作成する • この仕組みを広める
  28. 28. CF固有のパラメータはdeprecatedにして、 contextという汎用的、かつOptionalなパラメータを導入 例えば・・・
  29. 29. ガバナンス
  30. 30. 実装 現在
  31. 31. 例えば、Trove Service Brokerなんてもアリか もしれない
  32. 32. まとめ • Service BrokerはCFの強力な機能 • エコシステムを広げるため、CF以外に解放。 それがOpen Service Broker • Kubernetesでも、近い将来使えるようになるはず!

×