Google、モノリスとマイクロサービスのいいとこ取りをする「Service Weaver」フレームワークをオープンソースで公開
米Googleが分散アプリケーションの開発とデプロイを容易にするフレームワーク「Service Weaver」をオープンソースで公開。まずはバージョン0.1としての公開で、今後、破壊的な変更を含む機能変更や追加などの可能性があるという。
この記事は新野淳一氏のブログ「Publickey」に掲載された「Google、モノリスとマイクロサービスのいいとこ取りをする「Service Weaver」フレームワークをオープンソースで公開」(2023年3月7日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
米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や、それ以外のクラウドに対しては、マイクロサービスアプリケーションとしてデプロイすることも可能なわけです。
Service Weaverは現時点でまだバージョン0.1であり、Go言語のコアライブラリ、ローカルとGoogle Kubernetes Engineへデプロイし実行するためのツール、そしてデプロイツールのためのAPI群などが揃っている状態。今後、破壊的な変更を含む機能変更や追加などの可能性があるとのことです。
関連記事
- 任天堂、Switch向け汎用ゲームサーバにGoogle Cloud採用 すでに複数タイトルで活用
任天堂がNintendo Switch用ゲーム向け汎用サーバに「Google Cloud」を採用。すでに複数のオンラインマルチプレイ対応タイトルで活用しているという。 - ヨドバシの“中の人”が初めて語る 「ヨドバシ.com」を支える内製プライベートクラウドの中身
ヨドバシカメラが運営するECサイト「ヨドバシ.com」は、同社が内製するプライベートクラウドによって支えられている。このプライベートクラウドが有する機能や開発の経緯などをキーパーソンが語る - ITエンジニアが選ぶ、おすすめビジネス書・技術書ベスト10 翔泳社が発表
翔泳社は、ITエンジニアおすすめのビジネス書と技術書、各10冊を発表した。特に投票数の多かった3冊については、2月17日に開催するプレゼン大会で大賞を選ぶ予定。 - Microsoft、フルマネージドな負荷テストサービス「Azure Load Testing」を正式リリース
米Microsoftが、クラウド上で大規模な負荷テストを行えるフルマネージドな負荷テストサービス「Azure Load Testing」を正式リリースした。 - IDEにChatGPTを統合 「この関数のテストコードはどこ?」「○○を実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場
ChatGPTを「Visual Studio Code」などのIDEに統合し、開発中のコードについて「この関数のテストコードはどこ?」などと対話できる「qqbot」が登場。トライアルの申し込みを受け付けている。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.