Azure Functions

サーバーレスアーキテクチャとAzure Functions サーバレスアーキテクチャとは、マネージドサービスのみを利用してシステムを構築するアーキテクチャです。そして、Azure Functionは非常駐型のプロセスをイベントによってトリガーして実行するサービスです。 Azure Functionsの特徴はサーバーでプログラムを直接動作することができるということで、「プログラマが考えるのはコードだけ」というようにプログラマは必要なプログラミングだけに集中できます。そのため、その他のプログラムに関わらない多くのことが抽象化されています。 そうです、あなたがフォーカスするのはプログラミングだけ。Azure Functionsを使えば今までインフラの制御などに奪われがちだった時間はあなたのものになり、より簡潔で楽しいプログラミングの時間を持つことが出来るのです。 Azure Functionsのプログラミング Azure functionsのプログラミングコンセプトはとても簡単です。下の図を見てわかる通り、大変簡単な理解しやすい作りになっています。フローを確認すると、まずトリガーになるイベントを取得し、コードで読ませたいデータなどのリソースをインプットとして、出したい結果をアウトプットとして設定します。あとはコードを書くだけです。Functionsは複数のインプット、複数のアウトプット先を持てます。   Azure Functionsを利用するメリット ここで、Azure Functionsを利用することで得られるメリットについてもう少し深く掘っていきましょう。 Azure Functionsを利用することによるメリットは「フォーカスできる」ということです。従来のようにプログラマーがサーバーを意識する必要性や、設計者がアーキテクチャの面でスケールアウトのことを深く考える必要性がなくなった結果、プログマ―はコーディングに集中でき、設計者はビジネスのロジックに集中することができます。 それを可能にしている理由はAzure Functionsでは「バインディング」の機能によってデータやリソースの連携部分が抽象化されているからです。 OSのレイヤー等の低いレイヤーはもちろん、複雑な連携部分もAzure Functionsがマネージするので、ユーザーは「真に人間が考えるべきコード」だけを書けばよいのです。 また、もう一つのメリットはコストが低いということでしょう。コストでは料金的なコストと時間的なコストを減らすことが出来ます。Azure Functionsでは従来型のVMが起動している時間に対する課金形態以外に、実行したら実行した時間だけお金がかかる課金形態も選べるのでコストも抑えられ、経済的です。バインディングの機能によって開発の時間を大幅に短縮できることもメリットです。例えばメッセージングアプリケーションで簡易的なBOTの機能を作る際には、データベースの接続部分等のややこしい部分のプログラミングを忘れて、会話のコアとなるプログラミングをいきなり始めることが出来るのです。運用の際にもスケールアウト等はAzure Functionsがやってくれます。 サーバーレスアーキテクチャの利点まとめ ➡ やりたいことにフォーカスできる : データやリソースの連携部分の抽象化 / 自動的にスケールし、任意の処理が実行できる ➡ 料金的/時間的なコストの低さ:利用開始のコストは低く、簡単に体験できる     Azure Functions ここで Azure functions の機能的な面を詳しく見ていきましょう。 実際に以下の Azure Functionsのサービスの機能を見ると、 Azure Functionsの機能がいかにサーバー レスアーキテクチャやマイクロサービスアーキテクチャといったアーキテクチャのメリットを享受できるように作られたかがわかると思います。以下に挙げられるようにC#やnode.js/javascript、PHPなど、普段あなたが開発に使っている言語を利用することができ、Azure Functionsの関数を発火させるためのトリガーもHTTPSの提供される簡単なWEBAPIや、cronの形式で定義できるタイマーなど、利用しやすいものとなっています。   Azure Functionsの特徴 Azure Functions = イベント駆動の「機能」実行プラットフォームで、柔軟で強力なサーバーレス スクリプト実行環境 … Continue reading Azure Functions