どのようなときに Azure Logic Apps を使用するか
ここでは、Azure Logic Apps が自分のシナリオにとって最適な選択肢であるかどうかを判断する方法について説明します。 まず、Azure Logic Apps でパフォーマンスと機能の目標を満たせるかどうかを示す基準をリストアップします。
意思決定の基準
Azure Logic Apps は、さまざまなシステム間のデータ フローを調整するのに役立ちます。 一般的に、リアルタイムの要件がある、ビジネス ルールが複雑である、標準以外のサービスを使用しているといったケースでは、Azure Logic Apps が最適なオプションではないことがあります。 これらの各要素について、以下で簡単に説明します。
要素 | 説明 |
---|---|
統合 | Azure Logic Apps を検討するときの重要な質問は、"サービスを統合する必要があるか" ということです。Azure Logic Apps は、複数のアプリケーションやシステムを連携させる必要がある場合に適しています。 外部との接続がないアプリを構築している場合、おそらく Azure Logic Apps は最善の選択肢ではないでしょう。 |
パフォーマンス | 次に考慮するのはパフォーマンスです。 Azure Logic Apps の実行エンジンは、アプリを自動的にスケーリングします。 Azure Logic Apps は、高スループットを実現するために大規模なデータ セットを並列で処理することができます。 ただし、このサービスは超高速のアクティブ化を保証したり、実行時間に対するリアルタイムの制約を適用するわけではありません。 1 秒未満の低応答時間を求めている場合、Azure Logic Apps は最適解ではない可能性があります。 |
制御 | Azure Logic Apps には、アプリがデータに基づいた決定を行えるようにするために、条件 (ブール式)、スイッチ アクション、ループなどの制御要素が用意されています。 ロジック アプリ ワークフローでは、非常に複雑で深い入れ子になった制御構造を構築できます。 ただし、以下に示す 2 つの理由からこれを好まないということも考えられます。 - 多くの場合、条件ロジックは、ワークフロー デザイナー内に記述するよりも、コード内に記述する方が簡単です。 - 埋め込まれたビジネス ルールは他のアプリと簡単に共有することができない。 一定数の人々は、複雑なビジネス ルールを直接ロジック アプリ ワークフロー内に含めることを好みます。 Azure 関数などを記述して条件付きロジックをカプセル化し、所有するすべてのアプリからその関数を呼び出す方が簡単だと考える人もいます。 |
コネクタ | 最後に考慮すべきなのが、アクセスする必要があるすべてのサービスまたはシステム用の事前構築済みコネクタが存在するかどうかという点です。 これらが存在する場合は、問題はありません。 そうでない場合は、カスタム コネクタを作成する必要があります。 サービスに REST または SOAP API が既にある場合は、コードを記述しなくても、数時間でカスタム コネクタを作成できます。 そうでない場合は、コネクタを作成する前に、まず API を作成する必要があります。 |
基準を適用する
Azure Logic Apps は、コントロール ロジックをいくつか追加して複数のサービスを統合している場合に最適です。 サンプルのプロセスで、これらの基準をどのように当てはめられるか考えてみましょう。
ここでの架空の靴会社は、業界のニュースを監視し、古いビデオをアーカイブ ストレージに移動し、オンラインで靴を販売する必要があります。 ここでの目標は、Azure Logic Apps がこれらのタスクを処理するのに適した候補であるかどうかを判断することです。 判断を下すために、設定した 4 つの基準 (統合、パフォーマンス、制御、およびコネクタ) を使用して各タスクを分析します。 結果を次の表にまとめています。
統合 | パフォーマンス | 制御 | コネクタ | Azure Logic Apps を使用するか? | |
---|---|---|---|---|---|
ニュースの監視 | 複数のサービスを統合する | 凖リアルタイムの低待機時間を必要としない | 1 つの条件のシンプルなアクション | 必要なすべてのシステムで組み込みのコネクタを利用できる | 可能 |
動画アーカイブ ユーティリティ | 1 つのサービス、クラウド ストレージへのアクセスのみ必要 | ほぼリアルタイムの低待機時間を必要としない | 2 つのシンプルな条件のアクション | 必要なすべてのシステムで事前構築済みコネクタが利用可能 | はい |
オンライン直販 | 複数のサービスを統合する | ほぼリアルタイムの低待機時間を必要としない | "複数の複雑な条件" | 複数のカスタム コネクタが必要 | 可能性あり |
この分析によって以下のようないくつかの検討すべき点が生まれます。
ビデオ アーカイブ タスクは、複数のシステムを統合するわけではありませんが、Azure Logic Apps に適しています。
Azure Logic Apps には、このプロセスを実装するのに最適な、タイマー トリガーと Azure Blob Storage コネクタが組み込まれています。
オンライン販売プロセスは多くの場合、複雑なビジネス ロジックを含みます。
たとえば、購入額によってことなる承認プロセスがあったり、配送先によって異なる配送業者が存在する場合があります。 Azure Logic Apps なら、これらの条件を簡単に処理できます。 これらのビジネス ルールをアプリに埋め込むかどうかを選択する必要があります。
オンライン販売プロセスは多くの場合、事前構築済みコネクタとカスタム コネクタの組み合わせを使用します。
メール通知やデータベース アクセスには事前構築済みコネクタを使用できますが、独自の支払い処理サービスとの対話には、おそらくカスタム コネクタが必要になります。
Azure Logic Apps にはこれらすべてのタスクに十分に対応できる性能があります。
大量のデータを処理するタスクが存在する可能性がありますが、Azure Logic Apps は自動的にスケーリングを行い高スループットや需要の急増に対応します。 これらのタスクのいずれにも、待機時間の少ない応答時間は必要ありません。 この点が問題になる場合は、凖リアルタイムの要件が必要になります。
Azure Logic Apps はこれらすべてのタスクで機能する可能性があり、オンライン販売プロセスは、すべての選択肢を比較する唯一のタスクです。 必要なカスタム コネクタを作成するためのリソースがある場合は、Azure Logic Apps が適した選択肢となります。
ガイダンスのまとめ
次のフローチャートは、Azure Logic Apps の使用を検討する際に確認するべき重要な質問をまとめたものです。