弹性计算是一种为用户提供计算力的服务,并且用户可以根据实际需要灵活、动态地调整要购买的容量,即所谓的“弹性
弹性计算提供的“计算力”是用于完成用户特定的计算任务,弹性计算提供了一种产品形态,“即云服务器”。云服务器的能力与一台传统的物理服务器差不多,并且提供与物理服务器一样的标准接口。
“计算”一词含义可大可小。从广义上看,任何IT能力都离不开计算,因此云也被称为“云计算”,涵盖IaaS、PaaS、SaaS等各种服务,下一一点看,弹性计算中的“计算”可以理解为计算任务的运行,换句话说,是指执行计算机代码。
要运行一个计算任务,弹性计算不光要提供执行代码的侠义计算能力,还需要配套的存储能力和网络能力。存储为计算任务实现数据持久化,而网络让计算任务可以与外界通信、协作。计算、存储和网络加一起,形成“计算力”三要素。
从“云服务器”这一产品形态,计算主要体现为CPU和内存等资源,存储主要体现为块存储(相当于物理服务器的硬盘),而网络则主要体现为网卡和其接入的网络,它们组合在一起构成了一台真正可用的云服务器。
衡量一台云服务器的计算力要从计算、存储和网络三个指标来看。
弹性计算的业务模式本质上是计算力的租赁业务,用户购买一台云服务器后,并不拥有这台云服务器的物理所有权,而只有使用权。
用户购买云服务器之后可以当做一台物理服务器使用。用户可以通过SSH、VNC等方式远程登录这台云服务器。
弹性计算是云计算自身的基石。作为最基础的产品,弹性计算可谓是一人之下。万人之上。“一人”指的是底层的物理设施,如数据中心、物理网络、服务器等。而“万人”指的是其他云产品。
云服务器最大的有点之一就是很容易将云霞的计算任务搬到云上,快速云化。但对于用户新构建的应用,是否有更适合云上环境的方法来构建和运行呢?云原生可以更好地利用云的各种特点,新的弹性计算产品形态也出现了,其中最重要的就是容器服务和函数计算。
容器服务通过更轻量的操作系统打包和分发方式、更轻巧的运行环境,极大地提升了计算的敏捷性,是的不可更改性(Immutability)这种充分利用云的高校自动化优势的计算范式开始流行起来。在这种计算范式下,用户将软件固话在容器的镜像中,然后使用该镜像快速拉起计算任务,出现问题时丢掉有问题的实例,再用原镜像重新拉起新的实例。如果要修改软件,则重新制作镜像,保证开发环境和生产环境的高度一致性,结合大量的自动化,让 DevOps交付、线上部署和运维效率倍增。
而无服务器计算(Serverless Computing)将云原生推到极致。无服务器计算使得用户可以彻底不再管理和运维底层的计算资源,只需将要运行的软件以待定的打包方式托管给云平台来运行,云平台负责计算力资源的获取、伸缩甚至容灾。
函数计算则把无服务器计算推导了机制。函数计算将用户可以托管的计算任务缩小到一个函数的粒度,使得用户甚至不用关心该函数所需要的运行环境,启动时间以毫秒计算,扩容和缩容对用户透明,费用以调用次数计算。
云服务器通常以虚拟机的方式提供给用户,创建后被称为“实例”。每个实例至少需要一个块存储设备作为系统盘,用来安装操作系统。实例还需要通过虚拟的“弹性网卡"连接到虚拟网络交换机上,从而加入用户的VPC中与外部通信。图1-4描绘了云服务器的基本构成。
云服务器中包括虚拟机、虚拟的“云盘”和虚拟的“弹性网卡”等。虚拟化是云服务器的基础技术,包括计算虚拟化、存储虚拟化和网络虚拟化。虚拟化的基本原理是用软件将物理设备分隔程多个逻辑分片,这些分片提供与物理设备相同的接口和能力,相互不感知,从而实现“虚拟”的设备。这些虚拟设备与物理设备之间是多对一、多对多甚至是一对多的关系。正是依靠虚拟化技术,弹性计算才能将物理资源池化,然后按照用户的需求动态地虚拟出大小不一的设备,灵活地提供给用户使用。
计算虚拟化技术的核心部件被称为虚拟机管理器(Hypervisor),它实现了对物理服务器的CPU、内存等资源的分片,即把这些资源切分成多份,并将每一份模拟成标准的CPU、内存等设备,变成一台虚拟服务器,即虚拟机,如图1-5所示。Hypervisor还可以控制每台虚拟机能够使用的物理资源的性能容量,例如CPU时钟周期、内存大小等,从而实现虚拟机之间的性能隔离。
计算、存储和网络的虚拟化技术只是弹性计算整体技术栈的冰山一角。下面从一台云服务器的创建过程探讨一下弹性计算背后的技术。如下图所示。
弹性计算的控制面管理着每个实例的生命周期,它暴露给用户的接触面通常包含Open API及基于API构建的Web控制台和CLI命令行工具,除简单的管控操作外,还支持实例的迁移、部署、运维和伸缩等。
在用户可见的管理界面和工具的背后,是弹性计算的核心管控技术,实现了实例生命周期管理、资源调度、库存闭环和主动运维等,对弹性计算的性能提升至关重要,特别是弹性、成本和稳定性。
弹性计算在控制面上的关键技术
弹性计算的数据面直接支撑着用户应用的运行,它暴露给用户的标准接口是x86服务器及其上运行的客户机操作系统(Guest OS)。专用宿主机给了用户独占物理服务器来运行虚拟机或实例的选项。实现折现产品形态的核心技术是虚拟化技术;随着云原生应用的蓬勃发展,更轻量的安全沙箱技术也正变得日益重要。
下面列举弹性计算在数据面上的关键技术。
弹性计算依赖大量物理设施和硬件,包括物理网络、数据中心、芯片和服务器等,每一个领域都涉及众多关键技术。