SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
CloudFoundry アーキテクチャガイド	
 



2011/10/18(火)
第1回 CloudFoundry輪読会
@u1
自己紹介
—    名前: Yuichi Uemura	
—    twitter: @u1	
—    web: http://blog.udcp.net	

—    本職	
      ◦  IaaS基盤のサービス開発	
        –  VMware vSphere使って作ってます	
      ◦  ここ1年は、、、	
        –  AzureやOffice365といったMicrosoftのサービスと連携させる
            サービスの開発	

—    なぜCloudFoundryやっているか?	
      ◦  Azureやっていて、PaaS基盤の仕組みに興味を持っ
         たので触ってます
本資料の位置づけ
—  CloudFoundryを作った@derekcollision氏
 が2012年9月のOSCON2011の発表資料
 (http://www.slideshare.net/derekcollison/oscon-2011)を
 ベースとしています
アジェンダ
1.    CloudFoundryの設計思想	

2.    CloudFoundryの各種コンポーネント説明
1.  CloudFoundryの設計思想
CloudFoundryが目指しているところ
•    アプリケーションとサービスを動かす基盤を提供する	
•    利用者にとってベストな選択と機会を提供する	
•    シンプルでかつ速いインフラ
CloudFoundryを作る上での方向性
—    KernelとOrchestratorを分割して設計する	
      ◦  Layered on top of IaaS	
        –  IaaSレイヤーの上で動き、IaaSには依存しないシステム	
        –  VMware vSphere以外でも動く事	


—    Kernel	
      ◦  Core PaaS System	
        –  ここをCloudFoundryと呼ぶ	


—    Orchestrator	
      ◦  KernelをIaaS上に構築、運用、監視する部分は
         CloudFoundryに含まない	
         –  Kernelとは疎結合に作れるようにする	
         –  各事業者、利用者側でここは腕の見せ所
この部分が
CloudFoundryの範囲

 Orchestratorレイ
 ヤーは含まない
CF  Kernelを作る上での基本的な方向性
—    MTTRを高める事を意識する事	
      ◦  より早く検知し、より早く直す事に特化する	
        –  MTTR(Mean Time To Recovery)	
        –  MTBF(Mean Time Between Failures) 	


—    自律システムである事	
      ◦  故障に対して自動復旧出来る	
      ◦  保持する・設定する設定情報を最小限にする	

—    PaaSとその上で動くアプリの双方がスケールアウト出来る事	


—    SPOF(Single Point of Failure)が無い事	
	
—    上記を達成した上で、出来る限りシンプルにアーキテクチャを保ち続
      ける
Basic  Design


—  Event-Driven	
—  Asynchronous	
—  Non-blocking  IO	
—  Independent, Idempotent	
—  Message Passing	
—  Eventually Consistent
Basic  Pattern
—    All componentes loosely couples	
      ◦  疎結合である事	
—    Messaging as foundation	
      ◦  メッセージングによるやりとりを基盤とする	
—    JSON payload
Kernel  Components
—    全てのComponentを動的に発見出来る事	
      ◦  ComponentをDBに登録する必要は無い	
      ◦  自動登録、管理コストの低減、IaaSとPaaSの分割	


—    任意のサイズでComponentを実行出来る	
      ◦  全てのComponentを1つのOS上で動かす事も出来る	
       –  MicroCloudFoundry	
      ◦  複数のOS上に分割することも出来る	
       –  Production向けのCloudFoundry
Kernel  Components
—  CloudController	
  ◦  構成管理、制御コントローラー	
—  Router	
  ◦  URLロードバランサー	
—  DEA	
  ◦  Droplet Execution Agent	
  ◦  ユーザーアプリを動かすエージェント	
—  HealthManager	
  ◦  監視機構	
—  Messaging   System	
  ◦  コンポーネント間のメッセージ処理
2.  CloudFoundryの各種コンポーネント説明
CloudController
—    https://github.com/cloudfoundry/vcap/tree/master/cloud_controller	
—    機能	
      ◦  開発者がCF上のアプリの状態を確認、設定を行う際の入
         り口	
      ◦  CloudFoundryの全コンポーネントへの状態変更命令は全
         てCloudControllerを経由して行う	
        –  AppのDeployは元より明示的なStart/Stop等も全て実施	

—    実装	
      ◦  Rails3(現バージョンは3.0.5で動作)で書かれている	
      ◦  外部向けにREST APIを保持	
        –  使えるAPIはroutes.rbを見れば分かる	
      ◦  CloudControllerに対するユーザークライアントを
         VMC( VMware Cloud CLI)と呼ぶ	
        –  https://github.com/cloudfoundry/vmc
DEA  1

—    https://github.com/cloudfoundry/vcap/tree/master/dea	
—    機能	
      ◦  全ての"ユーザー"のAppの実行を司る	
      ◦  全てのAppはどのDEAでも実行可能な状態になる	
      ◦  1つのDEA上で1つのAppを動かすか、N個のAppを動かすかは
         選択可能	
        –  極小のVMで1OS 1DEA 1APPで動かすべきか(Single Tenant)、極
            大のVMで1OS 1DEA NAPPで動かすべきか(Multi Tenant)はインフ
            ラ側の設計指針に大きく影響する	
          –  Herokuのアプローチは後者	
      ◦  動かしているAppの状態の監視も実施している
DEA  2

—    実装	
      ◦  Ruby FiberとEventMachineが使える事が必須	
      ◦  CloudControllerで各言語、フレームワーク毎のstartupファイル
         を作成し、そのファイルをDEAから実行する	
       –  この際に利用するリソース量の制約をかけている	
       –  新しい言語、フレームワークに対応させる場合はstartupファイルの生成ロ
           ジックに手を入れればok	
      ◦  フレームワーク毎のstartupスクリプトの生成は/vcap/staging/
         lib/vcap/staging/pluginの中に記載
DEAからAPP起動部分のコード

https://github.com/cloudfoundry/vcap/blob/master/dea/lib/dea/agent.rb
Router
—    https://github.com/cloudfoundry/vcap/tree/master/router	
—    機能	
      ◦  全ての外部からのHTTPの通信はRouterを経由	
        –  APP向けの通信だけでなく、CloudControllerへのアプリケーションDeploy命
            令などもRouterを経由する	
      ◦  アプリケーション毎に下段のDEAにURLでルーティングをする	
        –  URL LoadBalancerとして動作	
      ◦  DEAからリアルタイムにルーティングテーブルのアップデート情報が来
         る	
        –  ルーティング情報は動き出したらオンメモリで保持	
        –  Router再起動時にはCloudControllerから情報を転送し、ルーティングテーブ
            ルを構成する	


—    実装	
      ◦  EventMachineによる非同期処理により、大量のセッション情報を取り
         扱っている	
        –  Routerの前段にNginxが仕込まれてる(SSL対応はここに仕込む)
HealthManager
—    https://github.com/cloudfoundry/vcap/tree/master/health_manager	
—    機能	
      ◦  DEA上のAppの状態を監視	
        –  DEAに対してHeartbeat Messageを定期的に飛ばしている	
        –  App自体の状態を見ているのはDEA側	
        –  DEAとHealthManagerは分割しておいておくのが望ましい	


—    実装	
      ◦  異常を検知した場合はCloudControllerに対して修復
         依頼メッセージを出す	
        –  自分自身に状態遷移を起こす権限は保持していない	
           –  例) DEAが動いているOSがDownした場合、別のDEAで該当APP
               を再起動させる
