第11章. ヘビー級フレームワークのマイクロサービス
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章と次の章では、イベント駆動型処理で最もよく使われる、フル機能のフレームワークを取り上げる。しばしばストリーミングフレームワークと呼ばれるこれらのフレームワークは、データのストリームを扱うためのメカニズムやAPIを提供し、イベントブローカーへのイベントのコンシューマやプロデューサのために使われることが多い。これらのフレームワークは、この章で取り上げるヘビーウェイトフレームワークと、次の章で取り上げるライトウェイトフレームワークに大別できる。これらの章はテクノロジーを比較するためのものではなく、これらのフレームワークがどのように機能するかについて一般化された概要を提供するためのものである。しかし、いくつかのセクションでは、特にマイクロサービスのような方法でアプリケーションを実装することに関連して、フレームワーク固有の機能を検証している。ヘビー級のフレームワークを評価する目的で、この章では、Apache Spark、Apache Flink、Apache Storm、Apache Heron、Apache Beamモデルの側面を、一般的に提供される種類の技術と演算子の例として取り上げる。
ヘビーウェイト・ストリーミング・フレームワークの定義の1つは、その演算子を実行するために、独立した処理リソースのクラスタを必要とすることである。このクラスタは通常、共有可能なワーカーノードと、作業をスケジューリングして調整するマスターノードで構成される。さらに、主要なApacheソリューションは、高可用性サポートを提供し、クラスタリーダーの選挙を調整するために、別のクラスタ化サービスであるApache ZooKeeperに伝統的に依存している。ZooKeeperは、ヘビー級のクラスタを本番環境に導入するために絶対に必要というわけではないが、独自のクラスタを作成する際には、ZooKeeperが必要かどうかを慎重に評価する必要がある。
2つ目の定義は、ヘビー級フレームワークは、障害処理、リカバリ、リソース割り当て、タスク分散、データ保存、通信、処理インスタンスとタスク間の調整などに、独自の内部メカニズムを使用していることだ。これは、これらの関数をコンテナ・マネージメント・システム(CMS)とイベント・ブローカーに大きく依存している軽量フレームワーク、FaaS、BPC実装とは対照的である。
この2つの特徴が、これらのフレームワークが "ヘビー級 "と呼ばれる主な理由だ。イベントブローカーやCMSとは別に、クラスタ化されたフレームワークを管理・維持しなければならないのは、並大抵のことではない。
チップ
ヘビー級のフレームワークの中には、軽量版のような実行モードに向かっているものもある。これらの軽量モードは、他のマイクロサービス実装を操作するために使用されるCMSとうまく統合する。
ヘビー級フレームワークが、CMSやイベント・ブローカーがすでに処理している多くのことを行っていることにお気づきだろうか。CMSはシステムのリソース割り当て、障害、リカバリ、スケーリングを管理し、イベントブローカーは単一のマイクロサービスのインスタンス間のイベントベースの通信を提供することができる。ヘビーウェイト・フレームワークは、CMSとイベント・ブローカーのこれらの機能を統合した単一のソリューションである。次の軽量フレームワークの章で、このトピックをもう少し掘り下げてみよう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access