Functions、Serverless、Kubernetesなど、初めてコンテナ化されたアプリケーションを構築しようとすると、これらのツールやその基礎となる概念が曖昧になることがあります。この記事では、スケーラブルなクラウドネイティブアプリケーションを構築するために不可欠なこれらのトピックを解明していきます。
Kubernetesとは?
Kubernetesは、コンテナとその上で動作するノードのライフサイクルを管理するために使用されるコンテナオーケストレーションです。
ブレイクダウンです:
- 一般的に、コンテナは、追加のライブラリについて基礎となるOSに依存しない、その依存関係とともにパッケージ化されたアプリケーションのことです。
- コンテナは、ノード上で動作するポッドにまとめられます。
- ノードはコンピュート単位であり、多くの場合Linuxを実行するVMです(ただし技術的には、Podやコンテナ群を実行するクラスタのあらゆる仮想または物理サーバを指します)。
Kubernetesはノードの作成をオーケストレーションし、開発者が定義した基準に基づいてコンテナやポッドをノードにデプロイ、破壊、移動させます。
Kubernetesは、スケールと高可用性を実現するコンテナ型アプリケーションの構築と自動化に不可欠です。Kubernetesを初めて利用される方には、入門に役立つ教育コンテンツを多数ご用意しています。
Kubernetesは、サーバーレス機能やFaaSとは大きく異なりますが、これらのアーキテクチャを実現するバックエンドの電源としてよく使われます。
サーバーレスとは?
サーバーレスとは、開発者がサーバーなどのクラウドインフラ を管理することなく、コンテナによるコードの出荷に専念できる開発モデルです。クラウドプロバイダーは、サーバー/OSレベルから下をすべて管理する責任を持ち、開発者がコードを書き、デプロイするための高度に合理的な環境を提供します。
![サーバーレスアーキテクチャ図](https://www.linode.com/wp-content/uploads/2023/04/Most_vs_Least_User_Responsibilities_Diagram-1064x713.png)
プロバイダーによって用語は異なるかもしれませんが、サーバーレスアーキテクチャは、サーバーレベルからのすべての責任を開発者からクラウドプロバイダーにシフトします。
関数とは?
マイクロサービスと呼ばれるアプリケーションのモジュール化されたコンポーネントを構築することで、開発者は頻繁に使用される機能に対してコードの「塊」を分割することができます。これらの塊は関数と呼ばれ、イベントによってトリガーされたときに実行されます。
イベントや一連のイベントをトリガーするユーザーの活動は、すべて関数として展開することができます。例えば、ユーザーがウェブサイトにサインアップすると、データベースの変更がトリガーされ、その結果、ウェルカムメールがトリガーされるかもしれません。サーバーレス関数のチェーンが、バックエンドの作業を処理することができます。
![サーバーレス関数の連鎖](https://www.linode.com/wp-content/uploads/2023/04/Microservice_Functions_Diagram-1064x495.png)
Functions as a Service(FaaS)とは?
今日の業界では、「as a Service」という呼称が、ほとんどすべてのものに使われています。一般的に言えば なにごともインフラ as a Serviceとは、クラウドプロバイダーがバックエンドのすべてを処理することで、機能への合理的なアクセスを提供することを意味します。FaaSを利用することで、開発者は、インフラ 、維持する必要のない機能を構築し、実行することができます。FaaSは通常、実行時間で課金されます。つまり、コードのスライスが実行されている間だけ課金されます。これは、24時間365日サーバーを稼働させるのと比べて、非常に費用対効果が高いということになります。
FaaSプラットフォームは、Kubernetesのような特定のインフラ テクノロジーの上に機能を構築したり、コードを書かずに機能を作成しアプリケーションに接続するためのGUIを提供することによって、機能の導入と管理を容易にします。(ローコードアプリケーションや「ノーコード」アプリケーションについてはこちらをご覧ください)
コミュニティから投稿された関数は、アプリケーションのパフォーマンスを最適化するためのロジックを簡単に見つけ、実装することができます。FaaSは、多くのクラウドプロバイダーが提供している人気の製品で、ユーザーは機能とアプリケーションインフラ を一元的に管理することができます。
アカマイでの機能にご興味がおありですか?
現在、アプリケーション開発の一環としていずれかのプロバイダーの関数を使用している場合は、ぜひご連絡ください。アカマイのクラウド・コンピューティング・サービスでは、クラウドプラットフォームへのファンクションの追加を検討しています。アンケートにご協力いただき、お客様のご要望をお聞かせください。また、ご登録いただくと、ファンクションサービスのベータ版が利用可能になった際にご連絡を差し上げます。
コメント