Services  1

—    https://github.com/cloudfoundry/vcap-services	
—    機能	
      ◦  ミドルウェアレイヤーのサービスのDeploy及びAppへ
         のbind(自動設定)を提供している	
      ◦  2つの役割、GatewayとNodeで構成されている	
       –  Node上でユーザーが利用するミドルウェアが動作し、
           Gateway側でNodeに対してDeployをする構成	
       –  DEAとCloudControllerの関係に近い	
      ◦  現状対応しているServicesは以下	
       –  mongodb、mysql、neo4j、postgresql(vpostgre)、rabbitmq、
           redis	
       –  大きく分けるとRDBとKVSの2種。ただし今後は増えていく可
           能性が高い	
         –  vblobなるサービスも。。。README.mdしか無いけどw
Services  2

—  実装	
  ◦  なぜかservicesだけソースコードツリーがvcapでなく
     て、vcap-servicesな事に注意	
  ◦  CloudControllerからの命令はREST UIで待ち受けて
     いる。ちなみにgatewayの基礎はsinatraで書かれて
     いる
Messaging
—  NATS	
—  後述のセッションで詳しく@hamaknが話し
  ます	

—  https://github.com/derekcollison/nats	
  ◦  ここだけcloudfoundryチームではなく、
     derekcollison氏のみによる管理
おしまい

Más contenido relacionado

La actualidad más candente

第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチTakeshi Morikawa
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSi_yudai
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方Akihiro Kitada
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructurei_yudai
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016JUNICHI YOSHISE
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版Kazuto Kusama
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud FoundryKazuto Kusama
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerKazuto Kusama
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Kazuto Kusama
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうi_yudai
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Kazuto Kusama
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpackKazuto Kusama
 
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingCloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingKazuto Kusama
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方Yuji Oshima
 
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話gree_tech
 

La actualidad más candente (20)

