Bubbleのワークロードとは何か? vo1

techfather.com
October 14, 2024

参考動画

ソフトウェア開発の従来の課題

従来、ソフトウェア開発チームはサーバー、ネットワーキング、ストレージなど、多様なシステムを管理しなければなりませんでした。

そして、それぞれのシステムにはCPU使用率、負荷分散、帯域消費、ネットワーク遅延など、管理すべき複雑な技術指標が存在します。Bubbleのワークロード機能は、こうした複雑な管理をシンプルにし、アプリの動作に必要なサーバーリソースを「ワークロードユニット」という単一の指標で一元管理します。

ワークロードユニットの仕組み

ワークロードユニットは、Bubbleアプリが月ごとに消費するサーバーリソースの量を計測する方法です。アプリで行われる様々なアクティビティの種類を基に、

消費されるワークロードを合計し、月初にリセットされます。このアプローチにより、アプリの実際の消費量に応じてスケールさせることが可能になります。

例えば、データベース検索を実行する場合、初期コストは0.3ワークロードユニット、データベースからアイテムを削除するコストは0.1ワークロードユニットです。具体的なアクティビティとそのコストについては、マニュアルに詳しく記載されています。

ワークロードの対象となるアクティビティ

Bubbleにおけるワークロードの対象となるのは、主にサーバー側で処理が必要な操作です。具体的には、以下のようなアクティビティがワークロードの対象となります:

  • データベース操作: データの検索、作成、更新、削除といったデータベースに対する操作は全てワークロードにカウントされます。
  • APIコール: 外部サービスとの連携のためにAPIを呼び出す際にも、サーバーのリソースが使われるためワークロードが発生します。
  • スケジューラーやバックエンドワークフローの実行: スケジュールされたタスクやバックエンドで実行されるワークフローは、サーバー側での処理が必要となり、その分ワークロードに含まれます。
  • ファイルのアップロードやダウンロード: サーバーを介して行われるファイル操作もワークロードの一部となります。

これらのアクティビティにより、Bubbleのワークロードはサーバーリソースの消費量を測定し、適切なスケーリングとコスト管理をサポートします。

クライアントサイド vs サーバーサイド

ワークロードの計算において重要な点は、ワークロードがサーバーでの処理に関連しているということです。クライアントサイド、

つまりユーザーのデバイスで行われる操作は、サーバーが関与しない限りワークロードにカウントされません。

例えば、テキストや数値を含むカスタムステートの設定はユーザーのデバイスで保存されるため、サーバーのリソースを消費せず、ワークロードに含まれません。

しかし、データベースからカスタムデータタイプを取得する必要がある場合、その検索操作にはワークロードが発生します。これは、クライアントサイドのアクションがサーバーの関与を必要とするためです。

実際の例

例えば、チームメンバーを選択してデータベースに保存するチェックリスト機能を備えた繰り返しグループを考えてみましょう。このリストを表示するにはデータをサーバーから取得する必要があり、

そのためワークロードコストが発生します。一方、チェックリストの選択自体はカスタムステートリストを使用しており、データベースの問い合わせを伴わないためクライアントサイドの操作としてワークロードコストは発生しません。

ワークロードの最適化

ワークロードを理解することは、効率的なアプリ開発にとって非常に重要です。全ての操作の細かい計算をする必要はありませんが、ワークロードの全体像を理解することで、最適な構築方法を見つける手助けになります。サーバーサイドとクライアントサイドの違いを把握し、どの操作がワークロードに影響を与えるかを知ることで、効率的な開発とコストの最適化が可能になります。

詳しい情報は、Bubbleの公式マニュアルで確認できますので、ぜひご参照ください。

参考情報

https://www.youtube.com/watch?v=Y7ffz8FKCic

techfather.com
October 14, 2024