云计算十年回顾(上):风雨兼程
写在前面
科学技术的革新始终在推动时代巨轮轰鸣向前。云计算,已经走过十余年的风雨历程,从 AWS 初创立时的牛刀小试,到如今成长为一个巨大的行业和生态,堪称是新世纪以来最伟大的技术进步之一。
任何事物的诞生和发展一定有其前提条件和土壤,云计算亦是如此。记得在世纪初的大学课堂上,教授们颇为推崇网格计算理论,该理论事实上已经充分体现了计算资源分布式协作和统一管理的先进思想。可惜网格计算过于学术化,最终是更接地气也更宏大的云计算横空出世,震动了整个 IT 业界。
那么,云计算诞生及蓬勃发展的原因是什么呢?在笔者看来,主要有三大因素,分别是相关软硬件技术的成熟、巨大的社会价值和伟大的商业模式。所谓软硬件技术的成熟,指的是在技术和工程层面,构建云计算平台的条件开始陆续具备,主要包括超大规模数据中心建设、高速互联网络,以及计算资源虚拟化 (Hypervisor) 和软件定义网络 (SDN) 技术的不断发展和成熟——这些基础能力构成了云计算发展的技术前提;所谓巨大的社会价值,指的是从用户角度出发,云计算的采用使任意组织和个人得以站在巨人的肩膀上开展业务,避免重复造轮,极大提高了软件与服务构建各环节效率,加速了各类应用的架构和落地,而云端按需启用和随意扩展的资源弹性,也能够为企业节省巨大成本;所谓伟大的商业模式,指的是云计算的产品和服务形态非常适合新时代的 B 端需要,订阅制和 Pay-as-you-go 的计费方式大幅降低了客户的进入门槛,而技术基础设施架构方面的稳定性需要又带来了较高的客户粘性,再加上多租户高密度数据中心所能带来的规模效应,这些因素使得云计算能够成为一门好的生意,对应着一个极佳的 B 端商业模式。这三者缺一不可,共同促成了云计算的兴起与繁荣,也吸引了不计其数的业界精英投入其中,是为云计算取之不竭的源动力。
当然,同任何新生事物一样,云计算行业的发展也并非一帆风顺。从早期被指责为“新瓶装旧酒” 的概念炒作,到对云上数据隐私问题的担忧,再到对各类公有云线上偶发事故的讥讽和嘲笑,云计算的成长亦伴随着各种挑战和质疑。其中部分负面反馈实质上还是由于使用不当或偏离最佳实践造成,也让云计算背负了不少 “冤屈” 和骂名。所幸瑕不掩瑜,云计算的先进性终究让发展的主旋律盖过了干扰与杂音,配合其本身持续的改进,越来越多地得到客户的认可,市场规模也不断扩大。
本文会试图从普通开发者及实践者的视角来回顾云计算发展的上半程:萌芽时代和探索时代。因篇幅所限,所讨论的范畴将聚焦于公有云,以 IaaS 和 PaaS 层面的技术演进为主。
萌芽时代 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、七牛云、青云等都相继创立,分别以极具特色的产品服务和强大的自主研发能力,为中国云计算发展书写了浓墨重彩的篇章,使得国内云计算市场更加精彩纷呈。
作者简介何恺铎,国双 (Nasdaq:GSUM) 技术总经理,QCon 讲师,公众号“云间拾遗”作者。毕业于清华大学,曾供职于摩根士丹利基础架构部门,2011 年加入国双工作至今。多年来参与架构和设计了国双数个面向数字营销和社交聆听的大数据解决方案。个人关注的技术领域包括云计算、Hadoop 生态系统、数据库技术等。拓展阅读
此文系 QCon 十周年特别策划《技术十年》系列文章,旨在通过回顾技术发展总结最佳实践、为开发者启发技术新思路。点击了解更多,大数据、移动、运维等领域文章敬请期待。