asp.net on windows azure cloud service (updated)

37
#GlobalWindowsAzure

Upload: jeff-chu

Post on 15-Jan-2015

571 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Page 2: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

實戰 ASP.NET 雲端服務小朱

Windows Azure MVP

MCSD: Web Applications

studyazure.com 雲端學堂

Page 3: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Global bootcamp?• 全球超過 60 個地方在同一天同時舉行。

或許可能是目前全球最大的社群活動

Page 4: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

全球合作夥伴

Page 5: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

全球研討會支援• http://globalwindowsazure.azurewebsites.net• 主題專家聊天室 https://jabbr.net/#/

rooms/GlobalWindowsAzure

Page 6: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

大綱• Windows Azure 生態系統• 雲端服務介紹• 更新與高可用域• 實作: Hello World (Web Role)• 實作: MVC Self-hosting (Worker Role)• 在 Web Application 間共用 Session• 實作:在 Web Application 間共用 Session

Page 7: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

ManagementComplexity

Windows Azure 生態系統

Web Sites

Cloud Services Virtual Machines

Control

素材庫

SPA

社群 N-Tier

分享

LOB

Web API 特定功能

傳統平台

混合平台

快取 存取控制

服務匯流排 CDN

流量管理員

高效能運算 儲存

本地環境

MediaServices

SQL Database

Flexibility

Hello World! .

Mobile Service

SQLReporting

Add-On

Page 8: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

雲端服務介紹

Page 9: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

為何使用雲端服務 ?

建立具無限擴展能力的應用程式與服務。

支援更豐富的多層應用程式。

自動化應用程式管理。

Page 10: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

何謂雲端服務

相關服務角色的集合

Web Role Worker Role

Page 11: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

能執行什麼 ?

Page 12: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzureWeb Role

所有 Worker Role 提供的功能 + IIS 7, 7.5 或 IIS 8.0*ASP.NET 3.5 SP1, 4.0 或 4.5* – 64bit可掛載Webforms 或 MVCFastCGI 應用程式 (e.g. PHP)多重網站

Http(s)Web/Worker 混合可選擇性的實作 RoleEntryPoint

*for Windows Server 2012

Page 13: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzureWorker Role 模式

佇列輪詢程式在 while(true) 迴圈中,輪詢與取出訊息進行處理。E.g. Map/Reduce 模式,背景影像處理。

聆聽程式建立 TcpListener/WCF Service Hosting/ASP.NET Web API Self-host.E.g. 執行 .NET SMTP Server 或 WCF Service 。

啟動外部行程於 OnStart 或 Run 方法執行 Process.Start()使用 Startup Task 安裝或執行外部程式。自訂角色進入點 ( 執行檔或 .Net 組件 )E.g. 執行 Database Server, Web Server 或是分散式快取伺服器。

Page 14: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure角色生命週期所有角色都可以繼承自 RoleEntryPoint角色透過 RoleEnvironment 回報狀態

StatusCheck

StatusCheck

StatusCheck

Stopping

METHODS EVENTS STATUS

Page 15: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure角色與執行個體

在執行期,角色會執行在一個或多個執行個體內 角色執行個體是由程式碼,組態檔與本地資料的集合,且部署在專屬的 VM 。

角色是定義在 Hosted 服務內一個角色的定義會指定 :VM 大小通訊終端點本地儲存資源etc.

Page 16: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

角色與執行個體

雲端服務Web Roles Worker Roles

Web_instance_0

Web_instance_1

Worker_instance_2

Worker_instance_1

Worker_instance_0

Page 17: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure失效領域 (Fault Domain)

99.95% 的上線保證每個角色都必須要有兩個以上的執行個體。

角色執行個體會以 Fault Domain來隔離失效領域隔離虛擬機器失效領域提供贅餘能力每個角色至少要兩個失效領域

Page 18: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure角色與執行個體示範:在三個 Fault Domain 中有九台虛擬機器

ROLE

VM1 VM3

VM5 VM8

VM2 VM4

VM6 VM9

VM6 VM9

Page 19: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure更新領域

Page 20: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

建立雲端服務Lab Exercise 1-1

Page 21: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

部署雲端服務

Page 22: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure了解封裝與組態Windows Azure 服務由下列兩種組態描述 :服務定義檔 (*.csdef)服務組態檔 (*.cscfg)

您的程式碼會與組態定義封裝在一起 (*.cspkg)Encrypted(Zipped(Code + *.csdef)) == *.cspkg

Windows Azure 只使用 (*.cspkg + *.cscfg)

Page 23: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Startup tasks安裝軟體與功能組態主機 (host) 環境啟動行程

遠端桌面支援需要憑證以啟用遠端存取支援

終端點公開終端點內部終端點執行個體輸入終端點

執行期設定

Page 24: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

上傳到 Windows Azure

封裝與部署Microsoft

Visual Studio

Web Role

Worker Role

Page 25: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

應用程式升級策略轉置 (staging) vs. 生產 (production)轉置環境適用於測試與驗證 ; 利用 VIP 交換來提升到生產環境。

即地更新以新的部署來取代原有的部署。

Page 26: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Role Instance

Windows Azure 診斷功能角色執行個體啟動診斷監控程式啟動監控程式設定完成在啟動時命令在任何時間於遠端進行組態會儲存在儲存區內。

監控程式將資料暫存在本地使用者可設定上限 (FIFO)

使用者初始化資料由本地到儲存區的傳輸排程 (Schedule)依需 (On Demand)

Page 27: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

部署雲端服務Lab Exercise 1-2

Page 28: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

在 Worker Role 中掛載 ASP.NET Web API Self-hosting Service

Lab Exercise 2

Page 29: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Session 的處理

Page 30: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure無狀態負載平衡器是以 round-robins 的方式在多個執行個體間傳送要求

下列為 Web Farm 的最佳實務作法不要在個別執行個體中儲存狀態 不要認為下一次的要求會在相同的執行個體中處理不要忘記像動態產生的影像是由網頁載入的事情

Page 31: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Windows Azure Session State

Windows Azure 負載平衡器使用 RR 配置, Session State 必須儲存在用戶端或是每個要求都讀得到的儲存區內。

LBsession[“foo”] = 1; session[“foo”] = 2;

session[“foo”] 的值是 ?

SQL

DatabaseWindows

Azure Storage

Page 32: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure處理 Session State

透過 Session State Provider 儲存 SessionWindows Azure CachingSQL AzureWindows Azure Storage

儲存到用戶端cookies

別忘記 ASP.NET MVC 的 TempData 是使用 Session State Provider 來儲存資料。

Page 33: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

在 Web 應用程式中共享 Session

Lab Exercise 3

Page 35: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

MSDN Windows Azure 線上資源Windows Azure 實作手冊:http://msdn.microsoft.com/zh-tw/jj590639Windows Azure 教學影片:http://msdn.microsoft.com/zh-tw/jj573849 Windows Azure Developer Center :http://www.windowsazure.com/en-us/documentation/

Page 36: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

Windows Azure 資源

Free Trial Link: http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=WWE001_1032548834

MSDN Subscription Offer: https://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/?WT.mc_id=WWE001_1032548834

BizSpark Offer: https://www.windowsazure.com/en-us/pricing/member-offers/bizspark-benefits/?WT.mc_id=WWE001_1032548834

MPN Offer: https://www.windowsazure.com/en-us/offers/ms-azr-0002p/?WT.mc_id=WWE001_1032548834

Page 37: Asp.net on windows azure cloud service (updated)

#GlobalWindowsAzure

2013/5/4 10:00-16:00張榮發基金會

國際會議中心 10F

微軟實戰課程日獨立專家,實用解答