サーバーレスマイクロサービスとは?|サーバーレスマイクロサービスの説明

マイクロサービスは、互いに独立して実行されるアプリケーションの小さなセグメントであり、さまざまな方法でリリースできます。サーバーレスマイクロサービスは、サーバーレスアーキテクチャ内にリリースされます。

Share facebook icon linkedin icon twitter icon email icon

サーバーレスマイクロサービス

学習目的

この記事を読み終えると、以下のことができます。

  • サーバーレスマイクロサービスを定義
  • サーバーレスマイクロサービスの仕組みを理解
  • マイクロサービス、コンテナ、機能を区別

マイクロサービスとは?

アプリケーションを取得し、細かく切り刻んで、1つのモノリシックな全体としてではなく、小さな部分のコレクションとして実行することを想像してください。それが基本的にマイクロサービスアーキテクチャです。アプリケーションの各部分は「マイクロサービス」と呼ばれ、1つのサービスのみを実行し、アプリケーションの他の部分から独立して実行し、独自の環境で動作し、独自のデータを保存します。名前にもかかわらず、マイクロサービスは小さくする必要はありません。それらを「マイクロ」にするのは、1つのサービスのみを処理し、より大きなアプリケーションの一部であるということです。

マイクロサービスで構成されたアプリケーションは、アメリカンフットボールチームのようなものと考えてください。各プレーヤーは明確な役割を果たしますが、プレーヤーは一緒になって目標を達成するチーム(アプリケーション全体)を形成します。または、マイクロサービスを人体のさまざまなシステム(循環、呼吸など)として考え、アプリケーションを全身として考えてください。

ユーザーの観点から見ると、マイクロサービスを使用して構築されたアプリケーションは単一のインターフェイスを備えており、1つのスタックとして設計されたアプリケーションとまったく同じように動作するはずです。ただし、舞台裏では、それぞれのマイクロサービスに独自のデータベースがあり、他のアプリケーションとは別に実行されます。さらに、同じアプリケーション内のマイクロサービスを異なる言語で記述し、異なるライブラリを使用できます。

Monolithic architecture vs. microservices architecture

マイクロサービスは、モノリシックアーキテクチャとは対照的です。モノリシックアーキテクチャは、アプリケーションを構築する古典的な方法です。モノリシックアプリケーションは単一のスタックで、上部にユーザーインターフェイス、中央にビジネスロジック、下部にデータベースがあります。通常、モノリシックアプリケーションは特定のサーバーまたはサーバーのセットでホストされます。この方法でアプリケーションを構築する場合の欠点の1つは、アプリケーションに小さな変更を加えると、スタック全体を更新する必要があることです。もう一つの欠点は、アプリケーションの一部が壊れると、アプリケーション全体が失敗する可能性があることです。

マイクロサービスの利点

  • 回復力: アプリケーションが分割されているため、アプリケーションの一部が壊れたりクラッシュしたりしても、アプリケーションの残りの部分に必ずしも影響するわけではありません
  • 選択的スケーラビリティ: アプリケーション全体をスケーリングする代わりに、大量の使用量を受け取るマイクロサービスのみをスケーリングできます
  • 機能の追加または更新が簡単: アプリケーションスタック全体を更新する代わりに、機能を一度に1つずつ展開または更新できます
  • 開発者のための柔軟性: マイクロサービスは異なる言語で記述でき、それぞれに独自のライブラリがあります

マイクロサービスはサーバーレスアーキテクチャの一部にできますか?

マイクロサービスはさまざまな方法でリリースできます。 PaaS を使用して開発されたサーバーレスアーキテクチャの一部であるか、コンテナでホストされるか、理論的にはローカルでホストされるアプリケーションの構築に使用できます。ただし、マイクロサービスからアプリケーションを構築する利点は、 コンテナまたはサーバーレスアーキテクチャを使用して、アプリケーションがクラウドでホストされている場合に最も顕著になります。

サーバーレスマイクロサービスとは?サーバーレスマイクロサービスアーキテクチャの仕組みとは?

サーバーレスマイクロサービスは、サーバーレスベンダーのインフラストラクチャ内にリリースされ、アプリケーションで必要な場合にのみ実行されます。マイクロサービスのサイズによっては、さらに小さな機能分割されることもあります。サーバーレスコンピューティングの仕組みについての詳細は、 サーバーレスコンピューティングとはをご覧ください。

マイクロサービスとサーバーレス関数の違いは何ですか?

この区別はまだ技術コミュニティによって定義されていますが、通常、マイクロサービスはより大きく、関数以上のことができます。関数は、イベントに応じて1つのアクションのみを実行する比較的小さなコードです。開発者がアプリケーションをどのように分割したかに応じて、マイクロサービスは関数と同等(1つのアクションのみを実行することを意味する)になるか、複数の関数で構成される場合があります。

フットボールに例えるとして、クォーターバックのすべての義務を考慮してみてください。パスを投げたり、ランニングバックにボールを渡したりします。クォーターバックがチームのコンテキスト内のマイクロサービスのようなものである場合(「クォーターバッキング」のサービスを提供する場合)、これらの小さなアクティビティはそれぞれ関数です。ただし、キッカーのように、1つのアクションのみを実行するフットボールチームの特定のプレーヤーがいるように、マイクロサービスと機能の間の境界線は時々ぼやけることがあります。

Cloudflare Workersはマイクロサービスですか?

Cloudflare Workersは、Cloudflareエッジネットワーク内でホストされ、HTTPリクエストに応じて実行されるJavaScriptコードです。Workersは関数のように振る舞いますが、マイクロサービスとしても機能する柔軟性を提供します。 Cloudflareは、開発者が構築およびリリースできるWorkersのサイズやタイプを制限しません。