本連載では、サーバレスコンピューティングの概要とユースケース、コンテナオーケストレーションやPaaSとの使い分け方などを分かりやすく解説した、Cloud Native Computing Foundationのホワイトペーパーを完訳してお届けする。第2回は、コンテナオーケストレーション、PaaS、サーバレスの3つのクラウドネイティブアプリケーションプラットフォームについて、それぞれの想定ユーザー、長所と短所などを説明した部分を掲載する。
【完訳】CNCF Serverless Whitepaper v1.0 連載バックナンバー
本連載では、サーバレスコンピューティング(以下、サーバレス)を解説したCloud Native Computing Foundation(CNCF)のServerless Working Groupによるホワイトペーパー、CNCF Serverless Whitepaper v1.0」を完訳してお届けしている。
連載第2回は、「コンテナオーケストレーション(Container as a Service)」「PaaS(Platform as a Service)」「サーバレス(Functions as a Service)」の3つのクラウドネイティブアプリケーションプラットフォームについて、それぞれの想定ユーザー、長所と短所などを説明した部分を掲載する(翻訳・構成:三木泉)。
クラウドネイティブアプリケーションを稼働するプラットフォームを探す際、ほとんどのアプリケーション開発者が検討する可能性のある、3つの主要な開発/展開モデルがあります。各モデルに、さまざまな実装(オープンソースプロジェクト、ホステッドプラットフォーム、オンプレミス製品など)があります。これらの3つのモデルは、密度、性能、分離、およびパッケージングの観点から、多くの場合コンテナ技術を基盤としていますが、コンテナ化は必須ではありません。
コードを実行する実際のインフラストラクチャからの抽象度が高まる順、開発の対象であるビジネスロジックへの集中度が高まる順に並べると、「コンテナオーケストレーション(またはContainer as a Service)」「PaaS(Platform as a Service)」「サーバレス(Functions as a Service)」となります。これらのアプローチは全て、クラウドネイティブアプリケーションを展開する方法を提供しますが、想定する開発者および作業負荷のタイプが異なり、このため機能面および非機能面の優先順位付けが異なります。次のセクションでは、それぞれの主要な特性の一部を示します。
全てのクラウドネイティブな開発と展開の課題を解決できる、唯一のアプローチは存在しないことに留意してください。特定のワークロードのニーズを、これらの一般的なクラウドネイティブ開発テクノロジーのメリットおよび欠点とマッチさせることが重要です。また、アプリケーションのサブコンポーネントそれぞれが、別のアプローチに適している可能性があるため、「(単一アプリケーションを)ハイブリッド構成とすることもあり得る」と考えることも重要です。
「Container as a Service(CaaS)」とも呼ばれ、 インフラストラクチャに対する完全な制御を維持し、最大限の移植性を実現します。例:Kubernetes、Docker Swarm、Apache Mesos。
Kubernetes、Swarm、Mesosなどのコンテナオーケストレーションプラットフォームでは、ポータブルなアプリケーションを構築し、展開できます。構成に関して柔軟性と制御が得られ、異なる環境への展開のための再構成は不要で、どこへでも動かすことができます。
メリットとしては、最大限の制御、柔軟性、再利用性があり、既存のコンテナ化されたアプリケーションをクラウドに持ち込むことも最も容易です。これら全ては、「あるべき姿についての主張を抑えた(less-opinionated)」アプリケーション展開モデルであることからくる自由度によって可能となっています。
CaaSの欠点としては、オペレーティングシステム(セキュリティパッチを含む)、ロードバランシング、キャパシティ管理、スケーリング、ロギング、およびモニタリングに関する開発者の責任が大幅に高まります。
ターゲットオーディエンス
開発/運用エクスペリエンス
利点
欠点
PaaS(Platform as a Service)は、開発者がアプリケーションに専念し、プラットフォームが残りの部分を処理するようにします。例:Cloud Foundry、OpenShift、Deis、Heroku。
サービスとしてのプラットフォームの実装により、チームはコンテナやOSを手動で設定・管理することなく、アプリケーションに構成情報を注入することで、幅広い一連のランタイム、データカタログ、AI、IoT、およびセキュリティサービスへのバインディングを使用してアプリケーションを展開および拡張できます。これは、安定したプログラミングモデルを持つ既存のWebアプリケーションに最適です。
利点としては、アプリケーション、自動スケーリング、最も一般的なアプリケーションのニーズに即した事前構成済みサービスの管理およびデプロイメントの容易化などがあります。
欠点には、OS制御、きめ細かなコンテナの可搬性や負荷分散、アプリケーションの最適化といった点での欠如、潜在的なベンダーロックイン、そしてほとんどのPaaSプラットフォームでは監視・ログ機能の構築と管理が必要であることなどが挙げられます。
ターゲットオーディエンス
開発/運用エクスペリエンス
利点
欠点
Copyright © ITmedia, Inc. All Rights Reserved.