Cloud Foundry varz
Cloud Foundry varzCloud Foundry varz
Cloud Foundry varz
 
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service Broker
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
 
Lattice深掘り話
Lattice深掘り話Lattice深掘り話
Lattice深掘り話
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpack
 
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingCloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container Networking
 
ProjectAtomic-and-geard
ProjectAtomic-and-geardProjectAtomic-and-geard
ProjectAtomic-and-geard
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
 

Similar a Cloud Foundry構成概要 111018

AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-publicAmazon Web Services Japan
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Etsuji Nakai
 
20161022 Linux on Azureの世界
20161022 Linux on Azureの世界20161022 Linux on Azureの世界
20161022 Linux on Azureの世界Takayoshi Tanaka
 
App controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウドApp controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウドTakashi Kanai
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Akio Katayama
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーYosuke INOUE
 
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送Google Cloud Platform - Japan
 
VM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみようVM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみようMasayuki Ozawa
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)masanori kataoka
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlowTomoyuki Obi
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...Insight Technology, Inc.
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 

Similar a Cloud Foundry構成概要 111018 (20)

AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
20161022 Linux on Azureの世界
20161022 Linux on Azureの世界20161022 Linux on Azureの世界
20161022 Linux on Azureの世界
 
App controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウドApp controllerとwindows azure packで作る大規模プライベートクラウド
App controllerとwindows azure packで作る大規模プライベートクラウド
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
 
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
 
VM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみようVM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみよう
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 

