自2006年肇始,云计算发展至今已逾10年,在技术和产业领域都取得了巨大进展,成为推动互联网创新的主要信息基础设施。随着互联网计算越来越呈现出网络化、泛在化和智能化趋势,人类社会、信息系统和物理世界正逐渐走向“人-机-物”三元融合,这需要新型计算模式和计算平台的支撑,而云计算无疑将成为其中代表性的新型计算平台。
未来云计算的发展趋势可以用5个字概括:“三化一提升”,其中“三化”是指应用领域化、资源泛在化和系统平台化,而“一提升”则指服务质量的提升。随着互联网联网设备越来越多,我们正进入一个“人-机-物”融合、万物互联的时代,如何将各种网络资源进行有效管理,如何应对各种各样的应用需求,从而使得应用支撑和资源之间能够更好地沟通,是未来云计算技术需要着重解决的问题。
应用领域化
应用领域化是指面向各个领域、各种应用需求的领域云和行业云等将会不断出现,例如支持电力的云、医疗的云和交通的云等等。随着云计算底层支撑技术的日益成熟,云计算的关注重点将转移到对上层应用的支撑。面向特定领域需求,提供支撑应用开发和运行的API、解决方案及其一体化环境,以支撑更多云应用,是云计算发展面临的新挑战。可以预期,领域云和行业云等专用云平台将具有广阔的空间。
应用领域化的一个重要技术是具备云感知能力的软件服务。早期的信息系统是紧耦合一体化的,应用自我建设、自我包含,业务处理功能难以分割;软件即服务(SaaS)概念的提出催生了SOA体系,用于实现松耦合的分布式应用,应用建设依赖于互联网上的“粗粒度”服务,业务处理功能分散存在于互联网上;而云计算的新发展正在催生SaaS 2.0,各种服务应用充分利用云提供的API,基于云所提供的服务或者微服务进行构建,服务应用运行在云中,同时感知云环境中各种资源的变化,提供优化的服务质量。
资源泛在化
未来“人-机-物”融合的世界,计算资源广泛多样,需要充分发挥各种资源的能力。在移动互联网的驱动下,云和智能终端开始融合(云-端融合),未来甚至涉及物联网节点的融合,新的云-端融合的云计算体系架构正在形成,简单地侧重使用某一端资源已经不再适用,按需(动态可变地)使用客户端和服务器资源,是云计算架构发展的又一新趋势。
一方面,客户端和服务端的软件资源、硬件资源和能源可以在两端实现合理分布和应用,两端的数据和独特资源也可以实现共享;另一方面,未来的云将不仅需要支撑现在移动互联网的智能手机和平板电脑等终端,还需要支撑物联网所承载的各种各样的联网设备,在这样一个泛在化网络环境下,面向各种海量新硬件的云资源管理将会面临很大的挑战。
越来越多的新型硬件进入云平台。在服务器硬件方面,包括RDMA和NVM等新型硬件设备开始投入应用,诸如机器学习和数据挖掘等专用计算架构不断涌现,各种类脑、神经网络、深度学习等专用芯片也开始上市……如何及时、有效地管理和利用新的硬件设备和架构,充分发挥其效能,是云管理平台的一项重要任务。在终端硬件方面,新型的传感器设备种类繁多且数量巨大,从摄像头到GPS定位,从监测血压、测量海拔高度到光陀螺仪等等,如此海量的传感器能否在云平台上实现统一管理,也是新型云平台将面临的挑战。
在资源泛在化的背景下,云还呈现出多尺度和差异化的现象,公有云、私有云和混合云并存;既有少量规模庞大的大型云,更有大量的利用已有资源的微小云;有实体云,还有基于实体云的虚拟云和联盟云。未来跨云计算的需求也将越来越突出,如何跨越多云为应用提供服务,实现多云之间的开放协作和深度合作,也是资源泛在化背景下的一个重要课题。
针对多云协作的问题,我国科学家提出了云际计算的概念,希望实现云服务实体之间的开放协作和多方云资源的深度融合,从而方便用户和开发者定制云服务、创造云价值,这是下一代云计算研究的一个代表性尝试。
系统平台化
云计算的另一个重要趋势是系统平台化,云计算支撑系统呈现从云资源管理系统向云操作系统演化的趋势。“云操作系统”的概念现在用得比较多,但均未达到预期的操作系统形态和能力。什么是操作系统?简单而言就是向下管理资源,向上提供服务。例如单机操作系统,其基本由两大功能构成:管理资源和管理作业。目前云管理系统主要作用是管理云的资源,以支撑各种应用的运行;未来,其还要管理云上各种各样的作业,这一理念和单机操作系统相似,是系统平台化之路共性不断凝练和沉淀的结果。
云管理系统的共性理念是什么?我们的理解是:其应包含云操作系统、单机操作系统、各种各样的应用容器和中间件,以支撑各类云服务。要实现真正意义上的云操作系统,需要向下管理所有云端和终端的资源,向上则对多样化的资源应用需求提供相应的API服务。
云操作系统的发展面临着哪些挑战?在现阶段,需要应对复杂多样的应用需求,将传统应用无缝云化,需要支持基于互联网的多终端一体交互方式,以及云内海量异构资源的有效管理等;更进一步则需要向上更好地支撑应用,探索原生云应用的运行与构造技术,研究开发新型程序设计模型和相关的编程语言,设计云作业的统一调度和管理机制,进行跨云和云际资源的按需整合,实现云服务的自主协同等。
在整个云资源的管理与定制方面,软件定义是一个重要途径,通过软件定义方式可以完成深度定制,以管理各种各样的资源,包括分布式资源的高效融合、巨量资源弹性调配、极端硬件特性和移动硬件特性的虚拟化、集约化的资源便捷共享、可定制化的系统软件栈,以及终端和云端的融合协作等,为从微型虚拟机、小型虚拟机到满足更大需要的巨型虚拟机提供宽谱系的管理支撑。
服务质量的提升
服务质量的提升可以用3个词概括——更高、更快、更强壮。其中,“高”意味着支持高吞吐,这需要聚合大规模资源、提供海量数据的处理能力,以及实现高吞吐并发访问。支持高吞吐是很多云应用的需求,例如阿里巴巴每年“双十一”的巨量交易、12306网站高峰时的巨量访问,以及其它各种各样面向大规模社交圈数据的跨地域分布式存储系统等,都对高吞吐具有很大的需求。
在高吞吐的前提下还要实现“快”响应,也就是在提供高吞吐的同时显著降低请求的响应时间,提升用户体验与服务质量。这方面的需求在现实中也有很多,据Amazon统计,每降低100毫秒延迟可以换来1%销售额的提高;Akamai的研究指出:网页加载延迟1秒将导致平均7%客户流失、减少11%网页访问量和16%客户满意度;增强/虚拟现实(AR/VR)需要在1毫秒内完成场景的构建,等等。
基于云的大量应用形态能否获得成功或提供高的使用质量,实现快响应就是其中的关键。要实现快响应,云架构和软件栈的低延迟设计就尤为重要。云计算应用的延迟主要包括两个方面:一是网络带来的延迟,二是云中心带来的延迟。按当前统计来看,二者大约各占50%。
应对网络带来的延迟涉及到带宽的提升,也需要数据中心合理的分布,以便用户可以尽可能访问就近的数据中心;应对云中心带来的延迟则需要对基于分层的云计算软件栈进行垂直整合,当前云软件栈主要面对高吞吐设计,在低延迟尤其是尾部延迟方面有明显不足,因此技术上还有很大发展空间。
更“强壮”则体现在更好的可靠和可用性保障。云计算的规模和复杂度的快速增长要求更为全面的质量保证:
- 首先,数据中心规模不断增长,规模部署成为事实,高度集成的云计算环境故障越来越多,故障带来的损失也越来越大;
- 其次,虚拟化构成的弹性资源池快速增长且组织复杂,增加了管理的复杂度;
- ***,越来越多的机构计划采用云计算平台,持续发展的业务种类导致了需求多样性。
在这种情况下,如何实现高可靠和高可用的云计算系统成为一个重大挑战,当前已有各种技术研发和尝试,诸如采用非易失性内存来提升内存计算中数据的可靠性和可用性、使用分布式UPS替代传统集中式UPS以保证电源供给、在系统级支持虚拟机/容器的状态同步和动态迁移,以及在应用层次上的数据并行计算和图并行计算系统和机制等。
互联网已经逐步演化成一个全球泛在的计算平台,其开放、动态和难控的特性对软件技术提出了一系列重大挑战。我国学者从软件角度探讨互联网计算,提出了一种互联网软件新范型——网构软件(Internetware)。近几年,北大软件团队基于网构软件模式已经在混合云管理、数据互操作平台和基于云的大数据处理方面开展了一些前沿性的研究工作。