第11章. 生産に関する考察
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ピザ屋のアプリケーションはマシン上で動いているが、自分たちしか使えないので、そこで動かしていても意味がない。この章では、リアルタイム分析アプリケーションをローカルマシンから本番環境に移行する際に注意すべき点を説明する。
本番環境に移行する際には、パフォーマンス、信頼性、コストを最適化することになる。 この章は最もエキサイティングな章ではないが、ここに含まれる情報が、本番環境でアプリケーションを実行する際に役立つことを願っている。
本題に入る前に、図11-1に示すようなリアルタイム分析システムのハイレベル設計を思い出してみよう。
図11-1. リアルタイム分析スタック
プリプロダクション
本番に入る前に、キャパシティプランニングやデプロイプラットフォームの選択など、本番アーキテクチャを設計する必要がある。
キャパシティ・プランニング
キャパシティプランニングとは、必要なリソースの量を決定するプロセスのことで、 、主にコンピューティングパワーとストレージの面で行われる。これは1回限りの作業ではなく、定期的なモニタリングと、変化する需要や要件に適応するための調整を必要とする継続的なプロセスである。
運用子やビジネスユーザーを含む様々な利害関係者と協力し、彼らのニーズや目標を理解する必要があるだろう。図11-2は、キャパシティプランニングのサイクルを示している。
図11-2. キャパシティプランニングのワークフロー
アプリケーションの現在と将来のニーズを予測し、必要なリソースを割り出す必要がある。 これは重要な作業であり、アーキテクチャが予想される負荷に対応できることを保証し、将来の成長を可能にする。
パーティション分割の戦略、予想されるスループット、データ保持ポリシー、合計データサイズ、そしてシステムのさまざまな部分で必要となるデータの粒度などを検討する必要がある。まずはデータのパーティション分割から始めよう。 。
データのパーティション分割
ストリーミング データプラットフォームのトピック に保存されているデータは、パーティションに分割されている。 したがって、個々のトピックには、そのトピックのデータのほんの一部しか含まれていない。 トピックは論理的概念であるが、パーティションは、トピックが所有するレコードのサブセットを保持する最小のストレージ単位である。 各パーティションは単一のログファイルであり、レコードは追記方式で書き込まれる。
使用するパーティションの数を決めることは、初期段階での重要な決定事項だ。 ローカルで開発する場合、おそらくパーティションは1つで済むだろう。なぜなら、システムが適切に使用されるようになった後のスループット要件よりも、はるかに小さいスループット要件を扱っているからだ。
パーティション分割は、ストリーミング・データ・プラットフォームがスケーラビリティを実現する方法である。 ...