Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Serverless overview and updates 2019

miyake
July 27, 2019

Azure Serverless overview and updates 2019

「MVP x Student Meetup@つくば 」で発表させていただいたスライドです。

miyake

July 27, 2019
Tweet

More Decks by miyake

Other Decks in Technology

Transcript

  1. About Me 三宅 和之 @kazuyukimiyake 株式会社ゼンアーキテクツ CTO Microsoft MVP (

    for Microsoft Azure ) Vue.js ⽇本ユーザーグループ コアスタッフ typescript-jp コアスタッフ PaaS がかりの部屋(Blog): https://k-miyake.github.io/blog/
  2. Serverless とは Serverless = BaaS ( Backend as a Service)

    + FaaS ( Functions as a Service) martinfowler.com 記事
  3. Azure Functions は V2 へ進化(更新を推奨) Runtime を Host process と

    Worker process に分離 新機能はほとんどが V2 のみをサポート (V1 はほぼメンテナンスされていない)
  4. TypeScript サポート Node.js ベースでの Azure Functions 開発が安全・快適に! import { AzureFunction,

    Context } from "@azure/functions"; const cosmosDBTrigger: AzureFunction = async function( context: Context, documents: Tweet[] ): Promise<void> { if (!!documents && documents.length > 0) { context.log("Document: ", documents[0].tweetText); } context.bindings.signalRMessages = [ { target: "newMessage", arguments: [documents] } ]; };
  5. キーテクノロジー: Cosmos DB A globally distributed, massively scalable, multi-model database

    service. 主な特⻑ サーバーレス - No infrastructure or VM management グローバル分散 - Turnkey geo-replication マルチモデル, マルチ API ストレージとスループットをエラスティックにスケール可能 99th パーセンタイル内に 10ms 以下のレイテンシーを保証
  6. Azure Functions CosmosDB Trigger Cosmos DB のデータ変更によって Azure Functions が発⽕する

    Cosmos DB Trigger が Change Feed Processor ライブラリを利⽤(ラッピング) 複数の Change Feed を独⽴して配置可能 クロスパーテーションでデータにアクセスしたい場合に便利
  7. signalr.js によるリアルタイム更新の実装 created: async function(): Promise<void> { console.log("VUE_APP_HOST: ", process.env.VUE_APP_HOST);

    // SignalR とコネクションを作成 const connection = new HubConnectionBuilder() .withUrl(this.baseUrl) .configureLogging(LogLevel.Information) .build(); console.log("connecting..."); // SignalR Service への接続 connection .start() .then(() => console.log("connected!")) .catch(console.error); // SignalR からの呼び出し connection.on("newMessage", (tweets: Tweet[]) => this.displayTweet(tweets)); // 切断 connection.onclose(() => console.log("disconnected")); }
  8. Azure Serverless の課題(個⼈的⾒解) フロントエンド SPA ベース Web アプリのデプロイ先が微妙 SPA にとって

    App Service はオーバースペック Static Website ホスティング機能がショボい Firebase や Netlify 相当の機能が求められる