従来、ソフトウェア開発チームはサーバー、ネットワーキング、ストレージなど、多様なシステムを管理しなければなりませんでした。
そして、それぞれのシステムにはCPU使用率、負荷分散、帯域消費、ネットワーク遅延など、管理すべき複雑な技術指標が存在します。Bubbleのワークロード機能は、こうした複雑な管理をシンプルにし、アプリの動作に必要なサーバーリソースを「ワークロードユニット」という単一の指標で一元管理します。
ワークロードユニットは、Bubbleアプリが月ごとに消費するサーバーリソースの量を計測する方法です。アプリで行われる様々なアクティビティの種類を基に、
消費されるワークロードを合計し、月初にリセットされます。このアプローチにより、アプリの実際の消費量に応じてスケールさせることが可能になります。
例えば、データベース検索を実行する場合、初期コストは0.3ワークロードユニット、データベースからアイテムを削除するコストは0.1ワークロードユニットです。具体的なアクティビティとそのコストについては、マニュアルに詳しく記載されています。
Bubbleにおけるワークロードの対象となるのは、主にサーバー側で処理が必要な操作です。具体的には、以下のようなアクティビティがワークロードの対象となります:
これらのアクティビティにより、Bubbleのワークロードはサーバーリソースの消費量を測定し、適切なスケーリングとコスト管理をサポートします。
ワークロードの計算において重要な点は、ワークロードがサーバーでの処理に関連しているということです。クライアントサイド、
つまりユーザーのデバイスで行われる操作は、サーバーが関与しない限りワークロードにカウントされません。
例えば、テキストや数値を含むカスタムステートの設定はユーザーのデバイスで保存されるため、サーバーのリソースを消費せず、ワークロードに含まれません。
しかし、データベースからカスタムデータタイプを取得する必要がある場合、その検索操作にはワークロードが発生します。これは、クライアントサイドのアクションがサーバーの関与を必要とするためです。
例えば、チームメンバーを選択してデータベースに保存するチェックリスト機能を備えた繰り返しグループを考えてみましょう。このリストを表示するにはデータをサーバーから取得する必要があり、
そのためワークロードコストが発生します。一方、チェックリストの選択自体はカスタムステートリストを使用しており、データベースの問い合わせを伴わないためクライアントサイドの操作としてワークロードコストは発生しません。
ワークロードを理解することは、効率的なアプリ開発にとって非常に重要です。全ての操作の細かい計算をする必要はありませんが、ワークロードの全体像を理解することで、最適な構築方法を見つける手助けになります。サーバーサイドとクライアントサイドの違いを把握し、どの操作がワークロードに影響を与えるかを知ることで、効率的な開発とコストの最適化が可能になります。
詳しい情報は、Bubbleの公式マニュアルで確認できますので、ぜひご参照ください。
https://www.youtube.com/watch?v=Y7ffz8FKCic