テクノロジのオプションを確認する

完了

既存の自転車レンタル システムと第 2 キャンパスで使用されているシステムの間を適切に統合するビジネス プロセスを作成するために、あなたに残されている時間はあまりありません。 あなたは、既に持っている Azure の専門知識を最大限に活用しようと考えています。あなたは、このような問題を解決するために使用できるいくつかのテクノロジが Azure に含まれていると読んだことがあります。

このユニットでは、ビジネス プロセスの自動化と統合に利用できる Azure テクノロジのオプションについて説明します。

ビジネスに関する一般的な問題

ビジネスでは、高品質の製品とサービスを顧客に保証する方法の 1 つは、厳密なビジネス プロセスを設計し、実装することです。 そのようなプロセスには、複数のステップ、人、ソフトウェア パッケージが含まれる場合があります。 各プロセスは、作業者が 1 つずつ順番に実行する一連の単純なアクティビティで行われることも、分岐したりループしたりすることもあります。 また、各プロセスはすぐに終わることも、完了するまでに何日または何週間もかかることもあります。

企業が別の企業と合併する際や、パートナー組織と統合する際に、問題が発生することがよくあります。 管理者は、異なるソフトウェアを使用して実装されている可能性のある、2 つの組織で使用されている個別のプロセスをどのようにすれば統合できるでしょうか。

ソフトウェアでモデル化されたビジネス プロセスは、ワークフローとよく呼ばれます。 Azure には、複数のシステムを統合するワークフローを構築して実装するために使用できる 4 つの異なるテクノロジが含まれます。

  • Logic Apps
  • Microsoft Power Automate
  • WebJobs
  • Azure Functions

これら 4 つのテクノロジには、いくつかの類似点があります。 たとえば次のような点です。

  • すべて、入力を受け入れることができます。 入力は、ワークフローに提供されるデータまたはファイルです。
  • すべて、アクションを実行できます。 アクションは、ワークフローで実行される簡単な操作であり、多くの場合、データを変更したり、別のアクションが実行される原因になったりします。
  • すべて、条件を含めることができます。 条件は、次に実行するアクションを決定できるテストであり、多くの場合は入力に対して実行されます。
  • すべて、出力を生成させることができます。 出力は、ワークフローによって作成されるデータまたはファイルです。

さらに、これらのテクノロジで作成されたワークフローは、スケジュールに基づいて開始させたり、何らかの外部イベントによってトリガーされたりすることができます。

デザイン優先のテクノロジ

ビジネス アナリストは、ビジネス プロセスを検討して計画するとき、紙にフロー ダイアグラムを書くことがあります。 Logic Apps と Microsoft Power Automate では、同様のアプローチを使用してワークフローを設計できます。 どちらにも、ワークフローを描画できるユーザー インターフェイスが含まれます。 このアプローチを、"デザイン優先" アプローチと呼びます。

Logic Apps

Logic Apps は、分散アプリケーションのさまざまなコンポーネントを自動化し、調整し、統合する、Azure 内のサービスです。 Logic Apps でデザイン優先のアプローチを使用することにより、複雑なビジネス プロセスをモデル化する複雑なワークフローを描画できます。 次のスクリーンショットでは、ワークフローの定義に使用できる Logic Apps デザイナーとデザイン キャンバスを示します。

Screenshot of the Logic Apps workflow designer in the Azure portal.

または、コードで作業する方がよい場合は、次のスクリーンショットで示すコード ビューを使用し、JSON 表記でワークフローを作成または編集できます。

Screenshot of the Logic Apps code editor in the Azure portal.

