阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

PaaS服务及其实现体系

发布时间: 2020-09-15 11:24:25文章作者: 网站编辑阅读量: 337
   PaaS服务及其实现体系  PaaS服务是为用户提供应用软件的开发、测试、部署和运行环境的服务。这里的“环境”既包括那些用于直接承载应用软件的运行平台(例如应用服务器),又包括支撑软件运行的辅助系统软件(例如数据库)。支撑PaaS服务的技术主要是与分布式系统相关的关键技术。
  
  1. PaaS服务的典型应用场景
  
  Google的App Engine是一种典型的PaaS服务。在该服务中,服务提供商为用户提供了用于部署、运行应用软件的相关软件环境,用户可以通过网络将自己创建的或者从别处获取的应用软件部署到服务提供商的环境上运行。
  
  为了有效地交付PaaS服务,服务提供商首先要为用户屏蔽底层的硬件细节,并对资源进行合理的组织,然后再在其上部署用于支撑应用软件运行的系统软件。对应于云计算系统的层次化架构,PaaS服务的提供需要以底层基础资源层为依托,更重要的是需要依赖云操作系统层和系统软件层的关键技术:首先在云操作系统层对基础资源层中的资源进行有效的组织,然后在此基础上进行系统软件的安装和部署。云计算系统的资源组织方式有两种。其中的虚拟机方式,其上的执行环境与传统PC系统相同,并且通常在IaaS服务中一起提供,所以在此不做重点讨论。而分布式集群方式,则首先由云操作系统组织一批物理服务器或者虚拟服务器构成集群,然后再在集群上部署分布式软件系统作为上层软件的开发和执行环境,包括分布式集群管理、分布式程序开发环境、分布式文件系统和分布式数据库系统等。支撑PaaS服务的分布式软件系统要能高效地支持应用软件的执行,更重要的是,要能根据用户部署的应用软件的规模按需扩放。
  
  在使用PaaS服务时,用户看到的是应用软件运行所需的完整的支撑软件环境,类似于传统PC系统的系统软件,PaaS服务提供应用中间件、数据库等功能供用户使用。为了利用这个环境,用户部署的应用软件需要使用该环境提供的接口进行编程。在应用的部署和运行过程中,除了可能要对应用的执行进行部分配置外,用户不必关心任何与操作系统和系统软件相关的问题,只需对他们部署的应用进行管理和控制。
  
  PaaS服务消除了用户自己搭建软件开发平台和运行环境导致的成本和开销,但是应用软件的功能和性能会受到服务提供商提供的环境的约束。特别是当前各服务提供商提供的环境接口尚不统一,也影响了应用软件的跨平台移植性。
  PaaS服务及其实现体系
  2. PaaS服务的支撑服务体系
  
  服务提供商主要以分布式系统的方式向用户交付PaaS服务,它的技术本质是在云操作系统层以分布式集群的方式组织资源、部署相关的分布式软件系统,并将其作为系统软件,因此,支撑PaaS服务的关键技术是分布式系统技术。分布式系统技术主要包括分布式文件系统、分布式数据库、分布式计算模型、分布式同步管理等。虽然这些技术已有较长的研究历史,但是在云计算的背景下,它们在原有基础上又有了长足的发展。
  
  分布式文件系统的目的是在分布式系统中以文件方式实现数据的共享。分布式文件系统实现了对底层存储资源的管理,屏蔽了存储过程的细节,特别是实现了位置透明性和性能透明性,使用户无须关心文件在“云”中的存储位置。与之前的分布式文件系统不同,支撑PaaS服务的文件系统需要具有更强的存储能力、更好的系统可扩放性和更高的可靠性。
  
  分布式数据库的目的是利用分布式系统对结构化数据实现管理和共享。因为分布式文件系统更偏向于对非结构化的文件进行存储和管理,所以分布式数据库是分布式文件系统的有益补充,因为它能够便捷地实现对数据的随机访问和快速查询。与之前主流的基于数据库来管理系统的关系型数据库不同,一类具有更好的系统可扩放性和更高的操作性能的基于分布式文件系统的数据库技术被提出。
  
  分布式计算模型的目的是充分利用分布式系统进行高效的计算。之前的分布式并行计算模型普遍采用将数据移动到计算节点进行处理的方法,但是在云计算系统中,分布更为广泛的计算资源和存储资源通过网络互联互通,在进行数据密集型应用时,海量数据的移动将导致巨大的性能损失,因此,一些更适合于云计算场景的分布式计算模型被提出。它们依赖于底层分布式文件系统的支持,能够通过把计算移动到存储节点的方式完成数据处理任务,具有更高的性能。
  
  分布式协同管理的目的是确保系统的一致性。因为云计算系统中的所有资源都分散在网络中,一旦由于网络出现异常导致通信不同步,将会造成数据操作的不一致,进而严重影响系统的正常运行。针对支撑PaaS服务的分布式系统的松耦合特性,分布式协同管理技术也有一些特别的设计。
  
  总的来说,之前的分布式系统技术在应用时非常强调过程的一致性,因为它们关注的是解决计算密集型(例如迭代计算)问题;而支撑PaaS服务的分布式系统技术在考虑了网络因素的影响后,将维护系统的高可用性作为首要的选择,同时更关注结果的一致性。
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