2.1 云计算

到目前为止,云计算(Cloud Computing)的出现是21世纪IT业界最重大的一次变革。作为一种计算资源的组织和运作方式,云计算为IT业界的方方面面带来了巨大的改变,推动了一波又一波的技术变革。

2.1.1 从私有数据中心到云

按所管控的计算资源的范围来划分,当前的云计算模式可以分为基础架构即服务(Infrastructure as a Service)、平台即服务(Platform as a Service, PaaS)以及软件即服务(Software as a Service, SaaS)。

如图2-1所示,在云计算传统的私有数据中心架构中,让一个应用服务上线跑起来,用户需要负责管理和维护从上到下整个堆栈中的所有资源—从底层网络、存储和主机,到操作系统、中间件,以及应用的开发、部署及运维。这种模式让用户对整个堆栈的各个层次有很强的控制力,这曾经是标准的架构模式。但是随着整个社会经济生活节奏的加快,社会竞争的加剧,业务对IT的要求在不断提高。为了配合业务的创新和推广,支撑业务的应用服务要更快地上线、更频繁地更新、更迅速地扩容。在传统的架构模式中,每上线一个应用服务,都要求用户对架构堆栈中每一个层次的服务进行配置和维护,这极大地拖慢了整体的流程效率,因此难以满足IT的敏捷化需求。传统的架构限制了生产力的发展,于是云计算的变革悄然而至。

图2-1 各类云计算服务与传统模式的对比

2.1.2 IaaS、PaaS与SaaS

在IaaS架构中,应用架构底层的网络、存储和计算资源(主机、物理机或虚拟机)不再属于用户的管理范围。这些资源由云平台供应商(Cloud Provider)提供和运维。用户在云平台上付费申请所需的网络、存储和计算资源,云平台供应商在一定时间内提供。对于用户而言,这大大减少了底层基础架构管理的工作量,提高了管理的灵活度。对于云平台供应商而言,集中化和规模化地运维及供给使得基础架构资源的成本更低,这是一个不可多得的商机。

IaaS减轻了用户管理基础架构的负担。PaaS则是在这个基础上让用户只关注应用服务。PaaS平台提供了应用的运行环境(如应用运行时)、应用依赖的服务(如数据库、中间件、负载均衡、构建服务、发布服务)以及底层所需的计算资源,用户可以把精力集中在应用的开发和创新上。PaaS模式可以提高应用开发、发布和运维的整体效率,有效缩短了应用上市的时间(Time to Market)。沿着IaaS和PaaS的思路前行,在SaaS模式下,用户完全不用管理任何应用和基础设施,从而变成云服务的消费者。

如图2-2所示,从IaaS、PaaS和SaaS的对比可以看出,通过将应用架构堆栈中各类资源的管理权委托给云计算平台,用户获得了更大的自由度和更低的管理成本。Serverless的思路其实也如出一辙,即将服务器这一资源从用户的管理职权中消除,从而减轻用户的负担,提高应用运营的效率。

图2-2 各个云计算类型的自由度与管理成本对比

2.1.3 Serverless与云计算

Serverless和云计算的发展是紧密联系的。Serverless是云计算变革过程中的一个必然产物。Serverless架构实现的一个重要基础是函数即服务(Function as a Service, FaaS)。如图2-3所示,FaaS的灵活度和管理成本介于PaaS和SaaS之间。相对于PaaS而言,FaaS有更高的抽象程度和更低的管理成本。相对于SaaS来说,FaaS用户有更高的控制力和灵活度。Serverless架构是对开发和运维的一场解放运动,让用户的焦点回到用户应该关注的地方,回到更有价值的地方,从而进一步提高软件应用的开发和运营的生产力。

图2-3 FaaS与各云计算类型的对比

毫无疑问,Serverless的出现和日益流行,标志着人们对应用和云计算平台之间的关系有了一个全新的认识。云计算的不断发展是Serverless发展和流行的最大推动因素。Serverless是云计算未来发展的一个方向。笔者认为,一个人对Serverless的理解和认识应该结合云计算发展的大背景,一个企业或组织对Serverless的布局应该结合该企业或组织的云战略。