Último

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Último (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

Cloud Foundry構成概要 111018

  • 2. 自己紹介 —  名前: Yuichi Uemura —  twitter: @u1 —  web: http://blog.udcp.net —  本職 ◦  IaaS基盤のサービス開発 –  VMware vSphere使って作ってます ◦  ここ1年は、、、 –  AzureやOffice365といったMicrosoftのサービスと連携させる サービスの開発 —  なぜCloudFoundryやっているか? ◦  Azureやっていて、PaaS基盤の仕組みに興味を持っ たので触ってます
  • 3. 本資料の位置づけ —  CloudFoundryを作った@derekcollision氏 が2012年9月のOSCON2011の発表資料 (http://www.slideshare.net/derekcollison/oscon-2011)を ベースとしています
  • 4. アジェンダ 1.  CloudFoundryの設計思想 2.  CloudFoundryの各種コンポーネント説明
  • 6. CloudFoundryが目指しているところ •  アプリケーションとサービスを動かす基盤を提供する •  利用者にとってベストな選択と機会を提供する •  シンプルでかつ速いインフラ
  • 7. CloudFoundryを作る上での方向性 —  KernelとOrchestratorを分割して設計する ◦  Layered on top of IaaS –  IaaSレイヤーの上で動き、IaaSには依存しないシステム –  VMware vSphere以外でも動く事 —  Kernel ◦  Core PaaS System –  ここをCloudFoundryと呼ぶ —  Orchestrator ◦  KernelをIaaS上に構築、運用、監視する部分は CloudFoundryに含まない –  Kernelとは疎結合に作れるようにする –  各事業者、利用者側でここは腕の見せ所
  • 9. CF  Kernelを作る上での基本的な方向性 —  MTTRを高める事を意識する事 ◦  より早く検知し、より早く直す事に特化する –  MTTR(Mean Time To Recovery) –  MTBF(Mean Time Between Failures) —  自律システムである事 ◦  故障に対して自動復旧出来る ◦  保持する・設定する設定情報を最小限にする —  PaaSとその上で動くアプリの双方がスケールアウト出来る事 —  SPOF(Single Point of Failure)が無い事 —  上記を達成した上で、出来る限りシンプルにアーキテクチャを保ち続 ける
  • 10. Basic  Design —  Event-Driven —  Asynchronous —  Non-blocking IO —  Independent, Idempotent —  Message Passing —  Eventually Consistent
  • 11. Basic  Pattern —  All componentes loosely couples ◦  疎結合である事 —  Messaging as foundation ◦  メッセージングによるやりとりを基盤とする —  JSON payload
  • 12. Kernel  Components —  全てのComponentを動的に発見出来る事 ◦  ComponentをDBに登録する必要は無い ◦  自動登録、管理コストの低減、IaaSとPaaSの分割 —  任意のサイズでComponentを実行出来る ◦  全てのComponentを1つのOS上で動かす事も出来る –  MicroCloudFoundry ◦  複数のOS上に分割することも出来る –  Production向けのCloudFoundry
  • 13. Kernel  Components —  CloudController ◦  構成管理、制御コントローラー —  Router ◦  URLロードバランサー —  DEA ◦  Droplet Execution Agent ◦  ユーザーアプリを動かすエージェント —  HealthManager ◦  監視機構 —  Messaging System ◦  コンポーネント間のメッセージ処理
  • 15.
  • 16.
  • 17. CloudController —  https://github.com/cloudfoundry/vcap/tree/master/cloud_controller —  機能 ◦  開発者がCF上のアプリの状態を確認、設定を行う際の入 り口 ◦  CloudFoundryの全コンポーネントへの状態変更命令は全 てCloudControllerを経由して行う –  AppのDeployは元より明示的なStart/Stop等も全て実施 —  実装 ◦  Rails3(現バージョンは3.0.5で動作)で書かれている ◦  外部向けにREST APIを保持 –  使えるAPIはroutes.rbを見れば分かる ◦  CloudControllerに対するユーザークライアントを VMC( VMware Cloud CLI)と呼ぶ –  https://github.com/cloudfoundry/vmc
  • 18.
  • 19. DEA  1 —  https://github.com/cloudfoundry/vcap/tree/master/dea —  機能 ◦  全ての"ユーザー"のAppの実行を司る ◦  全てのAppはどのDEAでも実行可能な状態になる ◦  1つのDEA上で1つのAppを動かすか、N個のAppを動かすかは 選択可能 –  極小のVMで1OS 1DEA 1APPで動かすべきか(Single Tenant)、極 大のVMで1OS 1DEA NAPPで動かすべきか(Multi Tenant)はインフ ラ側の設計指針に大きく影響する –  Herokuのアプローチは後者 ◦  動かしているAppの状態の監視も実施している
  • 20. DEA  2 —  実装 ◦  Ruby FiberとEventMachineが使える事が必須 ◦  CloudControllerで各言語、フレームワーク毎のstartupファイル を作成し、そのファイルをDEAから実行する –  この際に利用するリソース量の制約をかけている –  新しい言語、フレームワークに対応させる場合はstartupファイルの生成ロ ジックに手を入れればok ◦  フレームワーク毎のstartupスクリプトの生成は/vcap/staging/ lib/vcap/staging/pluginの中に記載
  • 22.
  • 23. Router —  https://github.com/cloudfoundry/vcap/tree/master/router —  機能 ◦  全ての外部からのHTTPの通信はRouterを経由 –  APP向けの通信だけでなく、CloudControllerへのアプリケーションDeploy命 令などもRouterを経由する ◦  アプリケーション毎に下段のDEAにURLでルーティングをする –  URL LoadBalancerとして動作 ◦  DEAからリアルタイムにルーティングテーブルのアップデート情報が来 る –  ルーティング情報は動き出したらオンメモリで保持 –  Router再起動時にはCloudControllerから情報を転送し、ルーティングテーブ ルを構成する —  実装 ◦  EventMachineによる非同期処理により、大量のセッション情報を取り 扱っている –  Routerの前段にNginxが仕込まれてる(SSL対応はここに仕込む)
  • 24.
  • 25. HealthManager —  https://github.com/cloudfoundry/vcap/tree/master/health_manager —  機能 ◦  DEA上のAppの状態を監視 –  DEAに対してHeartbeat Messageを定期的に飛ばしている –  App自体の状態を見ているのはDEA側 –  DEAとHealthManagerは分割しておいておくのが望ましい —  実装 ◦  異常を検知した場合はCloudControllerに対して修復 依頼メッセージを出す –  自分自身に状態遷移を起こす権限は保持していない –  例) DEAが動いているOSがDownした場合、別のDEAで該当APP を再起動させる
  • 26.
  • 27. Services  1 —  https://github.com/cloudfoundry/vcap-services —  機能 ◦  ミドルウェアレイヤーのサービスのDeploy及びAppへ のbind(自動設定)を提供している ◦  2つの役割、GatewayとNodeで構成されている –  Node上でユーザーが利用するミドルウェアが動作し、 Gateway側でNodeに対してDeployをする構成 –  DEAとCloudControllerの関係に近い ◦  現状対応しているServicesは以下 –  mongodb、mysql、neo4j、postgresql(vpostgre)、rabbitmq、 redis –  大きく分けるとRDBとKVSの2種。ただし今後は増えていく可 能性が高い –  vblobなるサービスも。。。README.mdしか無いけどw
  • 28. Services  2 —  実装 ◦  なぜかservicesだけソースコードツリーがvcapでなく て、vcap-servicesな事に注意 ◦  CloudControllerからの命令はREST UIで待ち受けて いる。ちなみにgatewayの基礎はsinatraで書かれて いる
  • 29.
  • 30. Messaging —  NATS —  後述のセッションで詳しく@hamaknが話し ます —  https://github.com/derekcollison/nats ◦  ここだけcloudfoundryチームではなく、 derekcollison氏のみによる管理