バックエンドサービスに日の目を当てて愛でましょう...

46
バックエンドサービスに日の目を 当てて愛でましょう ~メディアサービス&HDInsight編~ 201397#jazug @statemachine @normalian

Upload: normalian

Post on 12-Nov-2014

1.026 views

Category:

Technology


0 download

DESCRIPTION

バックエンドサービス系の紹介

TRANSCRIPT

Page 1: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

バックエンドサービスに日の目を 当てて愛でましょう

~メディアサービス&HDInsight編~

2013年9月7日

#jazug

@statemachine & @normalian

Page 2: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

自己紹介

• 割と普通 ( @normalian )

– 社蓄★戦士(キリッ

– Windows Azure と ASP.NET とか得意です

– JavaEE5 とか JavaEE6 とかも得意です

– Microsoft MVP for Windows Azure 2010~

2

Page 3: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

自己紹介

• @statemachine

– 脱社蓄(キリッ

– 今の仕事は、ルンバ監視員?!

3

Page 4: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

4

はじめに

メディアサービスとは

HDInsight とは

まとめ

Page 5: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

今回注目するサービス

Windows Azure メディアサービス

HDInsight

Page 6: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

その他のバックエンドサービス

• TRAFFIC MANAGER

– データセンタ間でトラフィックを割り振る

• サービスバス

– 通知ハブを利用したモバイルデバイスのプッシュ通知

• 復旧サービス

– オフラインも含めたバックアップサービス

• BIZTALK SERVICE

– BtoB 向けエンタープライズサービスの構築

等々、他にも色々と

Page 7: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

7

はじめに

メディアサービスとは

HDInsight とは

まとめ

Page 8: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

8

メディアサービスの概要

管理ポータルの利用

アプリケーションの開発

Page 9: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

メディアサービスの全体像

9

http://www.microsoft.com/en-us/download/details.aspx?id=38195

Page 10: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

様々なデバイスに配信可能

3G 等の低速回線

ブロードバンド回線

低画質

高画質

DP 向け

Smooth Streaming

HTTP Live Streaming

ブロードバンド回線

開発者

Windows Azure メディアサービス

… 配信制御

DP … Dynamic Package

元動画

一つの動画ファイルで複数形式で配信可

アップロード

Page 11: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

11

管理ポータルの利用

① アップロード

② エンコード

③ 配信制御

④ スケールアウト

Page 12: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

①アップロード

12

• ローカル or ストレージ(BLOB) から動画ファイルをアップロード可能

Page 13: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

②エンコード(1/2)

• H264 形式の様々な動画ファイルをエンコード可能

13

大容量回線向け動画

Smooth Streaming 向け動画

Dynamic Package 向け

iOS 向け

※注 WebM、Ogg 形式はエンコーディングできない

Page 14: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

②エンコード(2/2)

• [ジョブ] タブから、動画ファイルのエンコード進捗を確認

14

ジョブの進捗状況

Page 15: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

③配信制御

15

• ストリーミング形式動画

⁃ http://[メディアサービスアカウント名].origin.mediaservices.windows.net/<中略>.ism/Manifest

• 非ストリーミング形式動画

⁃ https://[ストレージサービスアカウント名].blob.core.windows.net/asset-<中略>

[発行] ボタンで動画を公開

Page 16: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

④スケールアウト(1/2)

• その 1 :「エンコード」のリソースを制御

16

Page 17: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

④スケールアウト(2/2)

• その 2 :「ストリーム配信」のリソースを制御

17

Page 18: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

18

アプリケーションの開発

① NuGet での SDK 取得

② コマンドラインの利用

Page 19: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

19

① NuGet での SDK 取得

• [NuGet パッケージ管理] から検索

「Media Service」で検索

※注 .NET Framework、Java 向けの SDK のみ提供

Page 20: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

• 利用可能な PowerShell コマンド

• PowerShell の構文例

② コマンドラインの利用

20

PS C:¥> New-AzureMediaServicesAccount -Name "mymediademo“ -StorageAccountName "trifonov1“ -Location "West US"

Page 21: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

21

ストアアプリでの動画再生demo ...

この辺を demo

Page 22: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

22

はじめに

メディアサービスとは

HDInsight とは

まとめ

Page 23: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

23

HDInsight の概要

管理ポータルの利用

アプリケーションの開発

Page 24: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

HDInsight の概要

• Windows Azure 上でビックデータを扱う機能を提供

• Hive, Pig 等のコンポーネントを構築する手間を軽減

• クラスタ構築の管理の手間を軽減

※注 現在は Preview 中のため、アメリカ合衆国西部 or 北ヨーロッパでのみ利用可能

Hadoop コア部分

Hive, Pig 等の大規模データを取り扱うためのコンポーネント群

Page 25: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

25

管理ポータルの利用

① サービスの作成

② リモートデスクトップの接続が可能

③ 管理サイト

ご利用のその前に、 プレビュー申し込みが必要 Try it now!!

Page 26: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

サービスの作成(1/2)

• 4 ノード~ 32 ノードを設定可能

• アメリカ合衆国西部 、北ヨーロッパでのみ利用可能

VMサイズ固定 ヘッドノード XL × 1 データノード L × n

Page 27: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

サービスの作成(2/2)

• HDInsight アカウントと同一のデータセンタのストレージサービスをアタッチする

Page 28: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

リモートデスクトップの接続が可能

Hadoop コマンドの実行が可能

ノードの状態を閲覧可能

pig, hive, sqoop がインストール済

Page 29: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

管理サイト

サンプル実行、リモートデスクトップ、モニタリング等の細かな処理が可能

Page 30: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

30

アプリケーションの開発

① HDInsight Server (Azureと同じ環境が試せる)

② NuGet での SDK 取得

③ C# でかける M/R

Page 31: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

HDInsight Server

• Web PI でインストール可能 ただし 64bitのみ。Windows上で簡単に Hadoop環境を構築できる

Page 32: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

.NET SDK for Hadoop

• http://hadoopsdk.codeplex.com/

Page 33: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

33

NuGet での SDK 取得 • install-package Microsoft.Hadoop.MapReduce

• install-package Microsoft.Hadoop.Hive

• install-package Microsoft.Hadoop.WebClient

• install-package Microsoft.WindowsAzure.Management.HDInsight

• install-package Microsoft.Hadoop.Avro

Page 34: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

34

C# でかける M/R • Map / Reduce public class Mapper : MapperBase { private char[] delimiterChars = {' ', ',', '.', ':', ';', '¥'','¥t'}; public override void Map(string inputLine, MapperContext context) { var words = inputLine.Split(delimiterChars); foreach (var word in words) { if (!string.IsNullOrEmpty(word)) { context.EmitKeyValue(word, "1"); } } } }

public class Reducer : ReducerCombinerBase { public override void Reduce(string key, IEnumerable<string> values, ReducerCombinerContext context) { context.EmitKeyValue(key, values.Count().ToString()); } }

Page 35: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

実行方法 • StreamingUnit Hadoopサービス外で実行

• HDInsight Server (localhost)上で実行

var outputData = StreamingUnit.Execute<Mapper, Reducer>(File.ReadAllLines(name));

static void Run() { var hadoop = Hadoop.Connect(); hadoop.MapReduceJob.ExecuteJob<MyJob>(); } public class MyJob : HadoopJob<Mapper, Reducer> { public override HadoopJobConfiguration Configure(ExecutorContext context) { var config = new HadoopJobConfiguration { InputPath = "input/wc/aristotle-history-78.txt", OutputFolder = "output/wc" }; return config; } }

Page 36: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

• Windows Azure HDInsight

Uri azureCluster = new Uri("https://pnopcluster.azurehdinsight.net:563"); var clusterUserName = "admin"; var clusterPassword = "Hello123!!"; var hadoopUserName = "Hadoop"; var azureStorageAccount = "pnopclusterstorage.blob.core.windows.net"; var azureStorageKey = "ストレージキー";

var azureStorageContainer = "pnopcluster"; bool createContinerIfNotExist = true; var hadoop = Hadoop.Connect(azureCluster, clusterUserName, hadoopUserName, clusterPassword, azureStorageAccount, azureStorageKey, azureStorageContainer, createContinerIfNotExist); hadoop.MapReduceJob.ExecuteJob<MyJob>();

実行方法

ターゲットプラットフォーム は、x64で

Page 37: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

37

サンプル実行の demo ...

Page 38: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

実行例

Page 39: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

実行結果

Page 40: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

40

サンプル実行の demo ...

Page 41: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

実行例

Page 42: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

実行結果

Page 43: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

43

はじめに

メディアサービスとは

管理ポータルからの利用

ソースコードからの利用

まとめ

Page 44: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

44

まとめ

• メディアサービス

– 管理ポータルで操作概要をつかみましょう

– .NET SDK、Java SDK を利用した開発が可能

– 動的エンコーディングが便利

• HDInsight

– Windows 版 Hadoop + α、Windows Azure 上でのビックデータを解析する機能提供している

– 素の Hadoop を利用するより大分便利

– もちろん C# での開発も可能

Page 45: バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~

45

参考 – メディアサービス

• Demo – how to create HLS and Smooth Streaming assets using dynamic packaging http://mingfeiy.com/demo-how-to-create-hls-and-smooth-streaming-assets-using-dynamic-packaging/

• How to use Windows Azure PowerShell for Media Services http://www.gtrifonov.com/2013/08/24/how-to-use-windows-azure-powershell-for-media-services/