統合において Logic Apps が優れている理由の 1 つは、200 を超えるコネクタが含まれていることです。 "コネクタ" は、外部サービスへのインターフェイスを提供する Logic Apps のコンポーネントです。 たとえば、X コネクタを使うと短い投稿を送信および取得でき、Office 365 Outlook コネクタを使うとメール、予定表、連絡先を管理できます。 Logic Apps では、アプリの作成に使用できる何百もの事前構築済みコネクタが提供されています。 普通とは異なるシステムや独自のシステムを Logic Apps から呼び出したい場合は、システムで REST API が公開されていれば、独自のコネクタを作成できます。

Microsoft Power Automate

Microsoft Power Automate は、開発や IT の専門知識がなくてもワークフローを作成するサービスです。 Web サイトまたは Microsoft Power Automate モバイル アプリを使い、さまざまなコンポーネントを統合して調整するワークフローを作成できます。

4 種類のフローを作成できます。

  • 自動: イベントからのトリガーにより開始されます。 たとえば、イベントは、新しい短い投稿の到着や新しいファイルのアップロードなどです。
  • ボタン: モバイル デバイスからシングル クリックで反復的なタスクを実行します。
  • スケジュール済み: 定期的に実行されます。 たとえば、週に 1 回、特定の日付、あるいは 10 時間後などに実行します。
  • ビジネス プロセス: 在庫注文プロセスや苦情処理手順などのビジネス プロセスをモデル化します。 フロー プロセスには、記録された承認、ステップのカレンダー日、フロー ステップの記録された時間などに関する必要な担当者への通知を含めることができます。

Microsoft Power Automate では、これらの種類のフローを作成するための、使いやすいデザイン サーフェイスが用意されています。 次のスクリーンショットで示すように、フロー デザイナーを使用するとプロセスを簡単に設計してレイアウトできます。

Screenshot of the Microsoft Power Automate designer showing a workflow with a file trigger, an Office action to get a user's profile and an Outlook action to send an email.

Microsoft Power Automate の内部は、Logic Apps が基になっています。 この事実は、Power Automate でも Logic Apps として同じ範囲のコネクタとアクションがサポートされることを意味します。 また、カスタム コネクタを Microsoft Power Automate で使うこともできます。

デザイン優先テクノロジの比較

次の表からわかるように、非技術スタッフが使うには Microsoft Power Automate の方が適しています。 ワークフロー デザイナーが IT プロフェッショナル、開発者、または DevOps 熟練者である場合は、通常は Logic Apps の方が適しています。

Microsoft Power Automate Logic Apps
対象ユーザー オフィス ワーカーやビジネス アナリスト 開発者や IT プロフェッショナル
対象シナリオ セルフサービスのワークフローの作成 高度な統合プロジェクト
デザイン ツール GUI のみ。 ブラウザーとモバイル アプリ ブラウザーと Visual Studio デザイナー。 コードの編集が可能
アプリケーション ライフサイクル管理 Power Automate には、テスト環境と運用環境が含まれています Logic Apps のソース コードを、Azure DevOps とソース コード管理システムに含めることができます

コード優先のテクノロジ

1 つのワークフローでさまざまなビジネス アプリケーションを調整して統合するとき、チームの開発者はコードを記述する方を好むことがあります。 たとえば、ワークフローのパフォーマンスを細かく制御したり、ビジネス プロセスの一部としてカスタム コードを記述したりすることが必要な場合です。 そのようなユーザーのため、Azure には Azure WebJobs と Azure Functions が含まれています。

WebJobs と WebJobs SDK

Azure App Service は、Web アプリケーション、モバイル バックエンド、RESTful API のためのクラウドベースのホスティング サービスです。 これらのアプリケーションでは、多くの場合、何らかのバックグラウンド タスクを実行する必要があります。 たとえば、自転車レンタル システムでは、ユーザーが自転車の写真をアップロードしたら、小さいサムネイル写真を生成する必要があります。

