遥想2008年pdc大会上,时任微软首席软件架构师的ray ozzie首次公布windows azure之时,恐怕没人能够预想这套软件平台给微软公司乃至整个行业带来的深远影响。
ray ozzie,可以说是通过网络实现软件交付这一创新模式的最早、也最著名的倡导者之一。这种创新模式,后来有了一个更为人所熟知的名称——软件即服务(saas)。
在他2005年10月28日发表的著名微软内部备忘录当中,ozzie对自己的构想做出全面阐述——他希望构建起一套颠覆性平台,立足互联网重现微软windows操作系统、.net应用程序服务以及微软office套件等已经获得巨大成功的设计成果。虽然当时看似无稽之谈,但如今的azure iaas、azure paas以及office 365正是他伟大构想的直接造物。
微软前任ceo steve ballmer最初曾对这种软件即服务的新范式表示坚定的反对态度,他担心这种作法会严重挤压windows与office等微软固有优势业务的生存空间。这样的思路也可以理解,毕竟当时微软高达八成的运营收入依靠windows与office两大业务支撑而起。但最终,ballmer不仅被说服,同时也向广大微软同仁发出“全力以赴”的呼吁,号召全体员工共同推动微软转型成为一家成熟的云计算厂商。
作为ballmer的继任者,satya nadella在接掌微软公司执行长职位之后,着手围绕移动优先与云优先战略为软件巨头设定了新的发展方向。云优先战略要求微软各内部产品团队与外部合作伙伴在向企业客户推销产品时,优先介绍azure云平台。现在回头来看,这一战略显然发挥了令人满意的效果。
从最初单纯将windows操作系统迁移到互联网之上的基本思路,到最终帮助微软赢下人人垂涎的jedi合作协议,azure无疑经历了漫长的起步与发展周期。如今,微软azure已经成为最具可靠性的企业级云平台之一,也开始在各个方面给amazon web services这位老对手施加巨大的竞争压力。
微软azure于2010年2月1日起全面上线。转眼之间,azure社区与合作伙伴生态系统已经在为上线十周年庆贺,我们自然有理由从头梳理微软云平台的发展道路,同时回顾期间迎来的一个个重大里程碑。
2008年至2011年:red dog与面向互联网的windows操作系统
azure的最初代号为“red dog”,这只“红狗”的原始设计思路单纯是立足云端构建windows nt扩展方案。曾负责windows nt开发的微软公司杰出工程师dave cutler执掌帅印,他的任务是设计出一种新型操作系统,借以充当微软云体系的系统基础。windows azure由此而生,后又被更名为微软azure。
windows azure的基本定位,相当于amazon ec2以及google app engine的直接竞争对手。顺带一提,amazon ec2是亚马逊公司打造的基础设施即服务(iaas),当时虽然尚处于测试阶段,但已经开始引起众多开发人员的关注。而2008年发布的google app engine则是业界首款平台即服务(paas)产品。考虑到自身在开发者平台与工具领域的深厚历史底蕴,微软方面决定将azure也打造为paas产品。
windows azure的首个版本只包含为数不多的几项服务,但这些服务已然构成了这套平台的四大支柱。首先是计算服务,其中包含web角色与worker角色组件。开发人员能够以web角色为基础打包并运行各类asp.net web应用程序与api;在另一方面,worker角色则专为长时间运行的进程设计,且不提供ui界面。接下来是足以与amazon s3相媲美的azure blob存储服务,作为windows azure的第二大支柱,其带来出色的持久性与运行稳定性表现。第三大支柱是sql azure数据库服务,其使用感受与微软sql server高度相似,旨在降低企业客户的上手难度。第四大支柱是azure service bus,一套衍生自biztalk server的消息总线方案。
即使是在2010年全面上线之时,windows azure对于企业客户来说仍是一套不太友好的云平台选项。事实上,当时的windows azure仍单纯面向构建特定web应用程序的小众开发者社群,而很难在企业级市场上得到广泛普及。
2012年至2014年:迎接开源浪潮与iaas转型
amazon ec2于2008年实现了全面可用,此时的微软windows server vm也开始提供测试版本。客户可以通过自有桌面远程接入ec2实例,并自由安装自己打算使用的软件。此外,amazon elastic block store(ebs)的出炉则帮助更多用户在ec2云实例内轻松运行各类传统windows软件。
这段时期内兴起的另一大重要趋势,在于开源软件的广泛使用。由于linux vm成本更低廉,而且提供表现稳定的apache、php以及mysql等开源软件包,因此越来越多的开发人员开始转投开源阵营的怀抱。当时,canonical的ubuntu、红帽企业linux、suse以及亚马逊自己的linux版本开始成为云环境下最受欢迎的操作系统发行版。
开源软件的兴起加上amazon ec2的飞速发展,迫使微软方面开始重新审视自己的云计算设计思路。很明显,通过iaas形式交付的云服务更易于控制,而这种控制能力对客户而言非常重要。除此之外,开发者们还希望云平台能够带来更加开放的开源软件(特别是linux)支持能力。
面对这两大趋势的支,微软公司决定再次调整自身云发展战略——包括将windows azure更名为微软azure,同时在azure之上全面为linux的部署敞开方便之门。
时任开发者工具与平台集团副总裁的scott guthrie与windows系统部门技术研究员mark russinovich一道,共同对paas版本的windows azure进行了重构,最终成功打造出微软azure的iaas新形态。虽然说起来似乎轻描淡写,但其中的艰辛相信大家能够想见。scott与mark的工作相当于为一架庞大的客机进行空中加油——他们需要在维持原有windows azure api的兼容性与可编程性的同时,为其构建起基于iaas的全新模型。
2014年,微软公司开始与红帽、甲骨文、suse以及canonical等厂商紧密合作,推动azure发展成为最理想的linux系统运行环境。向来只顾自己的微软突然开窍了?这波操作令业界感到震惊不已。但无论看法如何,统计数字足以证明战略转型的结果:到2017年,azure上部署的全部虚拟机当中,有40%运行着linux系统。
2014年至2016年:投身大数据、分析与物联网浪潮
在经历了计算、存储与网络这三道云计算厂商必须跨过的关隘之后,数据又成了必须抓住的差异化优势核心。有鉴于此,亚马逊推出自己的emr,谷歌也上线了定位为云端数据仓库的bigquery。
微软这一次与正同cloudera展开激烈竞争的大数据初创企业hortonworks联手,共同开发出azure hdinsight——相当于微软云托管版本的apache hadoop服务。此外,微软还先后上线了azure data lake store以及azure data lake analytics,意在为azure提供属于自己的端到端大数据与分析平台。
2015年,微软收购了revolution analytics,并借此将极具人气的r语言引入azure数据平台。
意识到物联网在数据驱动型工作负载层面的重大意义,微软方面也着手开发托管型物联网服务。凭借一系列努力,azure最终成为少数具备事件中心、物联网中心、数据流分析、sql数据库以及power bi支持型端到端联网设备堆栈的公有云之一。
如今,微软更是成为唯一一家提供物联网核心构建单元(paas)以及白标多租户即用型物联网saas方案的厂商。这里提到的后一种物联网saas方案,被正式定名为azure iot central。
2016年至2018年:全力投资容器与kubernetes
过去几年以来,linux容器技术可谓席卷整个行业。作为一波最初由docker催生出的浪潮,容器化趋势带来一种以微服务模式为基础的全新应用程序开发与部署思路。
随后,kubernetes成为大规模容器与微服务场景的首选管理平台。作为kubernetes项目的缔造者,谷歌公司在将代码与治理权全面转交给云原生计算基金会(cncf)之前,已经正式上线了google kubernetes engine(gke)——世界上第一项云托管kubernetes服务。
2016年,微软方面聘请了kubernetes项目联合创始人之一、谷歌首席工程师brendan burns。brendan也很快证明了自己的价值,很快为azure提出了容器发展战略,并帮助微软启动了一套名为azure kubernetes serivec(aks)的托管kubernetes平台。
除了快速实现对windows容器的支持之外,微软还参与到不少其他创新项目当中,努力扩大着自己的技术影响力。其中包括virtual kubelet、kubernetes-based event-driven autoscaling、service mesh interface、open application model以及distributed application runtime (dapr)等等。
如今,微软与azure已经在容器乃至kubernetes开发者社区当中享有极高声誉。微软还与谷歌、aws、sap以及思科等公司一道,成为云原生计算基金会中的白金会员。
2018年至2020年:intelligent cloud与intelligent edge
微软公司很早就开始投身于机器学习(ml)以及人工智能(ai)的研发潮流。从语言理解到语音、视觉、研究以及翻译,微软的cognitive api涵盖了一家有追求的技术大厂所应涉猎的各个探索方向。
azure也凭借azure ml studio成为最早帮助可视化设计师训练并部署机器学习模型的公有云平台之一。尽管早期涉足开发者工具与ide市场的azure ml workbench中途夭折,但微软还是通过持续探索,在azure ml services身上扳回一城。作为一套完善的解决方案,该服务支持尝试学习模型、英伟达gpu、英特尔fpga、增强流水线、mlops等等,甚至允许用户以拖拽式设计器完成神经网络的训练任务。
长期以来在数据库、大数据、物联网以及ai领域的投入,帮助微软公司构建起一套拥有极高ai集成度的端到端数据平台,进而推动微软旗下intelligent cloud(智能云)与intelligent edge(智能边缘)方案的发展普及。
微软也是首批大力投入边缘计算发展的企业之一,这样的前瞻性使软件巨头有机会将azure的功能延伸至“最后一英里”范围。azure iot edge与azure stack edge已经成为边缘场景下重要的计算、存储与分析负载实现基础。
微软公司还先后与英特尔、英伟达以及高通等企业合作,使得azure iot edge成为边缘ai模型的最佳加速平台。
凭借着azure cognitive services、ml services的强大创新能力,ai与数据平台之间的深度集成,再加上azure iot edge以及azure stack的上线,satya当初提出的“智能云”加“智能边缘”正一步步转变为现实。
展望未来:azure arc——混合云的新基石
新的时代正拉开帷幕——如今,kubernetes在数据中心内的普及与多云环境投入,开始引领又一轮风潮。
kubernetes在企业内部环境中的采用正持续提升,意味着传统基础设施与现代基础设施将开始一段长期共存的旅程。此外,由于kubernetes几乎适用于一切公有云环境,因此开始成为多云以及混合云部署中的核心所在。
在意识到这波趋势之后,微软果然出阵以kubernetes的改进型混合云发展战略。与之对应的新平台被定名为azure arc,允许客户通过单一控制面板管理虚拟机、物理机以及由kubernetes负责管理的各类容器化工作负载。有趣的是,与aws outposts、google anthos、vmware tanzu、ibm multi-cloud manager以及red hat openshift等竞争对手不同,azure arc为各类传统与现代工作负载创造出一套公平的竞争环境——它允许用户在自有数据中心,甚至是其他竞争厂商的云平台当中,使用azure公有云提供的某些托管服务。
展望未来,azure arc将逐步发展成具备统一计算架构的多云加混合云平台。
当然,这里提到的仅仅是azure十年发展历程中的缩影,远远无法概括微软云平台一路走来的艰辛探索。在此期间,微软不单推出了cosmosdb、blockchain,多种备份、灾难恢复以及迁移工具,同时也收购了不少具备创新能力的初创企业,发布了影响力巨大的企业级案例研究资料,并一举拿下百亿美元企业联合国防基础设施订单。
已经拥有44年发展历史的微软再次证明,只要具备正确的战略、愿景与执行力,老牌厂商也完全能够在激烈的市场竞争中继续保持优势地位。更令人振奋的是,微软公司仍然年轻而灵活,凭借自主转变不断适应着迅速变化的市场动态与客户不。