フレームワークやコンテナ、アプリケーションプラットフォームは、モダンなアプリケーションアーキテクチャのコンポーネントだ。Cloud Foundry FoundationのChip Childers氏は、先週のApacheCon Conferenceで、モダンなアプリケーションのアーキテクチャとクラウドネイティブなプラットフォームについて講演をした。
氏は、クラウドネイティブなアプリケーションとビジネス価値の継続的デリバリを合体させることについて話した。こうすることで、開発チームは開発プロセスでも運用環境への配置でもアジャイルなチームになる。HadoopやSpark、Docker、Mesosというような技術は組織が継続的にイノベーションを行うことを手助けする。
氏は、企業がオープンなアプリケーションアーキテクチャのすべてのレイヤで次のようなスタックフレームワークを使うことについて話している。
- プログラミングフレームワーク
- コンテナ
- アプリケーションプラットフォーム
- オペレーションシステム
- 仮想マシン
- データセンター運用システム
- データセンターネットワーク
- キャリアネットワーキング
- ハードウェア
マイクロサービスも新しいアプリケーションアーキテクチャモデルの大きな一部分だ。マイクロサービスへの要望としては、高速プロビジョニング、監視、素早いアプリ配置、DevOps文化がある。
このようなアーキテクチャで使われる技術としては、コンテナプラットフォーム(Docker、Rocket)、自動化ツール(Puppet、Ansible、Chef)、データセンターのクラスタ管理フレームワーク(Mesos、Kubernetes)だ。
そして、氏はCloud Foundryプロジェクトの技術スタックについて話した。このスタックには、Diegoと呼ばれる伸縮自在な実行環境が含まれている。アプリケーションや永続化環境はこの環境が必要だ。また、氏はLatticeプロジェクトについても説明した。このプロジェクトを使うとラップトップ上やAmazonクラウド上でこの実行クラスタで実行できる。
氏は、この講演をクラウドコンピューティングの世界のビジョンを示し、講演を終えた。クラウドコンピューティングは普遍的で柔軟であり、パブリック、プライベート、ハイブリッドなアプリケーションの配置を実現する。また、移植可能であり、相互互換性があって、ユーザは必要に応じてアプリケーションを動かすことができる。
InfoQは、Chip氏にインタビューし、Cloud Foundry FoundationやCloud Foundryで使われている技術について話した。
InfoQ: Cloud Foundry Foundationとは何ですか。
Childers:Cloud Foundry Foundationは非営利の独立したオープンソース団体でCloud Foundryの長期的な成長を目的としています。オープンソースのクラウドネイティブアプリケーションプラットフォームとして、Cloud Foundryはアプリケーションの構築、テスト、配置、運用、スケーリングを素早くかつ簡単にします。また、ソフトウェア開発のフレームワークやデータサービスのオープンなエコシステムをサポートしています。この団体40を超える企業によって構成されています。技術ベンダやクラウドサービスプロバイダ、エンドユーザの組織です。
InfoQ: Dockerのようなコンテナで動かすアプリケーションを作るためには開発者は何を考慮するべきでしょうか。
Childers: 一般的に言って、12-factor application architectureはモダンなアプリケーションの設計を考慮する上で考慮すべき点が最も適切に書かれていると思います。この12の要素はクラウドプラットフォームへのアーリーアダプターによって検証された原則が具体化されています。
"Dockerはコンテナ時代の工芸通貨である"という評言が最近私が聞いた中で、最も適切なDocker評です。コンテナは現在の企業のアプリケーションデリバリパイプラインで強力なツールになりました。コードを開発者のラップトップからCI/CDチェーンを経由して、運用環境は持ってくる方法を理解するのは本当に重要なことです。
InfoQ: クラウドネイティブなアプリケーションプラットフォームとは何でしょうか。
Childers:Cloud Foundryのようなクラウドネイティブなプラットフォームは開発者チームと運用チームにモダンな、そして、上述した12の要素を持つアプリケーションを素早く展開するための能力とサービスを提供します。"プラットフォーム運用"と"アプリケーション運用"を明確に区別するのに必要な運用作業を具体化し自動化します。そして、開発チームにも運用チームにもクリーンなインフラを与え、継続的な運用作業を最優先事項の1つとして設計に組み込みこまれています。