2013-04-29 4 views
51

クラウドファウンドリーについて読んできましたが、まだ私はそれが何であるかについてまだ混乱しています。とにかくCFのPaaSで私のテイクをとっています。もし間違っていると私に教えてくれたらうれしく思います。クラウドファウンドリーについて説明しました

Microsoft AzureやGoogle AppEngineのような従来のPaaSは、Webアプリケーションの開発、テスト、ホスト、管理のための完全なプラットフォームを提供します。ただし、APIを使用する必要があり、提供するサービスとサポートする言語/フレームワークに制限されています。

クラウドファウンドリーは、「ミドルマン」のように見えます。これにより、多くのパブリッククラウドのサービスをアプリで使用できるようになります。これはどのように達成されますか? LibCloudやJCloudのような、あなたが使用する単一のAPIはありますか? 1つのプロバイダから1つのサービスを使用し、別のプロバイダから別のサービスを使用できますか?クラウドファウンドリーは、それ自体がサービスを提供しているのですか、それとも単なる中堅の人なので、プラットフォーム間で簡単に移行し、異なるプロバイダの異なるサービスの組み合わせを1つのアプリケーションで使用できますか?

答えて

73

私はCloud Foundryの開発者です。そして、Cloud Foundryは実際には少し曖昧です(意図しない言い訳はありません)。うまくいけば、私は事を少し明確にするのを助けることができます。

Cloud Foundryはplatform as a serviceですが、その下にinfrastructure as a serviceが必要です。 Cloud FoundryはBOSHツールを使用してインフラストラクチャとしてvSphere,vCloud,OpenStackおよびAmazon AWSをサポートしています。ほとんどのWebアプリケーション開発者はそれについて気にしませんが、これは大規模なITインフラストラクチャについて心配する必要がある人にとっては本当にうれしいです。

あなたはAcmeCorpのIT担当者であるとします。自分の内部WebサービスであるFizzbuzzを使用して5万人の従業員を雇用しています。すべての従業員をサポートするには、強力なプロセッサーと大量のメモリーを備えた数台のマシン上でFizzbuzzアプリケーションを数十回実行する必要があります。使用するFoo、Bar、およびBazアプリケーションによって生成される情報を格納するには、内部的にも。独自のブレード・サーバーで管理したいことを気にすることなく、データ・センターをリースすることに決めました。

残念ながら、AcmeCorpはひどく機能不全です。財務部門では、使用するデータセンターに大きな声があり、数年ごとに1つのデータセンターから別のデータセンターに切り替えることができます。何年にもわたって、vSphere、vCloud、OpenStackなどを切り替えることで公開されているFizzbuzzのバグをエンジニアが解決しようとしている間、数週間のダウンタイムがあります。

エンジニアが基礎インフラストラクチャに対して直接的にではなく、Fizzbuzz、Foo、Bar、およびBazをCloud Foundryに対して書いた場合、ダウンタイムは最小限に抑えられました。特定のデータセンターに縛られていることを心配する必要はありません。クラウド・ファウンドリーがそのホスティング層を抽象化しているためです。 Cloud Foundryは、PostgreSQL、MySQL、Mongo、Redis、RabbitMQなどの特定のサービスもサポートしています。 Foo、Bar、BazがCloud Foundryが提供するサービスを使用する場合、インフラストラクチャ間を移行する際に心配することは少なくなります。

後で道を進むと、他の大企業へのサービスとしてFizzbuzzを販売することで、あなたは財産を稼ぐことができます。エンジニアがFizzbuzzをCloud Foundryで実行するように再構築したため、Cloud Foundryを必要なだけAWSにデプロイすることができます。顧客は6か月間それを試して、サービスを更新しないことにしましたか?問題はありません。データセンターのリースを心配する必要はありません。これらのEC2インスタンスをすべて終了してから移動してください。顧客のデータが完全に分離されるように、サービスとしてFizzbuzzの各インスタンスごとにCloud Foundryの導入を簡単に行うことができます。

