#Cloud Foundryとは(いちお)
アプリケーションデリバリー変革のためのプラットフォーム
Kubernetesが既存のアプリケーションのモダナイズやLift&Shiftを目的とする中で、よりインフラに捕らわれずに12-Factorを利用したカナリーリリースを含む新規と更新サービスをロールアウト出来るプラットフォームが注目されています。いわゆるPaaSサービスはHerokuに始まり、クラウドベンダーが手がけるApp EngineやAzure app serviceなどやFaaSよりのAmazon Lambdaなどのサービス、IBMが提供するRedhat OpenShiftなどがあります。その中で今後Kubernetesと同じくオープンソースとしてデファクトになるであろうCloud Foundryとは何かを復習しつつ触って行きたいと思います。
そんなCloud Foundryの初リリースは2011年。高速で簡単なビルド、テスト、デプロイ、アプリのスケール、マルチ言語対応のオープンなクラウドネイティブプラットフォームとして生まれました。以下の様なことをやってくれます。
Cloud Foundryの主なメリット:
- アプリケーションのポータビリティー
- アプリケーションの自動スケーリング
- 集約されたプラットフォーム管理
- 一元化されたログ機能
- ダイナミックルーティング
- アプリケーションのヘルス管理
- Elasticsearch、Logstashなどの外部ログツールとの統合
- デプロイされたアプリケーションへの役割ベースのアクセス(RBAC)
- 垂直および水平スケーリングのプロビジョニング
- インフラストラクチャーのセキュリティ
- 様々なIaaSプロバイダーのサポート
Codeから先のアプリケーション、コンテナ化、コンテナのデプロイは自動でいい感じにやってくれます。つまりインフラは意識しない仕組み。後述しますがこれは一度使うと感動します。最大のメリットはアプリ開発サイクルの短縮。数ヶ月から数日と劇的な短縮が可能です。CNCFが公表しているデータだと平均的なプロジェクトで2ヶ月半の短縮と一千万円ほどの節約が出来るそうです(*1)。日本でも確認出来る公開事例だけでも上場企業がWebアプリ系を中心に利用が始めています。
興味のない方はスルーで構いませんが以下の様なコンポーネントが入っています
- Gorouter - アプリケーションとシステムのルーティング
- Cloud Controller - アプリケーションのステージング
- User Account and Authentication Server - 認証管理
- Helm Charts - デプロイ自動化
- Diego - アプリケーションの実行とランタイム
- Eirini - スケジューラー
- Garden - コンテナバックエンド
- Loggregator - ログとメトリックの集約
各種のBuildpacksやService brokersにも対応しています(つまりパブクラ固有のサービスと連携出来たりします)
そんなCFですが、オープンソースなので色々なベンダーがソリューションを提供しています。例えばPlatinumメンバーの顔ぶれは、DellEMC、Google、IBM、SAP、SUSE、VMwareです(*2)。
Happy coding!
*1) CFF-User-Survey
*2) [Cloud Foundry members] (https://www.cloudfoundry.org/members/)