BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AllegroがHermes 1.0をローンチ、Kafkaを基盤とするRESTベースのメッセージブローカ

AllegroがHermes 1.0をローンチ、Kafkaを基盤とするRESTベースのメッセージブローカ

原文(投稿日:2019/05/20)へのリンク

AllegroがHermesのバージョン1.0を発表した。Apache Kafka上に構築された、Rest APIベースのメッセージブローカだ。新機能は含まれないが、この最初のメジャーバージョンリリースは、現在の安定版コードベースを基盤としている。

Hermesでは、従来のメッセージブローカと同じpub-subアーキテクチャを採用する。現在の実装がKafka上の抽象化層であることから、HTTP駆動になっている。マルチDCサポートやトラッキング機構、JSONからAvroへの変換、Hermesコンソールと呼ばれるGUIなど、Kafkaにはない追加機能も提供している。

同社の技術リーダであるŁukasz Drumiński氏は、中心的なユースケースについて、次のように述べている。

Hermesは、HTTPを主な通信プロトコルとするマイクロサービスアーキテクチャに最適です。

メッセージの生成と消費はHTTP要求の送受信によって動作するため、これが特に顕著なのはインテグレーションの観点からだ、とDrumiński氏はさらに詳しく説明する。つまり、新たなプロトコルをスタックに導入する必要がなく、開発者に馴染みのある部分を維持すると同時に、共有的な依存関係を回避できる、ということだ。

20を越えるサービスが存在する環境では、コードの共有、メンテナンス、アップデートのフォローが問題になります。私たちはAllegroで、その対策を見つけました。ビジネスサービスでは、可能な限り依存関係を排除することが望ましいのですが、同じことがメッセージブローカにも当てはまります。多数のチームによって開発された20以上のサービスが存在する環境であれば、Hermesを導入する価値は十分にあります。

導入時の障壁の低さ、ビジネスサービスにおける非侵襲的な依存関係に加えて、その他にも数多くのメリットがある、と説明するDrumiński氏は、次のような点を強調している。

  • 信頼性: 障害時にもメッセージを失うことはない。
  • パフォーマンス: Kafkaをネイティブに使用することから、オーバーヘッドは数ミリ秒であると期待される。
  • メトリクス: メッセージのレートやレイテンシ、スループット、成功と失敗を簡単に監視できる。
  • 追跡: メッセージIDを使用することで、システム内の追跡が容易に可能である。
  • 高可用性: Hermesは複数データセンタをサポートするので、ひとつに障害が発生した場合でも、システムは機能を維持できる。

Hermesにはさらに、Hermesコンソールが付属している。これは、Hermesを監視、管理するためのユーザインターフェースを提供するWebアプリケーションで、トピックとサブスクリプションの設定、過去に戻ってメッセージの順次再生、サブスクリプションの定義、さまざまなメトリクスの確認などが可能である。

さらにDrumiński氏は、HermesのメッセージストアとしてKafkaを選択した理由についても詳しく説明している。

今日のマーケットにはさまざまなメッセージブローカが存在し、選択も自由です。それは分かっています。程度の差はありますが、いずれも成熟しています。それでも私たちがKafkaに拘るのは、私たちに必要な機能を提供してくれる、信頼できるソフトウェアであることを、当社のBigDataエコシステムを通じて知っているからです。

Hermesの今後のロードマップは、次のようになっている。

  • Kubernetesなどの動的環境をサポートし、Hermesの自動スケールを可能にする。
  • HermesとKafka間のTLS化。
  • 単一のマルチDC Zookeeperクラスタではなく、DC毎にひとつのZookeeperクラスタをサポート。

Hermesはオープンソースで、自由に使用することができる。さまざまなコントリビュータがこのプロジェクトに参加している。ソースコードはGitHubで入手可能で、入門(getting started)ガイドも用意されている。
 

この記事に星をつける

おすすめ度
スタイル

BT