Azure Functions の一般提供を開始

執筆者: Yochay Kiriaty (Principal Program Manager, Azure Platform)

このポストは、11 月 15 日に投稿された Announcing general availability of Azure Functions の翻訳です。

 

今日、企業がクラウドを利用する狙いは、ビジネスを加速することだけではありません。もう 1 つ重要なのが、ビジネスの変革です。PaaS (サービスとしてのプラットフォーム) を使用するとインフラストラクチャの管理や保守にわずらわされることなくアプリケーションの刷新に集中できるため、企業はビジネスの変革を促進させる規模でイノベーションを実現できます。Microsoft Azure が提供する最先端の PaaS 製品には、マイクロソフトが世界トップクラスのツールやサービスを数十年にわたって開発者に提供してきた経験が活かされています。その Azure PaaS ポートフォリオの一角を占める Azure Functions は、アプリケーション開発の迅速化と運用の俊敏性向上を可能にするサーバーレス コンピューティング エクスペリエンスを提供しています。2016 年 3 月にプレビュー版がリリース (英語) されていましたが、このたび一般提供が開始となりました。

Azure Functions はサーバーレス アーキテクチャでのイベント主導型ソリューションの開発を支援します。オンデマンドでのスケーリングが可能で、実際に消費したリソースに対してのみ料金が発生します。今回 C# と JavaScript のサポートが一般提供となり、F#、PowerShell、PHP、Python、CMD、BAT、Bash についてはプレビューのままです。Azure Functions は統合ツールのサポートしているほか、すぐに利用できる Azure やサードパーティ製サービスへのバインドを提供し、継続的デプロイメントに対応しているため、開発者の生産性が向上します。

コミュニティとの協力

Azure Functions はコミュニティの協力を得ながら GitHub (英語) でオープンに開発されています。投稿されたフィードバックには Azure Functions チームも積極的に関与してユーザーと議論しています。高品質で実際の運用に対応したサービスにするために、プレビュー期間中は GitHub で 900 以上の Issue が作成され、解決されました。今後もユーザーの皆様とこのような対話を継続し、UserVoice に機能のバックログを保持していきます。ご提案がありましたら UserVoice (英語) までお寄せください。

統合ツールのサポート

ベータ版 Azure Functions CLI (英語) を使用すれば、関数の作成、実行、デバッグを Windows マシンでローカルに行えます。たとえば、Node.js の JavaScript 関数の場合、CLI は Visual Studio Code と連携し、デバッグ対象が自動的にセットアップされます。現時点ではこの CLI は Windows でのみ使用できますが、今後 Mac と Linux もサポート (英語) される予定です。

UserVoice に寄せられているご要望で特に多いのが Visual Studio 2015 ツールのサポートについてですが、これに関しては近日中にプレビュー版がリリースされる予定です (ダウンロード リンクが公開されしだい、この記事を更新してお知らせします)。このツールでは、新しい Azure Function アプリの作成、ローカルまたはリモートでのデバッグ、Azure への発行が可能です。

サービスへのバインド

他の同等の製品と異なり、Azure Functions では開発者がわずか数クリックでサービスへのバインドを構成できます。サービスへのバインドを構成すると、関数をトリガーし、実行時にオブジェクトを関数に渡すように設定できます。この機能では、Blob Storage、Event Hubs、Service Bus、Table Storage などの Azure サービスのほか、OneDrive や DropBox などの外部サービスがサポートされます。たとえば、Azure Storage へのバインドの場合、新しいファイルがアップロードされたときに関数をトリガーするように構成できます。バインドの実装は Azure Functions によって管理されるため、開発者にとっては保守用のコードの量が減ることになります。開発者が独自のツール チェーンを使用する場合も、functions.json ファイルを直接編集することでバインドを構成できます。

プレビュー版の SendGrid、Twillio、Box、DropBox、Google Drive のバインドは、バインド拡張フレームワーク (来年プレビュー版をリリース予定) を基盤としてマイクロソフトが構築しました。このフレームワークを利用すると、開発者は独自でバインドを作成でき、ISV は拡張機能エコシステムに参加することができます。

従量課金制

Azure Functions ではリソースを予約する必要がなく、関数を実行した時間と関数が使用したメモリに対して課金されます。使用メモリのサイズと実行時間から算出するリソース使用量については 400,000 ギガバイト秒 (GB-s)、実行回数については 100 万回まで恒久的に毎月無料で使用できます。使用量が毎月の無料分を超過すると、リソース使用量 (GB-s) と実行回数に応じて料金が発生します。実行時間は 100 ミリ秒を下限としてミリ秒単位で計算されます。既存の Azure App Service の Basic、Standard、Premium のいずれかのプランを使用している場合、Functions のリソース使用量は各プランの料金に組み込まれます。現在、Azure Functions は 12 の Azure リージョンで提供されており、一般提供料金は 2017 年 1 月 1 日から適用されます。詳細については料金ページでご確認ください。

運用効率の向上

Azure Functions は必要に応じてスケールアップ、スケールダウンできるため、最大使用量を想定してインフラストラクチャを構築したり、使用していないリソースに費用をかけたりする必要がありません。また、関数が暴走した場合に備えて 1 日の最大使用量の制限を設定することもできます。さらに、修正プログラムを適用したり、フレームワークや OS、インフラストラクチャを保守したりする必要もありません。基盤インフラストラクチャの保守は Azure Functions が行います。

使用事例

早期に導入を行った AccuWeather や Plexure などのお客様は、アプリケーションの刷新によって Azure Functions が持つ真の能力を実感されています。どちらのお客様も運用環境で Azure Functions を利用しています。

  • AccuWeather: 「Azure Functions のおかげで CRON ワークロードを簡単かつ効率的にクラウドに移行することができました。複雑なセットアップを行わなくても強力な機能を利用できるため、業務に不可欠なイベント主導のプロセスやワークフローをすばやくかつ容易に実装できました」– Chris Patti 氏 (AccuWeather、CTO)
  • Plexure: ソフトウェア ベンダーとしては、ソフトウェアがクライアントのニーズの 90% しか満たせてない状況で問題を完全に解決するのは非常に困難です。Azure Functions なら、そのように不足した部分を解消するロジックを小規模な自動スケーリング ユニットですぐにリリースできるため、当社の製品をお客様に提供するうえで大きなメリットとなります。Azure Functions を当社のソフトウェア アーキテクチャに組み込むことで、ソフトウェアをすばやく進化させて顧客別のニーズに対応すると同時に、製品の標準化も維持できるようになりました」– David Inggs 氏 (Plexure、CTO)

今後の展開

マイクロソフトは本日 Azure Functions チャレンジ (英語) を公開しました。このサイトでは Azure Functions の使い方を無料で学習できます。コードの問題を解いてバッジを獲得し、SNS で自慢しましょう。ぜひご利用ください!