[Build 2015] Azure 本質的提升:Service Fabric 與 VM Scale Set

Build 2015 第一天的議程中,由微軟 Azure 的技術長 Mark Russinovich 所主講的 Azure's Next Generation Compute Platform 題目中,他勾勒了未來 Azure 的下一代基礎建設。

Build 2015 第一天的議程中,由微軟 Azure 的技術長 Mark Russinovich 所主講的 Azure's Next Generation Compute Platform 題目中,他勾勒了未來 Azure 的下一代基礎建設,包含你我所熟知的 VM 以及 Cloud Service,這些統稱為 Compute Contimuum,不同的 Compute 會在不同的階層中扮演它應該扮演的角色,而它也和我經常在課堂中講的控制權是相輔相成的,你要高度控制 (Ultimate Control) 就要選偏 Infrastructure 的服務;要快速開發 (Rapid Development) 就要選偏 Platform 的服務,當然有時會有不上不下的時候,這時可利用擴充的作法來加強。

image

在 Azure 運算能力的藍圖中,你可以找到各式各樣的服務,像是 Infrastructure 有 VM/VM Scale Sets,中間層不上不下的有 Service Fabric,Platform 則是有 App Services 能夠選用,所以 Azure 可滿足在雲端世代各類型應用所需要的運算資源,使用者也能自己決定要用什麼。

image

在這裡面我很感興趣的有兩個部份,一個是 VM Scale Sets,另一個是 Service Fabric。

VM Scale Sets 是一個類似於範本化的 VM 組態,可在短時間內自動產生多個同一種組態的 VM,而且也支援 elastic autoscale 能力,它可同時支援 Windows 和 Linux 作業系統,使用者也可利用更新 VM 的 OS (例如 4.01->4.02) 來修補一些安全漏洞,它本身已經是考慮了 Cluster 架構的服務,我覺得它有可能會用在 Docker 的 Package,結合 Nano Server 或 Windows Server Container 等技術,降低 IT 人員在處理 VM Scale 上的負荷。

另一個是 Service Fabric,我想這應該就是傳說中的 Cloud Service V2 的正名,但看起來它卻也有 Container/Package 的樣子,開發人員可以盡情的開發應用程式 (Microservices),並且決定要使用 Stateful 還是 Stateless 的環境,只是開發人員只要做 "決定" 就好,像是 Stateful 的 Microservices 會自動保留狀態,Stateless 則不會,這些都會在它的內部機制處理掉。

image

Microservices 也可以作為處理的節點,整合 Stream Analytics 進行資料流處理,或是與其他節點互動,每一個節點稱為 Actor,Actor 之間可以合作與整合,中間的訊息流動則是由 Service Fabric 做掉,開發人員只要專心在處理 Actor 要處理的事情即可,其他的雜事由 Service Fabric 一手包。

Service Fabric 橫跨了 Azure 和 Private Cloud,開發人員只需要面對 Reliable Servies API 以及 Reliable Actor API 兩個部份,以及實作自己的功能就好了。

image

而且重點是,Service Fabric 早已用在 Azure 的很多服務內,包含你我所熟知的 SQL Database, DocumentDB, Event Hubs, Service Bus, Intune, 甚至是 Bing Cortana 都是,所以它是一個經過相當時間歷煉的基礎建設。

image

可參考 http://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview/ 以得到更多的 Service Fabric 的資訊。