マイクロサービスは、互いに独立して実行されるアプリケーションの小さなセグメントであり、さまざまな方法でリリースできます。サーバーレスマイクロサービスは、サーバーレスアーキテクチャ内にリリースされます。
この記事を読み終えると、以下のことができるようになります。
記事のリンクをコピーする
アプリケーションを取得し、細かく切り刻んで、1つのモノリシックな全体としてではなく、小さな部分のコレクションとして実行することを想像してください。それが基本的にマイクロサービスアーキテクチャです。アプリケーションの各部分は「マイクロサービス」と呼ばれ、1つのサービスのみを実行し、アプリケーションの他の部分から独立して実行し、独自の環境で動作し、独自のデータを保存します。名前にもかかわらず、マイクロサービスは小さくする必要はありません。それらを「マイクロ」にするのは、1つのサービスのみを処理し、より大きなアプリケーションの一部であるということです。
マイクロサービスで構成されたアプリケーションは、アメリカンフットボールチームのようなものと考えてください。各プレーヤーは明確な役割を果たしますが、プレーヤーは一緒になって目標を達成するチーム(アプリケーション全体)を形成します。または、マイクロサービスを人体のさまざまなシステム(循環、呼吸など)として考え、アプリケーションを全身として考えてください。
ユーザーの観点から見ると、マイクロサービスを使用して構築されたアプリケーションは単一のインターフェイスを備えており、1つのスタックとして設計されたアプリケーションとまったく同じように動作するはずです。ただし、舞台裏では、それぞれのマイクロサービスに独自のデータベースがあり、他のアプリケーションとは別に実行されます。さらに、同じアプリケーション内のマイクロサービスを異なる言語で記述し、異なるライブラリを使用できます。
マイクロサービスは、モノリシックアーキテクチャとは対照的です。モノリシックアーキテクチャは、アプリケーションを構築する古典的な方法です。モノリシックアプリケーションは単一のスタックで、上部にユーザーインターフェイス、中央にビジネスロジック、下部にデータベースがあります。通常、モノリシックアプリケーションは特定のサーバーまたはサーバーのセットでホストされます。この方法でアプリケーションを構築する場合の欠点の1つは、アプリケーションに小さな変更を加えると、スタック全体を更新する必要があることです。もう一つの欠点は、アプリケーションの一部が壊れると、アプリケーション全体が失敗する可能性があることです。
マイクロサービスはさまざまな方法でリリースできます。PaaS を使用して開発されたサーバーレスアーキテクチャの一部であるか、コンテナでホストされるか、理論的にはローカルでホストされるアプリケーションの構築に使用できます。ただし、マイクロサービスからアプリケーションを構築する利点は、コンテナまたはサーバーレスアーキテクチャを使用して、アプリケーションがクラウドでホストされている場合に最も顕著になります。
サーバーレスマイクロサービスは、サーバーレスベンダーのインフラストラクチャ内にリリースされ、アプリケーションで必要な場合にのみ実行されます。マイクロサービスのサイズによっては、さらに小さな機能に分割されることもあります。サーバーレスコンピューティングの仕組みについての詳細は、サーバーレスコンピューティングとは?をご覧ください。
この区別はまだ技術コミュニティによって定義されていますが、通常、マイクロサービスはより大きく、関数以上のことができます。関数は、イベントに応じて1つのアクションのみを実行する比較的小さなコードです。開発者がアプリケーションをどのように分割したかに応じて、マイクロサービスは関数と同等(1つのアクションのみを実行することを意味する)になるか、複数の関数で構成される場合があります。
フットボールに例えるとして、クォーターバックのすべての義務を考慮してみてください。パスを投げたり、ランニングバックにボールを渡したりします。クォーターバックがチームのコンテキスト内のマイクロサービスのようなものである場合(「クォーターバッキング」のサービスを提供する場合)、これらの小さなアクティビティはそれぞれ関数です。ただし、キッカーのように、1つのアクションのみを実行するフットボールチームの特定のプレーヤーがいるように、マイクロサービスと機能の間の境界線は時々ぼやけることがあります。
Cloudflare Workersは、Cloudflareエッジネットワーク内でホストされ、HTTPリクエストに応じて実行されるJavaScriptコードです。Workersは関数のように振る舞いますが、マイクロサービスとしても機能する柔軟性を提供します。 Cloudflareは、開発者が構築およびリリースできるWorkersのサイズやタイプを制限しません。