《大数据技术丛书 Flink原理、实战与性能优化》
1172
2022-05-30
1.3.2 PaaS架构
近几年,伴随着国家“互联网+”战略,各个行业已经实施或正在实施自己的数字化转型战略,平台服务已经成为实践云计算的重点之一,它将应用运行所需的IT资源和基础设施以服务的方式提供给用户,包括中间件服务、数据服务、连通性服务、整合服务和消息服务等多种服务形式。为了实现平台服务,业界提出了“平台即服务”(PaaS)的交付模式。PaaS模式基于互联网提供对应用完整生命周期(包括设计、开发、测试和部署等阶段)的支持,减少了用户在购置和管理应用生命周期内所必需的软硬件以及部署应用和IT基础设施的成本,同时简化了以上工作的复杂度。为了确保高效交付具备较强灵活性的平台服务,在PaaS模式中,平台服务通常基于自动化技术以虚拟化的形式交付,在运行时,自动化、自优化等技术也将被广泛应用,以确保实时动态地满足应用生命周期内的各种功能和非功能需求。
具体来说,搭建传统IT基础平台是一个漫长的过程,通常由申请、审计、硬件购买与运输、硬件安装与配置、软件安装与配置等步骤组成。在这个过程中繁复的手工配置工作费时费力,而且容易发生人为配置错误。同时,平台环境的升级维护也面临人为配置错误频繁产生问题,造成不必要的影响和损失。基于这些原因,对于搭建完成的应用运行平台,即使在一定时期内不再需要,也不会被及时释放和回收,以供新项目使用。这是造成空闲硬件资源的原因之一。此外,传统基础平台提供的应用运行能力是静态的。然而,在不同时间,应用负载往往是不一样的。为了确保高负载时应用的正常运行,应用运行平台必须能够提供最高运行能力,这就造成了非高峰时的众多空闲硬件资源。
云计算的产生(尤其是平台服务的理念)从产生空闲硬件资源的根本原因入手,建立了快速搭建和部署应用运行环境与动态调整应用运行时环境资源这两个目标。一方面,依据虚拟化与自动化技术实现应用运行环境的即时部署以及快速回收,降低了环境搭建时间,避免了手工配置错误,可快速重复搭建环境、及时回收资源,减少了低利用率硬件资源的空置。另一方面,根据应用运行时的需求对应用环境进行动态调整,实现了应用平台的弹性扩展和自优化,减少了非高峰时硬件资源的空置。
在实际应用中,PaaS模式的重要应用场景之一是向用户交付一个支撑应用运行的应用运行平台(Applications Running Platform,ARP)。基于PaaS模式构建ARP,需要满足以下典型需求:
◆ 提供定义应用需求的接口:用户可以方便地定义满足应用功能需求所需的组件,同时可以定义应用的非功能性需求,如可用性、服务水平等。
◆ 提供基于应用需求快速构建应用运行环境的能力:能将应用需求映射为物理的IT资源和基础设施的具体配置和拓扑结构,并进行快速部署。
◆ 提供运行时实时动态满足应用需求的能力:将应用需求映射为运行策略,在运行时,根据系统运行的实际状况,如负载状况,动态地对物理的IT资源和基础设施进行调整,如调整负载分配或增减计算资源,使ARP具备足够的弹性和灵活性,以实时动态地满足应用需求。
针对上述需求,基于PaaS模式构建ARP的解决方案至少需要包括如下组件:
◆ 需求与运行策略库:向用户提供定义应用需求的界面,保存应用需求,并将应用需求转化为部署及运行策略,提供给平台交付组件和运行时控制组件。
◆ 软件镜像库:提供ARP所需的基础软件。
◆ ARP硬件资源池:基于Hypervisor,以虚拟化的方式提供ARP所需的硬件资源。
◆ 平台交付组件:根据部署或调整策略及ARP硬件资源池来创建或调整ARP。
◆ 运行时控制组件:根据运行策略和实际运行状况动态调整ARP资源池,提供资源动态调度能力。
1.PaaS平台和IaaS层的关系
在没有PaaS平台之前,我们通过IaaS层实现了业务应用和物理资源的解耦,有了虚拟化的资源池,但是资源池中的资源如何使用?资源池建设不是重点,资源池能够动态调度、提升资源利用率才是重点。为了实现该点就必须动态调度和分配资源,为了动态调度就需要应用托管,继而需要提供支持托管的开发框架和环境,并提供自动部署功能。有了这些,PaaS平台才能够更灵活地调度IaaS资源池中的资源。从两者集成和配合上来说,支持应用托管和资源动态调度是PaaS平台的核心。
在谈论IaaS时我们一般介绍通过IaaS形成了计算资源池和存储资源池,而在谈论PaaS时也需要提供资源池,这个资源池封装数据库和中间件等服务,即提供中间件资源池和数据库资源池。中间件资源池本身就是“中间件+应用部署包”后的可调度计算单元,而数据库资源池是“数据库平台+数据”后的可伸缩的存储单元。中间件和数据库对业务系统隔离,形成中间件即服务和数据库即服务。
2.PaaS平台和SaaS层的关系
首先企业内的PaaS平台是一个各业务系统公用的平台,因此PaaS平台本身需要支持多组织和多租户。其次PaaS平台和SaaS没有必然的关系,而是由业务需求决定。基于PaaS平台开发的应用在公有云环境下可能偏SaaS应用,在私有云环境下则不一定是SaaS应用。没有PaaS平台也可以实现SaaS层和IaaS层的直接集成。
3.PaaS平台和SOA集成平台
很多时候我们将SOA集成平台本身作为企业内PaaS平台的一部分。SOA集成平台提供了能力和服务的集成、BPEL流程编排、BPM和规则引擎等基本功能。SOA集成平台不在某个业务系统内部,而是集中化的且只有一套,以供各个业务系统使用并实现集中化管理。
在通过SOA解决基础问题后,过渡到PaaS平台时一定要考虑PaaS平台本身可以通过组合和编排来产生新的服务和能力,这个能力可以在PaaS平台产生并集中化管理,而不是传统的在业务系统产生,SOA只负责集成。
(1)PaaS平台和基础能力
PaaS层平台需要提供基础层平台能力,这些能力是原有的各个业务系统中能力的下沉。即我们常说的统一的组织权限、主数据、统一的流程建模,执行和监控平台全部划入SOA集成平台。通过提供这些基础能力实现真正意义的业务系统,即完全只剩余业务模块和业务组件,使得向业务组件化和组件能力化的构想更进一步。
(2)PaaS平台和开发模式
推行PaaS平台一定要考虑到PaaS平台建设本身就是开发框架和模式的大变革。只有基于标准的开发框架和模式才能够实现自动部署和应用托管。对于这里的开发模式,我们更加强调的是SOA的内化,为了考虑后续NoSQL数据库的使用,我们会弱化关系型数据库的思维,进一步加强领域建模的思路。笔者认为“组件化架构+领域建模”是PaaS平台下的核心开发思维模式。
图1-6为Gartner发布的PaaS平台参考架构,简单理解如下:PaaS整体架构分为两个重要的部分,一个是技术基础设施,另一个是PaaS基础服务提供。其中技术基础设施一般对用户不可见,而PaaS基础服务则是开放的,可供多租户用户(业务系统)使用。
(3)PaaS技术基础设施
PaaS技术基础设施可以理解为PaaS底层的技术架构,其实现PaaS平台的核心技术并与IaaS层实现集成。在整个PaaS技术架构中又分为性能基础能力、云基础能力和管理平台能力三个重要部分。
性能基础能力包括内存计算(内存数据库,分布式缓存)、网格计算、弹性伸缩和调度技术、SLA服务水平管理、高可用性、安全管理、数据集成、并行计算和处理等。
云基础能力包括共享资源池、多租户、自服务、计费管理、弹性、元数据管理、资源申请和使用。在这里可以看作云计算本身基本技术特征的实现。
对于PaaS管理平台,可以看到这里的核心还是云基础技术能力和云资源池中资源的全生命周期管理、资源本身的监控和动态调整等,以及其他类似的基本管理功能,包括系统管理、权限管理、用户管理、版本管理等。
(4)PaaS平台服务层
PaaS平台服务层直接面对最终的业务系统。真正体现平台级服务的概念即平台由传统的终端朝整个云端的迁移过程。通常平台包括了开发平台、测试平台、运行平台,且这些平台又可以进行细分。平台体现的另外一个重要特征就是“离线+在线”。开发时可以离线或在线,但是在运行态时一定是在PaaS平台的执行托管环境里面。
如图1-7所示,Gartner发布的PaaS服务层对平台进行了进一步的细分,底层是集成的应用开发和全生命周期管理、集成的平台服务管理(体现自服务),包括能力和服务的申请、开通、使用组装和部署的完整生命周期管理。
● 应用平台:核心是应该有一套集成的应用开发平台,提供了集成的应用开发框架和环境、集成的PaaS底层技术能力,提供标准的技术附件、服务等。类似于传统开发平台和框架。
● 集成平台:这里的核心是SOA,而SOA又包括两个重要的部分,一个是ESB提供服务的集成和服务全生命周期管理能力,另一个就是BPM和BPEL提供业务流程管理能力、服务的编排和流程的整合能力。
● 云数据库平台:数据库对用户黑盒,数据库的资源来自于云平台中的资源池,对于企业私有云的数据库,重点还是数据库本身需要支持分布式和集群技术,数据库能力的提供需要通过云数据平台以服务的方式提供。
● 用户体验平台:在这里笔者个人理解应该偏向于提供了一整套偏UI和交互层的用户体验框架,这套框架本身就会与底层的所有平台和技术能力进行集成。
如图1-8所示,整个PaaS平台的演进路线就是需要将原有的应用基础设施服务能力整合为PaaS平台层中的应用平台服务(aPaaS)和集成平台服务(iPaaS),最终再将两个部分整合为一个完整的PaaS平台应用。aPaaS解决的是单个应用如何基于PaaS平台基础设施的问题,而iPaaS解决的是多个应用间如何集成和交互的问题。
iPaaS的核心仍然是如何体现PaaS平台的云能力,包括资源池、弹性扩展、集成等。而其中最重要的就是ESB集成能力、数据库和中间件资源池的建设、自动部署和应用托管。
虚拟化 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。