[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 的资讯。