云平台的发展经历了从单一专项软件交付到现在的通用的能力资源配置自动化的历程。在其发展过程中,或由不同的客户需求驱动,或被客观情况倒逼,新技术手段层出不穷,用以解决不同维度和参与方的问题。从不同的视角来观察云平台的演进史,可以更直观地理解云平台的内涵和意义。
如果按照时间维度来排序,那么平台出现的前后顺序大致为SaaS(2000年)、IaaS(2004年)、PaaS(2006年),CaaS则是近年来随着人工智能和大数据崛起的。如果从技术栈自底层向上层来探究,演化的步骤则是IaaS、PaaS、SaaS。IaaS更靠近环境、资源,SaaS更靠近服务和应用,CaaS则是融合IaaS及SaaS部分特性的跨界技术。下面将按照技术栈的顺序,从底层向上层进行讲解。
(1)云平台的供应商向客户交付硬件、网络、存储、带宽等原始能力,客户完全自行筹备研发能力,将这些原始资源根据业务自行规划使用,该阶段以云供应商向客户交付基础设施能力为主要手段,称为IaaS。
(2)随着业务在垂直方向越来越深入,客户不再愿意承担过高的底层基础设施的开发和运营费用,希望聚焦于业务领域本身,因此在确认掌握核心业务数据存储和关键应用程序的部署之后,要求云平台供应商主要提供计算和资源平台。一个典型的例子是云供应商提供操作系统、虚拟机、物理机、中间件、负载均衡等,而客户自己提供数据库、Web核心服务、账务系统等,这些软件应用都运行在前者提供的资源上,并由客户自行负责,该阶段称为PaaS。
(3)某些不具备IT实力或将IT能力外包的专业业务团队,如医疗、保险等,基于相互长期合作的关系,选择完全信任云供应商,这样就会将核心数据及关键业务也进行托管。甚至更进一步,这些专业团队将业务需求交付给具备研发和运维实力的供应商,采购并在其提供的云服务上使用业务软件系统。这样业务团队直面应用系统,仅对接业务软件系统的接口,云供应商完全屏蔽了IT基础能力,如存储、网络、主机等细节,该阶段称为SaaS。
(4)人工智能和大数据时代的到来,对云计算平台提出了更高的要求。首先,人工智能,特别是以深度学习为代表的机器学习、大数据等专业团队,具备非常强的IT实力,要求对云平台进行深度(内核级)定制;其次,由于专业要求,需要云供应商能够弹性(可伸缩)提供运算和存储能力,在峰值时扩容,在常态时削减资源供应,降低费用;最后,要求极高的服务资源响应能力,资源提供和回收的极限常常在秒级,甚至要求毫秒级。这些需求是上述三个平台无法满足的特性。以Docker为代表的容器虚拟化技术的出现,恰好能够满足这些特性,因此,云供应商将容器虚拟化技术设计成平台产品来提供给专业团队使用,该阶段称为CaaS。
图5-1所示为IaaS、PaaS和SaaS架构之间的对比。
图5-1 IaaS、PaaS和SaaS架构之间的对比
云管理平台是云平台的管理控制系统,是管控和提供“云”资源的平台。既然云平台提供的是资源和能力,那么对这些资源和能力提供调度,进行编排整合,展现统计数据,追踪审计结果,提供人机交互功能就成为必需的功能。可以这么认为,如果没有云管理平台,那么云平台就失去了使用价值。
(1)在IaaS阶段,云管理平台主要提供资源管理能力。通过云管理平台,客户可以直接分配或者按照既定策略分配CPU、内存、网络等算力资源。例如,阿里云的ECS管理控制台系统,可以直接设定虚拟机的各项硬件指标参数。
(2)在PaaS阶段,云管理平台主要提供构建和部署自动化,提供安全栅栏、隔离访问、追踪审计等功能,在确保平台自身能力高可用的情况下,仅对客户托管的非关键业务负责。
(3)在SaaS阶段,云管理平台隐藏了大量的设施提供细节,对客户来说,主要聚焦在业务接口,根本不关心IT基础能力,只要求稳定性和可用性的最终结果。因此云管理平台提供的功能也集中在业务模型领域,主要包括租户信息、业务统计数据、快速热切、安全日志、访问控制、权限分配、系统告警、费用报告等。
(4)在CaaS阶段,云管理平台面临的是开发能力较强的研发团队,因此提供更多的是深度定制的容器管理和编排接口、监控API、集群管理等,可以让开发人员通过脚本或者代码来控制和管理容器的生命周期。
从IaaS发展的角度看,私有云与公有云将长期并存,中小企业以公有云为主,大型企业以私有云为主。因为某些企业的业务特殊性,或者历史遗留原因,混合云将长期存在并继续发展。例如,我国银行业,其金融行业的特殊性决定了其必须使用私有云的方式,但是随着周边非标业务的兴起(如理财、银行保险等),这些非核心业务也可以部署到公有云服务上。
从PaaS发展的角度看,由于PaaS是介于纯资源能力提供(IaaS)和纯业务能力提供(SaaS)之间的中间平台,从当前的趋势看,紧密结合某一领域业务的PaaS平台越来越多,例如百度和腾讯的区块链平台(Block Chain as a Service,BaaS)。
从SaaS发展的角度看,由于业务的特殊性和需求的普遍性,SaaS平台仍将在相当长的时间内主导云平台技术的发展,并且在商务的收入中占主流。
从CaaS发展的角度看,Docker等容器技术的兴起,将形成全新的资源提供方式,以混合IaaS与PaaS的形式更好地支撑业务。
云管理平台的发展方向有两个:一是结合人工智能及深度学习技术,云平台的管理越来越简单化、自动化,从研发及运维人员的角度出发,可以做的工作“越来越少”,平台自己可以应对各种纷繁复杂的情况,比如智能预测峰值,通过学习主动探测和发现0day漏洞等;二是将根据不同的业务领域开放越来越深入垂直的可定制化接口,研发及运维人员可以做的工作“越来越多”,变成一种“自助式”的平台管理机制。
FaaS(Function as a Service,函数即服务)是这样的一种云平台,可以将函数作为一个线上服务或者远程计算服务,调用者不关心服务的实现,仅需要知道调用输入及得到明确期望的输出,调用者甚至不关心支撑此服务函数背后的资源能力。该函数可以通过API、邮件、物联网设备、队列执行。客户只需要按照平台的语法规则,编写统一的函数就可以获得服务能力。
FaaS平台是结合了SaaS的灵活性和PaaS的资源提供能力的产物。目前AWS提供FaaS产品的初步解决方案。未来如果FaaS平台能得到长足的发展,那么按需计费和按使用计费的粒度会更为精细,企业的成本可以得到更好的控制。同时,云平台的使用者将进一步扩大到仅接受一些基础培训就可以胜任的运营和财务人员。