19
#azurej p #azurej p 2017 年年年年年年年年年年年年年年年年年年年 WebApps / Event Hubs / Stream Analytics / Data Lake & Functions Microsoft Japan Developer Experience and Evangelism Tatsuro Hisamori

2017年のサーバレスアーキテクチャを考える - WebApps/Event Hubs/Stream Analytics/Data Lake & Functions

Embed Size (px)

Citation preview

#azurejp#azurejp

#azurejpWeb サーバ周り

Web データベースキャッシュ

ログ / イベントデータフロー

ログ保管ログ分析

#azurejp#azurejp

#azurejpAzure WebApps on Linux?• Docker コンテナを投げ込んで運用を MS に押し付けられ

る PaaS• Docker Hub を始め、各種リポジトリ対応

• ベースは Windows ではなく Linux• オートスケール、 Blue-Green など運用系機能のサポート ( 順次

追加• ベースは Windows ではなく Linux

• Docker コンテナを投げ込める Linux の PaaS• ※ ただし現在は Preview 、 GA は今年の早いうちに予定

#azurejpデータベース / キャッシュ周り

Web データベースキャッシュ

ログ / イベントデータフロー

ログ保管ログ分析

#azurejpAzure Document DB / Redis Cache• Document DB

• フルマネージド MongoDB と思えば OK• JSON ドキュメントストア

• Redis Cache• フルマネージド Redis Cluster• リシャードによる増強 / 縮退が可能

#azurejpログ / ストリームデータ処理系

Web データベースキャッシュ

ログ / イベントデータフロー

ログ保管ログ分析

#azurejp#azurejp

#azurejp2017 年に向けて改めて考えたい構成• ラムダアーキテクチャ• ログはずっと Ingest し続けたいし、データは任意に処理し

たい

#azurejpデータ処理フローの中でうまいことやりたい• Client -> Event Hubs -> {Functions, Stream Analytics}

-> 外部

#azurejpEvent Hubs / Stream AnalyticsEvent Hubs : スケールするフルマネージドのメッセージブローカーStream Analytics : SQL でデータストリームをホゲホゲしたい

Event Hubs から入ってくるデータストリームを SQL で処理

処理したデータを Event Hubs に戻したり他のデータストアに送る

Point of Service Devices

Self CheckoutStations

Kiosks

Smart Phones

Slates/Tablets

PCs/Laptops

Servers

Digital Signs

DiagnosticEquipmentRemote Medical

MonitorsLogic

Controllers

SpecializedDevicesThin

Clients

Handhelds

Security

POS Terminals

AutomationDevices

VendingMachines

Kinect

ATM

#azurejpタイムウインドウベースの処理• 例:重複しない固定化された時間間隔で集計 (Duration の値を指定 )

SELECT system.timestamp AS OutTime , deviceId AS deviceId, AVG (windSpeed) AS Avg_windSpeed , COUNT (*) AS Cnt_Event

INTO [powerbi-output] FROM [iothub-input]

GROUP BY deviceId,TumblingWindow(Duration(minute,5))

#azurejpData Lake Store• WebHDFS でアクセスでき、ストレージ容量の上限がな

いサービス

Map reduceHbase

トランザクション

HDFS アプリケーションHive クエリ

Azure HDInsight

Hadoop WebHDFS クライアントHadoop WebHDFS クライアント

WebHDFS エンドポイント WebHDFS

REST APIWebHDFSREST API

ADL Store file ADL Store file ADL Store file ADL Store fileADL Store file

Azure Data Lake Store

#azurejp

REFERENCE ASSEMBLY WebLogExtASM;@rs = EXTRACT UserID string, Start DateTime, End DateTime, Region string, SitesVisited string, PagesVisited string FROM "swebhdfs://Logs/WebLogRecords.csv" USING WebLogExtractor ();

@result = SELECT UserID, (End.Subtract(Start)).TotalSeconds AS Duration FROM @rs ORDER BY Duration DESC FETCH 10;OUTPUT @result TO "swebhdfs://Logs/Results/top10.txt"USING Outputter.Tsv();

•型定義は C# の型定義と同じ•データをファイルから抽出・読み込みするときに、スキーマが必要

Data Lake Store のファイル独自形式を解析するカスタム

関数

C# の関数

行セット

TSV 形式で読み取る関数

#azurejp#azurejp

#azurejpFunctions のプログラミング コンセプト

トリガー 入力

出力コード

#azurejpサポート言語• メインサポート

• node.js / JavaScript• C# (.NET Compiler Platform Scripting API )

• Experimental サポート• F# (プレビュー)• Python• PHP• Batch• Bash• PowerShell

#azurejp試したい方• https://functions.azure.com/try• ここでアカウント不要の検証環境取得できます (60 分間 )• Google/Facebook アカウントで OK

#azurejp

YouMicrosoft© 2017 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。