Google、モノリスとマイクロサービスのいいとこ取りをする「Service Weaver」フレームワークをオープンソースで公開

2023年3月7日

Googleは分散アプリケーションの開発とデプロイを容易にするフレームワーク「Service Weaver」をオープンソースで公開しました。

マイクロサービスとモノリシック、それぞれの利点

分散アプリケーションの代表例となっているマイクロサービスは、複数のサービスの連係によってアプリケーションを構成します。スケーラブルで可用性が高く、アプリケーションを構成するサービスごとにアップデートや機能追加などが容易なため、大規模なアプリケーションの開発に向いている、などの利点があります。

一方で、アプリケーションを構成する複数のサービスごとに発生する多数のバイナリの管理、ネットワーク上での相互接続のためのコンフィグレーションの作成、相互にデータ連係するためのデータフォーマットやシリアライゼーションの管理、そしてデプロイの手間の多さや複雑さなどによるデプロイの遅さなど、さまざまな課題があるとGoogleは指摘しています。

特に、複数のバイナリに渡る機能変更を管理することは難しく、いちど決めたデータフォーマットやAPIの改善も困難であるとされます。

マイクロサービスとは対照的に、シングルバイナリで構成されるモノリシックなアプリケーションにはこうした課題はほとんどなく、機能追加や変更は容易で、デプロイもバイナリを置くだけとスピーディです。

アップデートもソースコードを書き換えてビルドし、バイナリを置き換えるだけ、といったシンプルさです。

Googleがオープンソースとして公開したService Weaverはこの、モノリシックなアプリケーションのシンプルな開発体験で作られたアプリケーションを、デプロイ時にはマイクロサービスとして自動的に分散してデプロイしてくれるという、2つのいいとこ取りをすることを目指したフレームワークです。

モノリスとして作り、自動的にマイクロサービスとしてデプロイ

Service Weaverを用いたアプリケーション開発では、単なるモノリシックなアプリケーションではなく「Modular monolith」(モジュラーモノリス)なアーキテクチャスタイルでアプリケーションを開発します。

モジュラーモノリスとは、その内部を適切に分割したモジュール構造を備えているモノリシックなアプリケーションです。

これにより、モノリシックなアプリケーションの利点であるシンプルな開発や機能追加や変更、シンプルでスピーディなデプロイといった特性を備えつつ、後からモジュールごとに分割することが容易になります。

Service Weaverは、モジュラーモノリスなアプリケーションを開発するためのライブラリ を備えており、このライブラリを用いてアプリケーションを開発します。

さらにService Weaverはデプロイツールも備えています。

Service Weaverのライブラリを用いて開発されたモジュラーモノリスなアプリケーションは、例えばデスクトップPC上ではそのまま簡単に実行できます。

そして、Google CloudのKubernetesサービスであるGoogle Kubernetes Engineや、それ以外のクラウドに対しては、マイクロサービスアプリケーションとしてデプロイすることも可能なわけです。

fig

Service Weaverは現時点でまだバージョン0.1であり、Go言語のコアライブラリ、ローカルとGoogle Kubernetes Engineへデプロイし実行するためのツール、そしてデプロイツールのためのAPI群などが揃っている状態。今後、破壊的な変更を含む機能変更や追加などの可能性があるとのことです。

あわせて読みたい

Google Cloud Kubernetes クラウド クラウドネイティブ コンテナ型仮想化 Go Google Microservices




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本