ケーキのアイシングは、Cloud Foundryがオープンソースであることです。あなたのニーズにはそれほど適していないことがわかった場合は、電子メールによるサポートだけでなく、Cloud Foundryエンジニアがあなたの夢の機能を実装するのを待つ必要はありません。ソースもあります。あなたが必要とする変更。 the Apache 2.0 licenseの下にあるので、プルリクエストは喜んで受け入れられますが、必須ではありません。

クラウドファウンドリが解決する種類の問題の絵を描きたいと思います。コメントで詳細をお尋ねください。または、今後の質問にもっと意味がある場合はCloud Foundry mailing listをご覧ください。

+0

まだぼやけているのは価格設定ですか? cfスタックは無料で、何を支払っていますか?何かキャッチはありますか? :) – Tomo

+0

マーク、素晴らしい情報。 AcmeCorpがキャッシング、メッセージング、ロギング、データベース接続、環境変数などの設定が少し異なるFizzbuzzの新しいインスタンスを常時導入していた場合、これらの設定をパラメータ化してセルフサービスコンソールで公開することができます。 CloudFoundryは、開発チームがFizzbuzzの新しいインスタンスをプロビジョニングして配置するのを可能にします。 – raffian

+0

よく書かれています... – underdog

20

私はクラウドファウンドリの開発者支持者であり、元の質問に記載したその他の詳細に焦点を当てるためにMarkの答えに少し追加したいと思います。

まず、GAEとAzureについて言及します。これらの両方には一定の制限があります。例えば、GAEは特定の言語やAPIに限定しています。どちらもオープンソースではありません。 CFは拡張性があります(例えば、新しいバージョンにはbuildpackサポートがあり、 "any"言語ランタイムを選択できるようになります)。そして、必要な場所で実行することができます。

マークは4つのIaaSプロバイダをサポートしていますが、IaaS(Azure、CloudStack、Google Compute Engineなどを将来のターゲットとする)を使用すると、プロバイダーインターフェイス(CPI)を使用すると、Cloud Foundryをインフラストラクチャに展開することもできます。

さまざまなプロバイダのサービスをどのように使用できるか尋ねます。 Herokuと同様、今後のバージョンのCloud Foundry(.com)は、他のベンダーの機能をプラグインできる「マーケットプレイス」をサポートし、独自のCloud Foundryインスタンスを実行している場合は、どのサービスを展開してアプリケーションに接続するかを選択できます。

あなたはもっと知りたいなら、メーリングリストで私達に話してください。

+0

私の答え、アンディから空白を記入してくれてありがとう! –

+0

両方の皆さん、MarkとAndyのおかげで!私はまだAPIに関して質問があります。クラウドファウンドリーが提供する汎用APIはありますか?私のアプリケーションは、IaaSが提供しているものは何でも機能します。ああ、私はそれに取り組んでいるが、始める方法を教えてくれるコードチュートリアルはありますか? – Amoeba

+0

心配する必要がある「Cloud Foundry API」はありません。あなたが死んだ標準のnode.js、Grails、Rubyなどのアプリケーションを正しく編集すれば、特別なコード変更をせずにCFにプッシュできるはずです。 チュートリアルでは、docs.cloudfoundry.comをご覧ください。 –

6

は、Andyの回答に対するAPIに関するコメントとしてこれを追加したいと思いますが、残念ながらそれを行うには十分な評判がありません。クラウドファウンドリーには特定のAPIはありませんが、あらゆる言語やフレームワークからアクセスできる環境変数(たとえばVCAP_SERVICES, VCAP_APPLICATION, VCAP_CONSOLE_IP, VCAP_APP_PORT)を介して多くの有益な情報を提供しています。このような変数からの多くの情報はCloud Foundryの内部にありますが、その中のいくつかは非常に有用かもしれません。主なものはVCAP_SERVICESで、これはあなたのアプリにバインドされているサービスに関する情報を提供します。

