Tech Summit 2018 Day3 (Azure Functions, Dureble Functions) 

2018年11月28日

「Microsoft Tech Summit 2018」の3日目では、ピックアップした下記と「全体的な所感」について、簡単にまとめました。
 ・Azure Functions 2.0
 ・Durable Functions
 ・全体的な所感

 

Azure Functions 2.0

まずFunctionsとは
サーバレスでコードに集中できるような環境です。
Funcsionsの特徴
 1.高度な抽象化
 2.イベント駆動型で高速スケール
 3.使った分だけの課金(従量課金)

先にデメリットの一つを書きますが、
Functionsにはコールドスタートというものがあります。
コールドスタートは使用されていないと、起動から始めるため処理時間が掛かってしまうことです。
それは特徴の「3.使った分だけの課金」の話と繋がっており、使っていないとインスタンスがなくなっているからです。

Function2.0では最適化を実施済みです。
ただしそれでも、まだ完璧ではないので、追加として「依存関係を小さく保つ」「”ピンガ―”を作成」、またプランを変えるという方法があります。
「コンサンプションプラン」(通常)
 ・迅速なスケールアウト
 ・無限大のスケールアウト
 ・VNet接続負荷
 ・最大10分間の実行時間(※1)
 ・小さなインスタンスサイズ
 ・コールドスタートが発生
「App Serviceプラン / ASE」
 ・自動スケールアウト(~5分)
 ・スケール最大値あり
 ・仮想ネットワークへの接続可能
 ・無制限の実行時間
 ・プレミアムインスタンスサイズ
 ・常時接続(Always on)

※1.最大10分間とありますが、なぜ10分なのか正確な理由はわからないそうですが、
おそらく下記のような理由だろうと説明していました。
 1.従量課金なので、ずっと利用していると金額が大変な額になるため
 2.Functionsの本来の用途はバッチで大量に送るのに適していないため(10分超えてると間違いかと気付ける)

上記のプランがありますが、理想的には「コンサンプションプラン」で実装できるFunctionsにすることが好ましいそうです。
 ・イベントごとにFunctionを区切り、最小の構成にする
 ・長くても数十秒で終了する処理

「App Serviceプラン」は下記の場合に使います。
 ・イベントごとに最小になるように実装したが、ロングランになる可能性がある
 ・仮想ネットワークに所属する必要がある
 ・迅速に実行される必要がある

またプライベートプレビューとしてですが、一応良いとこ取りの下記のプランがあります。
「Functionsプレミアムプラン」
 ・迅速なスケールアウト
 ・無限大のスケールアウト
 ・仮想ネットワークへの接続可能
 ・無制限の実行時間
 ・プレミアムインスタンスサイズ
 ・常時接続(Always on)

Functionsのコンセプトはトリガーとバインディングを使って発生したイベントに応答するものです。
つまり、トリガー(HTTP、キューでもBlobが変更されたでも)でコードを実行し、バインディングでデータの入出力コードを単純化させます。これらには豊富な種類があります。
またFunctionsはポータルから簡単にコード生成できますし、どこでも動作します。
IoTデバイスやローカル、他クラウドでももちろん可能ですので、様々なビジネス用途に利用できます。

Functinosのシナリオとしては下記のパターンがあります。
 ・リアルタイムストリーミング処理
 ・タイマーベース処理
 ・モバイルアプリのバックエンド
 ・リアルタイムなボットのメッセージング処理

今回Function2.0では下記の変更がアナウンスされました。
1.言語環境の変更
2.新しいプラットフォーム/ホスティングプラン
3.開発環境/デプロイメントモデルのアップデート
4.ランタイム/バインディングの仕様変更
5.Durable FunctionsがGA

 

Durable Functions

まずサーバレスの限界として、
 ・サーバレスは複雑になりやすい 
 ・長時間の実行に制限がある
 ・障がい時の対策が大変
 ・モニタリング方法の仕方
上記のため、Functionsでは単純なタスクに利用していました。

Durable Functionsはオーケストレーターによって、複数のアクティブを紐づけたステートフルなFunctionsなため、サーバレスの限界を解決することができました。
・オーケストレーターによってシンプルに
・ステートフルなため、リトライが可能
 new retryOptions(TimeSpan.FromMinutes(1), 5)
 上記の一文で例外が発生したら1分後に5回リトライすると設定できます。
・非同期でワークフローを並列処理可能
・分散トレーシングをDurable Functionsでも対応できるように現在作成中

Durable Functionsを取り入れた事例として、
AIのフローがある処理で、並列処理で行い、かなりの改善をしたそうです。
[2018/11/28 追加]  下記がその事例の記事ですね。
 AIを使って試合写真に選手名を自動でタグ付け

Durable Functionsにより、Logic Appsで行っていたことが代わりに行えるようになり、開発方法が統一されやすくなったのではないかと考えています。

また今回チュートリアルを下記サイトに作ってくれたそうなので、共有します。
https://qiita.com/TsuyoshiUshio@github/items/2372f3f9ed8e1f9c81ee

 

全体的な所感

基調講演での始まりは日本マイクロソフトの平野拓也社長がりんな(ソーシャルAIチャットボット)と会話するところからでした。
日本が他国より先駆けて取り入れた「共感モデル」や「共感視覚モデル」「全二重方式」により、人間らしい会話を行っていました。
そこからMicrosoft AIは「人間の創造性を拡張する」とメッセージが出ました。
自分もAIは面倒なことやインサイトを与えてくれるものであり、仕事を奪うのではなく、より人間の得意であるクリエイティブな時間を生み出すことができるものだと考えています。
今回どのセッションでも、事例にはAIが加わったものがありました。
第三次AIブームから始まり、現在ではAIの民主化を掲げており、誰にでもAIが簡単に扱えるようになりました。ガートナーのハイプサイクルでは幻滅期へと入りかけていますが、これから速い速度で安定期へと入っていくのではないかと考えています。

もちろんAIだけではなく、違った角度で話せば、今は第4次産業革命であり、Society5.0へと突入しています。これは現実とデジタルが融合したOMO(Online merge Offline)の時代が来ていることであり、それはIoTやクラウドなど様々なテクノロジーの発展があってこそできていることです。そのため、マイクロソフトでは「Intelligent Cloud」「Intelligent Edge」として力を入れているのだと考えていますし、数々のセッションで実感しました。

 

 

他のセッションについては、下記をご覧ください。

 Microsoft Tech Summit 2018に参加 (Tech Summitとは)
 Tech Summit 2018 Day1 (Igniteハイライト AI, IoT, ビッグデータ)
 Tech Summit 2018 Day2 (HoloLens, Dynamics365, Power Platform)