Azure Functions とは
- 7 分
あなたはTailspin Space GameのWebチームをフォローし、経営陣が主導する新たなマーケティング要件を最適に実現する方法について話し合っている過程を見守ります。 チームは、いくつかのサーバーレス テクノロジ (特に Azure Functions) を DevOps プロセスに統合する必要があります。
チームにチェックインできます。
新しい要件
アーウィン: 急なお願いにもかかわらず、お越しいただきありがとうございます. 物事はヒートアップし、マーケティングチームは私たち全員のために物事を複雑にする可能性のあるいくつかの約束をしました。 彼らは本当に私たちのサイトが好きです。 最終的なリリースに向けて、そしてその後もゲームを宣伝するためにリーダーボードを使用できると彼らは考えています。 当初の計画を超えてスケールアウトしたいと考えています。
マラ: 素晴らしいですね。 Azure を使用しているため、必要なだけサービスをスケールアウトできます。
アーウィン: 誰でも自分のアプリケーションにランキング データを統合する機能が必要です。 彼らは、私たちのサイト、ゲーム、ゲームレビューサイト、さらには外部ブログや個人用サイトでも同じランキングオプションを持つことは本当にクールだと思います。 課題の 1 つは、ゲーム エンジン チームが現在、ランキング データを取得する運用データベースを所有していることです。 今後、API を構築して所有する必要があると考えます。
アンディ: Mara、何か考えがありますか?
マラ: 私たちは何かを思い付くことができると確信しています。 私のメモは次のとおりです。
- 迅速に提供する必要があるため、コードとスキルを使用できるソリューションを見つける必要があります。
- 小規模な機能を独立したサービスにリファクタリングする必要があります。
- 運用環境での管理オーバーヘッドを最小限に抑える必要があります。
- 大規模なコミットメントを行うことなく、大規模なスケールを持つ必要があります。
チームは同意してうなずく。
それは私のマシンで動作します
ミーティングは解散します。 次の朝、アンディは興奮して Mara のオフィスに飛び込み、即席のチャットを行います。
アンディ: わかりました! ランキング API のすべての要件を満たすソリューションが見つかりました。 Azure Functions と呼ばれるサーバーレス オファリングです。
マラ: 素晴らしい! デモを行うことができるものがある期間はどのくらい前ですか?
Andy:私は既にある物をこしらえています。GitHub リポジトリをフォークし、ランキング コードをリファクターして新しい Azure Functions プロジェクトにしました。 これは、単純な HTTP GET 要求を介してランキング データを公開します。 また、ランキングを要求するときにそのエンドポイントを使用するように Web サイトを更新しました。他の誰でも同じことができます。
マラ: これはまさに私たちが必要としているように聞こえます。 メイン サイト プロジェクトの場合と同様に、既存の CI/CD パイプラインを拡張してビルドとデプロイをサポートできます。
注
このモジュールでは、アプリを Azure Functions に接続する方法に焦点を当てません。 関心がある場合は、 ソース コードを確認してください。 このコードでは、 C# 用 Azure Functions ランタイム を使用して、Azure Functions からランキング データを読み取ります。
Azure Functions とは
Azure Functions は、幅広い Azure サーバーレス コンピューティング テクノロジ内の特定のオファリングです。 これにより、開発者はステートレスなサーバーレス環境に存在する単純な関数を簡単に構築できます。 関数は、HTTP 要求、ストレージ内のデータの変更、キューからのメッセージの受信など、さまざまな方法を使用してトリガーできます。 トリガー バインドの詳細については、 Azure Functions のトリガーとバインドの概念を参照してください。
Tailspin チームは、すべてのニーズを満たしているため、このシナリオで Azure Functions を選択しました。
- 迅速に提供する必要があるため、コードとスキルを使用できるソリューションを見つける必要があります。
- 既に用意されているコードを適用する ASP.NET Core アプリケーションとしてソリューションをすばやく構築できます。
- 小規模な機能を独立したサービスにリファクタリングする必要があります。
- 私達は心配する他の適用の表面積なしで独立した機能を提供できる。
- 運用環境での管理オーバーヘッドを最小限に抑える必要があります。
- Azure Functions を使用すると、ホスティング環境について心配する必要がなくなります。
- 大規模なコミットメントを行うことなく、大規模なスケールを持つ必要があります。
- サーバーレス テクノロジには、仮想マシンやアプリ サービスよりも高速に自動的にスケールアップおよびスケールダウンできる、実質的に無制限のスケールがあります。
Azure Functions やその他のサーバーレス テクノロジは、常にすべてのソリューションに適しているわけではありません。 後で、ジョブに適したテクノロジを選択するのに役立つリソースを見つける場所について説明します。