標籤:
1. 概述
Windows Azure 是微軟的雲端運算平台。用於 在微軟資料中心 通過全域網路 產生、發布和管理應用程式。
本章內容包括 startup tasks 以及 實現 Start, Run 和 Stop 事件。
2. 主要內容
2.1 Windows Azure
① 提供 PaaS 和 IaaS 兩種服務。
PaaS 提供一個實際的計算平台,包括 作業系統、程式執行環境、資料庫 和 web伺服器。
IaaS 是提供虛擬機器。
② Windows Azure 有三種類型的解決方案:虛擬機器、web網站 和 雲端服務。
虛擬機器:使用方式類似本地的機器,可以進行開發測試和部署。
web網站:單純的web網站寄宿。可以方便的部署和運行ASP.NET MVC4網站。
雲端服務:直接的PaaS模式,是Windows Azure的初始發布模型。
2.2 Startup tasks
2.2.1 Windows Azure中有三種角色:Web、Worker 和 VM。
Web一般用於執行IIS。Worker一般用於執行中介層的程式。而VM角色可以完全的訪問虛擬機器。
2.2.2 通過 Startup tasks,可以 註冊COM組件、安裝組件或者設定註冊key。Startup tasks僅對Web和Worker角色可用。
Startup tasks 在 Task元素中定義,Task元素是 ServiceDefinition.csdef檔案中的Startup元素的一個節點。
一個標準的Startup tasks是一個命令列程式或者一個批次檔。
2.2.3 當一個角色啟動,Windows Azure中,後續的過程如下:
① 執行個體被標記為Starting,不再接收通知。
② Startup tasks 根據taskType屬性開始執行。。(簡單任務以同步方式,後台和前台任務以非同步方式。)
③ 角色寄宿過程啟動,網站在iis中被建立。
④ 調用 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.OnStart 方法。
⑤ 執行個體被標記為Reader並開始接收通知。
⑥ 調用 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.Run 方法。
2.2.4 AppCmd.exe命令列工具用於在Windows Azure中,啟動時管理IIS設定。
2.2.5 Startup tasks 可以被執行多次。忘記配置AppCmd.exe工具會導致執行階段錯誤。
2.2.6 可以把一個任務標記為後台執行。
<Startup> <Task commandLine="Startup\ExecWithRetries.exe "/c:Startup\AzureEnableWarmup.cmd" /d:5000 /r:20 /rd:5000 >> c:\enablewarmup.cmd.log 2>>&1" executionContext="elevated" taskType="background" /> </Startup>
2.2.7 Windows Azure 虛擬機器是無狀態的。
2.3 實現 Start, Run 和 Stop 事件
OnStart 方法和 Startup tasks有許多概念上的相似點:
① 有相同的逾時機制。
② 角色被回收時都會被再次執行。
③ 都可以配置先於角色處理。
OnStart 方法和 Startup tasks 的不同之處包括:
① 未完待續。。。
第三章 設計程式架構 之 設計實現Windows Azure 角色生命週期