講師:スティーブ・マークス
このセッションに関して私がtsudaった内容のまとめです。
また、セッション資料は後日一般向けにも公開されるようです。
PDC09以降Azureでの変更点特にWorker Roleの役割の大きな変更似合わせ、今のAzureアプリケーションの作成方法、アーキテクチャーに関するナイスな解説でした。
- T1-301 は事前スライドなしか。がんばってつぶやく posted at 13:10:28
- Azure上で動作しているPort 25を開いているサービスに送信するデモ。 Telnetでの送信デモ #T1-301 #techdaysj posted at 13:15:00
- ロールアーキテクチャ #T1-301 #techdaysj posted at 13:15:44
- WEBアーキテクチャ ASP.NET MVC SMTP(TCPListner) Search Lucene.NET でデモをしている #T1-301 #techdaysj posted at 13:16:41
- Azure の新機能も使用 インターロールコミュニケーション 非HTTPエンドポイント ロールインスタンスライフサイクル VMサイズ ローカルストレージ #T1-301 #techdaysj posted at 13:17:46
- Azureのアプリケーションモデリング 箱と矢印で書く 箱はサービス(ロール) サービスの参照方向が矢印。これから始めてみる #T1-301 #techdaysj posted at 13:19:44
- どのロールがインターネットを向いているのか、Azureの中だけを向いているのか、外部はHTTPなのか、他のプロトコルなのか、なんで作るのかを考え、WEBロールを決定していく #T1-301 #techdaysj posted at 13:21:18
- 入力エンドポイント 同一ドメイン上の異なるポート 常に付加分散される Service.Definition.csdefで定義。WEBロールのIISで処理。Workerロールであれば自分でどのようなプロトコルでも実装できる。 #T1-301 #techdaysj posted at 13:24:12
- 入力エンドポイントのデモ #T1-301 #techdaysj posted at 13:24:35
- 外に開かれているポートと実際にアプリケーションがListenするポートは違うので、APIでListenするポートを確認する必要がある #T1-301 #techdaysj posted at 13:28:41
- スパマーがAzureを使う可能性がある。BlackListにAzureのIPアドレスが載ってしまう可能性がある リレーによるメール送信がおすすめ(Hotmailtとか) 受信は問題がない #T1-301 #techdaysj posted at 13:30:34
- Search Lucene.NET 人気のある検索API C#の実装 データのインデクシングの機能 検索の提供(WCF) #T1-301 #techdaysj posted at 13:32:30
- キューを使用しない非同期処理 テーブルを使った非同期の処理 セカンダリインデックスの構築 オーダー参照 (クロックドリフトに注意)要は常にテーブルに検索をかけ、変化を確認し、変化に応じた処理をする。 #T1-301 #techdaysj posted at 13:36:40
- インスタンス間で時刻がちゃんと同期されていないので、時刻をキーにせず数字で代用するなどする必要がある (クロックドリフト) #T1-301 #techdaysj posted at 13:37:28
- 初期化 listenするまで受信できない ロールインスタンスライフサイクルを使う OnStart() Run()#T1-301 #techdaysj posted at 13:38:32
- OnStop() のイベントが発生する #T1-301 #techdaysj posted at 13:38:54
- OnStart() で必要な初期化を行いポートを開く準備をする。 Run() 通常の状態 ここでPortを開き通常の動作を行う OnStop() では停止を安全に行うためにリソースをスイープする #T1-301 #techdaysj posted at 13:40:29
- 内部エンドポイント システム内部で使われるエンドポイント Service.Definistion.csdefでエンドポイントを定義 WorkerRoleと同様にAPIでlistenするポートを確認する必要がある。#T1-301 #techdaysj posted at 13:42:02
- ポートはAzureのシステムがランダムに決定する 相手先についてはAPIにてすべてのロールのIPアドレスを取得することができる #T1-301 #techdaysj posted at 13:42:57
- Searchのデモ中 #T1-301 #techdaysj posted at 13:43:53
- 内部エンドポイントのインスタンスはロードバランサーがないので使う側が自分で相手先を選択する必要がある #T1-301 #techdaysj posted at 13:46:37
- デモのコードって後で公開されるんだろうか #T1-301 #techdaysj posted at 13:47:09
- RAMの追加 RAMDirectoryはすべてをメモリに置くストレージ 多くのメモリがいるのでVMサイズを選択する #T1-301 #techdaysj posted at 13:50:05
- Smallで2GB Extra Largeで16GB 設定ファイルで定義できる #T1-301 #techdaysj posted at 13:50:46
- インデックスの保存 オンメモリのインデックスはOnStop()で保存 設定ファイルに設定を書くときにローカルストレージに保存するように設定できる。ただし、必ず保存される保証はない。 保証がほしいならAzure Storageを使用する #T1-301 #techdaysj posted at 13:52:59
- サイドバイサイドアップグレード バージョン1とバージョン2でIPアドレスをスワップする(つまり元に戻せる) #T1-301 #techdaysj posted at 13:57:24
- インプレースアップグレード(ローリングアップグレード) どのロールをアップグレードするかの特定。(全体をSWAPしなくて良い) ローカルストレージデータの維持。ステートフルなロールに最適 #T1-301 #techdaysj posted at 13:59:19
- まとめ中 #T1-301 #techdaysj posted at 14:03:30
- とりあえずここでのつぶやき終わりです #T1-301 #techdaysj posted at 14:04:47
コメント