Googleは、分散アプリケーションを構築、デプロイ(展開)するためのオープンソースフレームワーク「Service Weaver」を発表した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Googleは2023年3月1日(米国時間)、分散アプリケーションを構築、デプロイ(展開)するためのオープンソースフレームワーク「Service Weaver」を発表した。
Service Weaverでは、アプリケーションをモジュラーモノリスとして記述し、一連のマイクロサービスとしてデプロイできる。
Service Weaverは、以下の2つの主要要素で構成されている。
これにより、ネイティブのデータ構造とメソッド呼び出しだけを用いて、アプリケーションを単一のモジュラーバイナリとして記述できる。
これにより、アプリケーションのランタイムトポロジーを構成し、アプリケーションを一連のマイクロサービスとして、ローカルまたは選択したクラウドにデプロイできる。
Service Weaverは、アプリケーションの作成プロセスを、実行時の考慮事項を気にせず進められるようにすることで、分散アプリケーション開発の速度やパフォーマンスを高めることを目的としている。これらの考慮事項には、「アプリケーションをどのようにマイクロサービスに分割するか」「どんなデータシリアライズ形式を使うか」「サービスがどのように発見されるようにするか」などが含まれる。
Googleは、Service Weaverによる分散アプリケーションの構築、デプロイ、実行の流れを、Go言語を使う場合を例として、次のように説明している。
アプリケーションを、通常のGoインタフェースとして作成したコンポーネントに分割する。ネットワーキングやシリアライズのコードに煩わされることなく、ビジネスロジックに集中できる。
Goの通常のメソッド呼び出しでコンポーネントを呼び出す。RPC(リモートプロシージャコール)やHTTPリクエストは必要なく、バージョニングの問題を考えずに済む。型システムにより、コンポーネントの互換性が保証される。
アプリをローカルでテストし、クラウドにデプロイする。コードの実行場所を気にすることなく、コードが何を行うかを考えることができる。
同じプロセス内、または異なるマシン上の好きな場所でコンポーネントを実行する。任意の数のレプリカを実行し、負荷に応じてスケールアップ、スケールダウンできる。
Googleは、Service Weaverの特徴を以下のように紹介している。
同じ場所にあるコンポーネントは、直接メソッド呼び出しで通信する。リモートコンポーネントは、効率の高いカスタムシリアライズおよびRPCプロトコルを使って通信する。
多くの定型的な構成を施すことなく、クラウドにデプロイできる。Service WeaverアプリケーションをGoogle Cloudの2つのリージョンにデプロイするための構成ファイルを以下に示す。10行に満たない長さだ。
Service Weaverには、ロギング、メトリクス(指標)、トレース用のライブラリがある。このテレメトリーは、デプロイ先のクラウドに自動的に統合される。
異なるコンポーネントレプリカ間でリクエストをシャーディングする。
Service Weaver v0.1には以下のものが含まれている。
これらは、Service Weaver v1.0のリリースまでに、破壊的な変更が加えられる可能性がある。
Copyright © ITmedia, Inc. All Rights Reserved.