WebJobs は Azure App Service の一部であり、プログラムやスクリプトを自動的に実行するために使うことができます。 2 種類の WebJobs があります。

  • [継続]: WebJob が作成され、連続ループで実行されるとすぐに開始されます。 たとえば、共有フォルダーで新しい写真をチェックするには、継続的 WebJobs を使用できます。
  • トリガー。 バインディング イベントまたはスケジュールに基づいて開始されるか、手動でトリガーされたときに開始されます (オンデマンド)。

WebJob で実行するアクションを決定するには、いくつかの異なる言語でコードを記述できます。 たとえば、シェル スクリプト (Windows、PowerShell、Bash) でコードを記述して、WebJobs をスクリプト化できます。 または、PHP、Python、Java、JavaScript でプログラムを作成することもできます。

.NET および C# や VB.NET などの .NET 言語を使って、WebJobs をプログラミングすることもできます。 この場合は、WebJobs SDK を使ってタスクを簡単にすることもできます。 SDK には JobHostConfigurationHostBuilder などのさまざまなクラスが含まれており、Azure App Service とのやりとりに必要なコードの量が減ります。

WebJobs SDK では、C# と NuGet パッケージ マネージャーだけがサポートされています。

Azure Functions

Azure Functions は、クラウドで小さいコードを実行するためのシンプルな方法であり、そのコードをホストするために必要なインフラストラクチャについて心配する必要はありません。 関数は、「Azure Functions でサポートされている言語」記事に記載されている C#、Java、JavaScript、PowerShell、Python、または任意の言語で記述できます。 さらに、従量課金プラン オプションでは、コードが実行された時間に対してのみ課金されます。 Azure では、ユーザーからの需要に応じて関数が自動的にスケーリングされます。

Azure Function の作成は、ポータルで関数用のコードを書くことで始めることができます。 または、ソース コード管理が必要な場合は、GitHub または Azure DevOps Services を使うことができます。

Azure Function を作成するには、さまざまなテンプレートから選択します。 次の一覧は、使用できるテンプレートの例です。

  • HTTP トリガー。 HTTP プロトコルで送信された要求に対する応答でコードを実行する場合。
  • タイマー トリガー。 スケジュールに従ってコードを実行する場合。
  • Blob Storage のトリガー。 Azure ストレージ アカウントに新しい BLOB が追加されたらコードを実行する場合。
  • Cosmos DB トリガー。 NoSQL データベース内の新しいドキュメントまたは更新されたドキュメントに対応してコードを実行する場合。

Azure Functions は、Azure およびサード パーティ両方のさまざまなサービスと統合できます。 これらのサービスでは、関数をトリガーしたり、関数にデータ入力を送信したり、関数からデータ出力を受信したりできます。

コード優先テクノロジの比較

Azure Functions の方が管理が簡単でコーディング モデルが柔軟であるため、ほとんどの場合は、WebJobs より Azure Functions が選択されます。 ただし、次のような理由で WebJobs を選択する場合があります。

  • コードを既存の App Service アプリケーションの一部にして、そのアプリケーションの一部として管理したい場合 (たとえば、同じ Azure DevOps 環境内で)。
  • コードをトリガーするイベントをリッスンするオブジェクトを、より細かく制御する必要がある場合。 ここで問題になるオブジェクトは JobHost クラスであり、WebJobs ではその動作をいっそう柔軟に変更できます。
Azure WebJobs Azure Functions
サポートされている言語 WebJobs SDK を使用している場合は C# C#、Java、JavaScript、PowerShell など
自動スケーリング いいえ はい
ブラウザーでの開発とテスト いいえ はい
従量課金制の価格 いいえ はい
Logic Apps との統合 いいえ はい
パッケージ マネージャー WebJobs SDK を使用している場合は NuGet NuGet と NPM
App Service アプリケーションの一部にできる はい はい (App Service プランでホスト)
を細かく制御できるJobHost はい いいえ

利用できるデザイン優先テクノロジとコード優先テクノロジはわかりましたが、選択するものをどのようにして絞り込めばよいでしょうか? 次のユニットでは、この質問について見ていきましょう。