たとえば、私のアプリケーションが現在実行されているAzure Cloud Serviceインスタンス(IDなど)に関する情報を収集する場合は、Azure管理ライブラリのthisクラスを使用します。

次に、Cloud FoundryはVCAP_APPLICATION envを提供します。変数には、次のフィールドが含まれます。

{"application_users": [], 
"instance_id":"97467a9cf508cb75273284b948b6319b", 
"instance_index":1, 
"application_version":"330b7caf-50e5-48f4-8792-1c80a90b06f1", 
"application_name":"helloworld", 
"application_uris":["helloworld.vcap.me"], 
"started_at":"2013-07-22 10:58:16 +0300", 
"started_at_timestamp":1374479896, 
"host":"0.0.0.0", 
"port":61014, 
"limits":{"mem":256,"disk":1024,"fds":16384}, 
"version":"330b7caf-50e5-48f4-8792-1c80a90b06f1", 
"name":"helloworld", 
"uris":["helloworld.vcap.me"], 
"users":[], 
"start":"2013-07-22 10:58:16 +0300", 
"state_timestamp":1374479896} 

最後に、ログ、監視、診断についてのいくつかの単語です。これは現在、CF PaaSレベルでは実装されていませんが、これが実装されることを望みます(本当に便利な機能なので)。変数(例:VCAP_LOGS, VCAP_PERFORMANCE_COUNTERS)はGoogleのアプリに公開されます。

+1

コメントを投稿できない場合は、回答を別のオプションとして使用しないでください。しかし、私はあなたが答えを改善していると正当であると信じています。私は将来、新しい答えを出すのではなく、既存の答えを編集することを提案します。 –

+0

「クラウドファウンドリーには実際には特定のAPIはありません」と私が理解している限り、実際にはクラウドコントローラAPI(http://docs.cloudfoundry.com/docs/reference/cc-api.htmlに記載されています)。 「ログ、モニタリング、診断についての言葉ですが、現在CF PaaSレベルでは実装されていません」 - これらの機能は開発中のLoggregatorを介して追加されています。 –

+1

私が理解しているように、問題のAPIはPaaS管理API(原因はCFで実装され、Andy提供のリンクで説明されています)ではなく、配備されたアプリケーションの観点から見たAPI配備されたアプリによって呼び出される可能性があります)。そのようなアプリケーションAPIはありません(基本的には、理解しているように、膨大な量のフレームワークがサポートされています)。私が間違っているなら、私を修正してください。 –

2

は確かにCFは、パブリックとプライベートクラウドの中にアプリを移動するためにあなたの移植性を与え、あなたのIaaS(サーバ、ストレージ、ネットワーク)とアプリケーションの間に抽象化層であるが、それはまた、あるはるか:

1 。高度に水平方向にスケーラブルなコンテナベースのプラットフォーム

アプリケーションは、ホスト(VM)にアプリケーションを割り当てるよりも、リソース管理を向上させるためにコンテナ内で実行されます。 Dockerは最近のバージョンでもサポートされていますが、Warden/GardenはCFネイティブコンテナテクノロジです。

2.アプリケーションにHAの複数の層を提供する自己回復プラットフォーム

健康管理システムは、無停電で、失敗したアプリケーションのインスタンス、コンテナのホスト、プラットフォームプロセス、およびVMを復活します。可用性ゾーンのサポートにより、インフラストラクチャ層にHAが提供されます。ローリングアップデートとカナリーデプロイでは、導入やプラットフォームのアップグレード中にも停止時間がゼロになります。 Herokuのを使用

3独断、ポリグロットアプリケーションランタイム

「buildpack」構築物、アプリケーション言語ができるように、自動的に検出し、適切なランタイムスタックがバニラOSイメージの上に構築され開発者はコードを書くことに集中できます。ステートフルなデータサービスの

4.開発者向けのオンデマンドプロビジョニングは

開発者などのMySQL、RabbitMQの、Redisの、URI /資格情報を持つクラスタのスライスは自動的にアプリの環境へと自己規定を注入することができます。

関連する問題