云计算领域的发展与变革
萌芽时代 2008—2011
事实上,云计算行业的开端较难精准定义。一般认为,亚马逊 AWS 在 2006 年公开发布 S3 存储服务、SQS 消息队列及 EC2 虚拟机服务,正式宣告了现代云计算的到来。
而如果从行业视角来看,我们也不妨视 2008 年为另一个意义上的云计算元年。因为在这一年,当 AWS 证明了云是可行业务之后,越来越多的行业巨头和玩家注意到这块市场并开始入局:
◆微软在 PDC2008 上宣布 Windows Azure 的技术社区预览版,正式开始微软众多技术与服务托管化和线上化的尝试;
◆Google 恰好也在 2008 年推出了 Google App Engine 预览版本,通过专有 Web 框架允许开发者开发 Web 应用并部署在 Google 的基础设施之上,这是一种更偏向 PaaS 层面的云计算进入方式;
◆而众所周知,国内的云计算标杆阿里云也是从 2008 年开始筹办和起步——可见是从 2008 年起,云计算的时代大幕逐步拉开,开始形成一个真正的多元化市场,并随着众多巨头的加入开始良性竞争。
在云计算兴起之前,对于大多数企业而言,硬件的自行采购和 IDC 机房租用是主流的 IT 基础设施构建方式。除了服务器本身,机柜、带宽、交换机、网络配置、软件安装、虚拟化等底层诸多事项总体上需要相当专业的人士来负责,作调整时的反应周期也比较长——相信许多研发负责人都有过等待服务器到位的经历。
云的到来,突然给出了另一种高效许多的方式:只需轻点指尖或通过脚本即可让需求方自助搭建应用所需的软硬件环境,并且根据业务变化可随时按需扩展和按量计费,再加上云上许多开箱即用的组件级服务,这对许多企业来说有着莫大的吸引力。Netflix 就是早期云计算的拥抱者和受益者,该公司在 2010 年成功地全面迁移到 AWS,堪称是云计算史上最著名的案例之一。
技术产品上看,早期的云上产品组合虽然还比较单薄,也存在一些限制,但计算和存储分离的核心理念已经得到初步确立,并深刻影响了基于云上应用程序的架构模式。具体来说,该理念一方面体现在云厂商纷纷将存储服务开辟为独立的产品类别,通过如 AWS S3、Azure Storage、阿里云 OSS 等服务清晰剥离了二进制对象与文件的负载与管理,并且提供了丰富的接口和 API 以供应用程序进行集成;另一方面,在虚拟机层面基于网络存储的托管磁盘服务也得到了大力发展和推广,如AWS的EBS、Azure的Page Blob(后封装为 Managed Disk)以及阿里云的块存储(云盘),此类托管磁盘既很好地保障了数据可靠性,又提供了丰富的容量和性能级别选择,使得云上虚拟机的计算和存储充分解耦,在这两方面都能够独立扩展和调节。
在云计算的萌芽时期,另一个有趣现象是当时“云计算”和“大数据”纠缠不清的关系。可能是由于发展历程上几乎同期兴起,以及在大规模数据存储与计算上的确存在能力交集,两者的概念和定义一度容易互相混淆。早年笔者曾购买过一本很不错的 Hadoop 技术书籍,其副标题却是“开启通向云计算的捷径”,可见早期云计算的定义曾有较为模糊的阶段。
当然,随着后续的时代发展,这样的歧义越来越少见了,云计算已多特指提供各类云端服务与组件的软硬一体化技术资源平台,是一个带有明确商业模式的综合性载体,而大数据则是技术上处理大体量数据的方法论和实现,主要是一种技术体系——所以两者各自独立又可互相依存,比如各云计算厂商都陆续推出了云上大数据分析服务,如 AWS 的 EMR、Azure 的 HDInsight、阿里云的 E-MapReduce,本质上正是开源大数据技术在云上的实现和适配。
探索时代 2011—2014
当云计算玩家们纷纷入场并确认大举投入的战略后,行业进入了精彩的探索时代。这一时期的各朵云在产品技术层面进行了许多有益尝试,虽然免不了在个别方向上走些弯路甚至经受挫折,但总体而言云端服务的能力与质量取得了相当大的进步和提升,也为云计算赢得了越来越多的关注和喝彩。
首先,IaaS 层面继续围绕虚拟机为核心得到稳扎稳打的推进和增强。更强更新的 cpu 带来了云上虚拟机计算能力的提升和换代自不必说,早期机型内存相对偏小的问题也随着新机型的推出逐步得到解决,新上云端的 SSD 磁盘更是让机器性能如虎添翼。厂商们不约而同地形成了通用型、计算型、内存型等多个虚拟机系列,通过将不同 CPU/ 内存比例搭配的机型摆上货架,给予不同应用程序负载以更多选择。当笔者浏览这些琳琅满目的机型列表和参数时,恍惚间犹如来到了当年热闹的中关村 IT 卖场,颇有在云端“攒机”的奇妙感觉。
同属基础设施的存储类服务在初期得到了市场欢迎和认可之后,也同样迎来了大发展。原有功能得以细化,通过引入冷、热乃至存档的各级分层,进一步凸显成本优势。为了弥补托管磁盘在跨机器文件共享方面的不足,类似 NFS 的文件存储类服务也逐步成为了云上标配,如 AWS 的 EFS、Azure 的 Azure Files 及阿里云 NAS 等,进一步把计算存储分离架构发挥到极致,大大方便了某些场景下的架构与实现。
与 IaaS 的高歌猛进相比,PaaS 的发展在这一时期则显得多少有些落寞,尤其是从希望从顶层应用框架入手来推广云的方式一直不温不火,没有得到太多的关注。例如前面我们提到的 Google App Engine,经过几年发展后技术上其实颇为扎实,除 Python 外也添加了 JAVA/Go 等更多语言的支持,亦可与 Google 其他基础设施无缝集成,但就市场而言总是处于叫好不叫座的状态;国内率先实践此模式的厂商是新浪 SAE,上线之初颇受关注,亮点在于支持 PHP 语言及集成 MySQL,可惜多年运营亦未达到火爆状态;阿里云也曾推出相似的 ACE 服务对此类产品形态进行尝试,后也于 2016 年下线——究其原因,恐怕还是因为 App Engine 类服务本质上是相对受限的环境,平台的技术约束和绑定较强,出问题时也较难进行深入排查所致。
这揭示了云的用户固然喜欢技术实现上的便利和平台抽象,但也同样渴求技术灵活性、可移植性和自我掌控。在后来的 Web 类 PaaS 服务中,我们看到业界调整了策略:更多地定位为通用运行平台并着力于自动扩容和负载监控等专业增值服务,尽可能解除技术、语言和框架层面的限制,如 AWS 的 Elastic Beanstalk、Azure 的 App Service 等;另一种发展思路则彻底轻量化,主要面向中小客户推广较为经济的建站服务,以满足入门级托管需求。
所幸,PaaS 中的另一重要分支——泛数据库类服务(亦称 DBaaS)则得到了快速的发展。由于数据库服务较为标准化,又是应用程序中不可或缺的重要组成,因此很快得到了广泛支持和采用。这里的典型代表有 Amazon RDS、阿里云 RDS、Azure SQL Databases和 Azure Database for MySQL/PostgreSQL等。
与自行使用虚拟机搭建相比,云上数据库一键式的创建过程,自带的高可用性和自动备份,可谓省心省力;丰富的性能等级选项更是可根据实际负载选择和调节,实现了成本的最优化控制。除此之外,由于云上数据库按时间及容量计费的轻量特点,也给予了一些优质企业级数据库以重要的展示和售卖渠道,降低了企业的评估和尝试成本:例如,原本只能以昂贵的一体机方式售卖的 MPP 数据库 SQL Server Parallel Data Warehouse (PDW),微软将其彻底云化之后以 Azure SQL Data Warehouse 的产品形态发布,改变了其养在深闺人未识的状态,使得相关技术让普通开发人员触手可及,也无疑大大增加了在整体数据架构中的采用可能。
让我们回到宏观视角。在这一百家争鸣的探索时期,令人可喜的是中国云计算真正如火如荼地发展了起来。除了早期入场的阿里云和盛大云,腾讯、百度及三大运营商等各路巨头也都先后布局试水,并纷纷把“云”的品牌从一度红火的个人网盘服务让位于企业级云计算;微软 Azure 也于 2014 年在中国正式商用,标志着外资厂商开始参与国内市场竞争。值得一提的是,这段时期独立云计算企业 UCloud、七牛云、青云等都相继创立,分别以极具特色的产品服务和强大的自主研发能力,为中国云计算发展书写了浓墨重彩的篇章,使得国内云计算市场更加精彩纷呈。
发展时代 2014—2018
当整个云计算行业一定程度走过蹒跚探索时期之后,开创者们积累了越来越多的经验,对市场反馈和客户需求有了更清晰的了解与洞察,业务模式与商业运营也驾轻就熟起来——云计算行业终于进入高速发展时代。在这一时期,不论是总体市场规模,还是云计算的产品与服务,都得到了极大的增长和丰富。
首先,IaaS 方面的继续进步体现在服务的特异性和多样性上,不断推出细分领域和特定场景下适用的虚拟机实例:如基于物理隔离的专属实例、可运行 SAP HANA 等大型负载的超高配实例、采用 CPU 积分制的性能突增实例、适用于机器学习与 AI 的 gpu 实例等。此类细分服务在云端出现的背后,是不少厂商针对性地研发和定制了适用于云的专属配套硬件。这些新一代的服务器不仅是简单的配置升级,而且在设计之初就是为云端负载而生,与云计算产品理念及底层软件技术栈高度融合匹配。另外在虚拟机计费规则方面,除了经典的按使用时长计费方式,各厂商也相继推出更为灵活的计费模式:包年包月、预留实例、竞价实例等,可有效帮助降低使用成本。这些 IaaS 方面的诸多进展,进一步满足了各场景的细分需求,减少了许多客户的上云阻碍。
在存储服务方面,云计算的步伐也在加快,除立足于核心对象存储服务的增强外,开始以一体化方式进攻部分垂直市场,挤占传统厂商的市场空间。最典型的例子莫过于 CDN:阿里云自 2015 年起在 CDN 领域大举扩张,多次主动大幅降价抢占市场,其他云计算厂商也纷纷跟进,这是原本波澜不惊的 CDN 领域的标志性事件。面对云计算厂商的竞争,网宿、蓝汛等老牌 CDN 厂商顿时立感压力,市场份额也开始发生相应变化。在国外,AWS CloudFront 和 Azure CDN 等云服务同样与 Akamai 这样的传统巨头进行着激烈角逐。当然,得益于 CDN 的架构融合特性,传统厂商也可选择与云厂商合作,从上游的基础设施方面作为云的供应商存在,不失为合作共赢之道。但无论如何,事实说明云的参与和挤压是相关市场发展的必然趋势。而且从技术层面来看,服务之间的一体化协同效应是云计算厂商进入 CDN 这样的单一领域的独到优势。例如,云厂商的 CDN 可以与自家的对象存储服务联动,用户只需要轻点鼠标,即可将对象存储中的文件映射至云 CDN 的边缘节点网络来对外服务,免去了搭建传统回源站点的麻烦。
PaaS 方面在这个大发展时代也找到了崛起之道,不再寻求大一统的应用程序框架,而是更多提供标准的可复用中间件,并与其他 IaaS/PaaS 设施进行组合与联动——这一思路迅速得到开发者和架构师们的欢迎,随着特性完善其采用率开始稳步上升。典型的例子包括 API 网关、负载均衡器、消息队列等。
更进一步地,这一阶段的 PaaS 服务在与 IaaS 虚拟网络集成方面有了较大进步——这是以往 PaaS 服务常为人诟病的短板,即只提供面向互联网的公开端口,游离于 IaaS 的虚拟网络和架构体系之外——这一现状也通过两种方式得到了相当程度的解决:一种可称之为 PaaS-in-VNet,即允许 PaaS 服务直接部署到现成的虚拟网络之上,例如 Azure 上的 App Service Environment (ASE),就是将 App Service 部署到私有虚拟网络的服务形式;另一种方式则是所谓 PaaS-to-VNet,为 PaaS 与虚拟网络之间提供私有通道,在不开放公开访问的情况下允许双向网络互通,同样以 Azure App Service 为例,用户可通过开启服务内置的 VNet Integration 特性来配置与私有网络的安全通信。可以看到,无论是 PaaS-in-VNet 还是 PaaS-to-VNet,其本质都是试图解决 PaaS 和 IaaS 的融合问题,这无疑增加了 PaaS 在整体架构中被采纳的可能。
势头颇佳的 DBaaS 方面的进展,主要体现为从经典关系型数据库拓展到新兴的各类 NoSQL 数据库及大数据领域的云服务。MongoDB、Redis、Kafka、ElasticSearch——这些耳熟能详的开源数据库,我们几乎能在每一个云上找到其对应的托管服务,轻松地一键搭建所需集群。云上数据库的开箱即用是如此的便捷与诱人,不断获得市场,甚至引起了开源厂商的不满:MongoDB 近期将开源协议从 AGPL 调整为新推出的 SSPL,是一时关注度颇高的社区新闻,其矛头正是直指开源软件被直接包装为云服务牟利的状况(部分网友戏称此为“插管吸血”)。
在此,我们对各方抱有商业目的的行为不做倾向性评价,但从产品技术层面来讲,实力雄厚的云厂商并不乏应对之道:一是基于开源版本作分叉并开始自行维护和迭代,二是完全自行实现数据内核和引擎,仅在客户端协议方面与主流数据库进行兼容。目前,后者这类自研云数据库越来越成为一种新趋势:厂商可以放开手脚,充分利用云的特点进行重新设计,同时又兼容流行协议,这一方式迅速取得了市场和开发者认同,此类数据库的杰出代表是 AWS Aurora 和 Azure CosmosDB。其中 AWS Aurora 完全兼容最流行的 MySQL,同时实现了计算存储的高度分离和近乎无限的扩展,而 Azure CosmosDB 则是一款多模式数据库服务,提供 SQL、MongoDB、Cassandra、Gremlin 等多种开放协议或查询语言的兼容,同时实现了全球分布、按需扩容、一致性保障等特性。
所以,无论是 Aurora 还是 CosmosDB,一经推出都迅速攻城略地,取得了不俗的战果。在国内,以阿里、腾讯为代表的大厂商也同样在自研数据库方面不断加码,陆续推出了阿里云 PolarDB、腾讯云 CynosDB 等重磅服务。
在这样的局面下,也许开源软件厂商可以参考同为创业公司的 DataBricks 的做法。DataBricks 作为大数据处理领域事实标准 Spark 框架的实际掌舵者,一方面主导把控 Spark 开源版本不断进步,另一方面也开始推出性能更佳、交付节奏更快的商业版本 Databricks Runtime。更重要的是,Databricks 积极地同云厂商合作,将自身的解决方案融入到公有云平台之中,成为了平台上原生的 PaaS 服务,例如与微软深度合作推出的 Azure Databricks。尽管云上已有基于纯开源方案的大数据服务如 AWS EMR 和Azure HDInsight,但基于 Databricks 商业级解决方案的 PaaS 服务有自己独到的优势和特点,已初步获得了不错的发展势头。
我们由衷希望,出色的开源软件公司能够像 DataBricks 这样寻找到一种与云合作共赢的商业模式,毕竟业界既需要一站式的整合平台,又应当保护开源与创新的良性环境。
容器与微服务,可以说是近年最重要的技术趋势之一。作为新技术的拥抱者和试验田,公有云自然不会袖手旁观。事实上各大云在容器服务方面的尝试由来已久,在早期厂商们就各自推出了如 AWS ECS、Azure ACS、阿里云容器服务等基础设施,提供基于底层 IaaS 的容器运行环境,同时包含开源或自研的编排引擎。而当 Kubernetes 在编排大战中逐步胜出并成为事实标准后,各大厂商又不约而同地对 Kubernetes 提供更加定向和深度的支持,纷纷推出 AWS Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS) 等新一代容器服务。另一类容器托管服务则进一步屏蔽了底层细节和调度麻烦,让容器作为独立计算单元直接在共享基础设施上运行,如 AWS Fargate、Azure Container Instance、阿里云 ECI 等,颇得无服务器计算思想之精髓。当然,经典的无服务器计算一般指 FaaS,例如也在同步发展的 AWS Lambda 和 Azure Functions,它们虽在编程框架和范式方面有所限制,但得益于更高层抽象,可让开发者聚焦业务逻辑,在合适的场景中使用得当可大幅提高研发效率。
让我们的视角再从技术回到商业。随着云计算行业体量越来越巨大,市场竞争也愈发激烈,价格战屡见不鲜。虽然说云计算有着相当不错的商业模式,但这毕竟是一个重投入长周期的行业,因此陆续有中小玩家力不从心、陷入困境。例如国外的 Rackspace,原本入场颇早也有相当积累,一度曾在市场中占先,但当巨头纷纷入场后就显得后劲不足,现已跌出市场占有率前五名。也许当云计算进入巨头角力时代后,中小玩家还是需要着力发展自己特色,深耕细分市场,或是寻求联姻以共享能力与资源。
客户方面,云计算在这一时期开始明显地从互联网企业向传统行业进行渗透。为了拿下更多传统行业客户,组织架构和流程的匹配也是必做的功课。走在前面的云厂商相应地完善了云上的多账号管理、组织架构映射、资源分组、细粒度权限管控等企业级功能。例如阿里云就在不断地更新升级其企业控制台,帮助用户更好地管理人员、资源、权限及互相之间的关系。
至此,经历了大发展的云计算已然成长为几乎承载一切、包容一切的巨大平台,是一艘提供企业信息化和数字化整体解决方案的航空母舰。云计算无疑已经全面走向成熟,成为了参与和推动 IT 业界向前发展的重要力量。
繁荣时代 2019—?
时间终于进入 2019 年。基于过去十年发展的良好态势,我们没有理由不相信云计算将进入繁荣热潮。来自 Gartner 的分析报告显示,2019 年的全球公有云市场规模将超越 2 千亿美元,并将继续保持稳定增速。而国内由于起步相对较晚,市场渗透率还不高,将拥有更高的增速。“上云”将成为各类企业加快数字化转型、鼓励技术创新和促进业务增长的第一选择甚至前提条件。对于企业而言,更多的不会是上不上云的问题,而是要考虑上哪家云、怎么上云的问题,是如何迁移重构以适配云端的问题,是如何让云更好地服务生产的问题。因此,我们对云的未来理应充满信心,同时也抱有更高的期待。接下来,我们不妨结合企业的需求和云厂商的投入方向,大胆预测未来云计算发展的若干趋势。
来源:悟空智能科技
责任编辑:叶超
编辑:王艺霏