Responsibility、https://cloudsecurityalliance.org/blog/2021/02/04/the-evolution-of-cloud-computing-and-the-updated-shared-responsibility/)の日本語版で、著者の許可のもとに翻訳し公開するものです。原文と日本語版の内容に相違があった場合には、原文が優先されます。クラウドコンピューティングは、過去10年間変化し続けてきた。このブログは、コンテナ、機能、ローコード、ノーコードの成長によるクラウド状況の変化の結果として、今までのサービスモデルがもはや十分ではないということの理由について説明する。このブログでは、さまざまなパラダイムの責任共有モデルについても説明し、将来の方向性について検討する。Publication800-145)。このドキュメントは、特にクラウドサービスとクラウド配備戦略を比較する際に、その標準とガイドラインを提供する手段として機能し、クラウドコンピューティングの最適な使用法のベースラインを提供することを目的とした。3つのサービスモデルは、SaaS(Software-as-a-Service)、PaaS(Platform-as-a-Service)、IaaS(Infrastructure-as-a-service)である。これはすでに過去のことであり、モデルは新しいプラットフォームを包含するように進化する必要がある。市場に新しく差別化された価値をもたらすことは今や競争上の必要性であり、反復可能な方法でより迅速にイノベーションを実現するために最も組織化された企業が市場のリーダーとなる。企業におけるクラウドコンピューティングの配備は、成熟し、変化を遂げており、新しい価値をもたらし、ソフトウェアが変化の原動力となっている。このことは、インフラストラクチャ層、サービス層、アプリケーション層に当てはまる。ここでは、急増するコンテナ、Kubernetes(K8s)の台頭、エッジコンピューティングの出現、サーバーレスアーキテクチャの幅広い採用を見ることができる。開発者に提供されるすべてのサービスが、より早く市場に価値をもたらすことを可能にしている。新しいアーキテクチャを2011年のSaaS-PaaS-IaaSフレームワークに適合させようとすることは、丸い穴に四角いペグを適合させるようなものだ。Platform、あるいはより総称的にプラットフォームプロバイダ)とクラウド利用者またはアプリケーション所有者(エンタープライズおよびスタートアップ)の間の責任の明確な境界を提供する。次の図は、さまざまなサービスモデル間における責任の違いを示している。いくつかの重要なポイント:徐々により多くの責任がプラットフォームプロバイダによって引き受けられ、アプリケーション所有者をアプリケーションロジック以外の責任から解放している。右に移動していくと、プラットフォームプロバイダがより多くの責任を負うため、運用コストとオーバーヘッドが削減される。NoCode/SaaSのようなプラットフォームになると、開発者の責任自体が縮小する。筋金入りのプログラマではない開発者という新しいレベルの台頭につながっている。IaaS、PaaS、SaaSに加えて、それ以降に進化した新しいサービスモデルを以下に定義する。service(CPaaS)である。ここでは、Kubernetesコントロールプレーンはプラットフォームプロバイダによって管理され、アプリケーション所有者がオプションで提供するコントロールプレーン(別名K8sマスターノード)構成を使用する。データプレーンのライフサイクルとその管理は、アプリケーションの所有者が行う。これは、アプリケーションにデータプレーンからの特定のニーズがある場合、追加の運用オーバーヘッドよりもコスト最適なスケールアウトが大きな考慮事項である場合、あるいはアプリケーションがマルチクラウドに移植可能なアプリケーションであることが必要な場合に最適である。Engine(GKE)がある。Service(ECS)は、Kubernetes以外のマネージドコントロールプレーンサービスの例である。(CaaS)CaaSの場合、アプリケーションの所有者がアプリケーションコンテナを提供し、プラットフォームプロバイダがコントロールプレーンとデータプレーンの両方を管理する。アプリケーションユーザは、CPaaSによって提供されるすべての機能に加えて、サーバー(VM)、ホストOSのスケーリングとパッチ適用、サーバーの起動と停止を管理する必要がなくなる。これらのサービスは、アプリケーションの所有者が多くのサーバー管理の責任から解放されるため、サーバレスとも呼ばれる。このサービスは、イベントドリブンアーキテクチャではなく、アプリケーションの所有者がスケールアウトのコストをあまり気にしない場合に最適である。Instances(ACI)、GoogleCloudRunなどのソリューションがある。(FaaS)FaaSの場合、アプリケーションの所有者は、機能を実行するレイヤーとともにビジネスロジックを提供する。これらの機能は、サービスプロバイダによって構築、パッケージ化、および実行される。サービスコントロールプレーンとデータプレーンは、サービスプロバイダによってすべて処理される。このサービスは、イベント駆動型のステートレスアプリケーションに最適である。CloudFunctionsがある。(NCaaS)NCaaSでは、コードロジックはアプリケーションの所有者によって提供される。サービスプロバイダは、仕様と構成からコードを生成し、ソフトウェアをビルド、パッケージ化、および実行する。これと似ているがわずかに異なるもう1つのバージョンは、Low-Code-as-a-Service(LCaaS)である。コーディングがほとんど必要ないため、これらのプラットフォームは、技術者でないユーザーでもアプリケーションを作成できるように設計されている。これは、今後数年間で驚異的な成長が見られ、ソフトウェア開発者の大幅な増加をもたらす。AppSheet、AWSHoneycodeがある。Serverless(サーバレス)サーバレスプラットフォームを使用すると、開発者は開発と配備をより迅速に行うことができ、コンテナクラスタや仮想マシンなどのインフラストラクチャを管理しなくてもクラウドネイティブサービスに簡単に移行できる。FaaSおよびNCaaSプラットフォームはサーバレスとして扱われる。次の図は、アプリケーションの所有者がサービスに使用するクラウドプラットフォームを決定する際にその方法の概要を示している。まとめまとめると、アプリケーションの将来の展望は非常に多様で、高度にハイブリッドでマルチクラウドである。エンタープライズクラウドコンピューティングプラットフォームには、サーバレスアプリやサーバアプリ、オンプレミス、クラウドなど、さまざまなインフラストラクチャ、サービスレイヤー、APIが含まれる。「ワンサイズですべてに対応」するモデルや経験則はない。真のクラウド方式においては、組織の変化に応じて進化するスケーラブルでセキュアな環境をサポートするための機敏で弾力的な決定が必要である。