当前位置: 代码迷 >> 综合 >> 云计算——PaaS
  详细解决方案

云计算——PaaS

热度:49   发布时间:2024-01-15 17:32:51.0

基本概念:

PaaS:面向广大的互联网应用开发者,把端到端的分布式软件开发,测试,部署,运行环境,以及复杂的应用程序托管当成服务,通过互联网提供给用户。

主要特点:

  • 应用程序开发,测试,部署,运行和维护工作都在都在同一集成环境中进行,有助于降低软件开发和维护的开销,降低市场运营和项目风险。
  • 解决用户数据,网络流量,代码安全问题,自动维护硬件。

需要提供的服务:

  • 端到端的软件开发环境(物理环境,开发环境,测试环境,调试环境,部署环境,和运行环境)
  • 云平台的配套服务(账户,邮件,DB,消息列表)
  • 基于Web浏览器的使用模式,简化安装和配置
  • 容易掌握的编程语言和环境
  • 屏蔽底层硬件设施的复杂性,提供简单的使用接口
  • 动态扩张性,根据需要动态的分配资源
  • 应用程序监控服务
  • 计费

SaaS 企业把支持应用开发的平台发布出来(PaaS),软件开发商根据自身的需求,利用平台提供的能力在线开发,部署,然后快速推出自己的SaaS产品和应用(该SaaS产品还是利用之前SaaS企业的平台服务,使自己的产品称为云端的软件服务)

PaaS 基本架构:PaaS 平台构建在物理服务器集群或虚拟服务器集群之上,通过分布式技术解决集群系统的协同工作问题。PaaS 分布式平台由分布式文件系统, 分布式数据库, 分布式计算, 分布式同步机制组成。分布式文件系统和分布式数据库共同完成了PaaS平台结构化和非结构化数据的存取,分布式计算定义了PaaS平台的数据处理模型, 分布式同步机制解决了并发访问控制问题。

PaaS/ 分布式同步机制/ 分布式计算/ 分布式数据库,分布式文件/ 物理和虚拟服务器集群

PaaS 和 SaaS 的关系:

  • PaaS 面向应用程序开发者,把应用程序的开发,测试, 部署, 运行环境通过网络提供给用户。
  • SaaS 面向互联网用户和中小企业,通过互联网提供软件服务。
核心内容:

分布式计算:分布式计算是让几个物理上独立的组件作为一个单独的系统协同工作,这些组件可以指多个CPU,或者网络中的多台计算机。核心问题是如何把一个大的应用程序分解成若干可以并行处理的子程序,方法一,分割计算,把应用程序的功能分割成若干模块,在网络上多台机器协同完成。方法二,分割数据,把数据分割成小块儿,由网上多台机器分别计算。

PaaS 与分布式计算的关系:分布式处理技术是PaaS 平台的核心技术,负责解决平台服务器集群的协同工作问题,同时分布式处理技术也为PaaS 提供超大规模计算和海量存储的能力。

Map-Reduce :对于PaaS 来说, 分布式处理是核心概念,它决定了平台的计算能力,也决定了开发者使用平台的简易程度。Map-Reduce 作为一种简化的并行计算编程模型,具有简化和能够有效应对大数据量计算的优点,满足绝大多数的海量数据分析需求。Map-Reduce也成了PaaS的核心技术。

Google App Engine的分布式系统:3大类, 分布式基础设施, 分布式大规模数据处理, 分布式数据库技术。

分布式基础设施:

GFS:Google File System,两个接点:Master 节点,用于存储与数据文件相关的元数据,元数据包括一个能将64位标签映射到数据库位置以及组成文件的表格,并且周期性接收来自Chunk节点的更新。Chunk 接点(数据块),存储将元数据分割成64位大小的数据块,每个数据块都有唯一的64位标签,并且每个Chunk在分布式系统中被复制多次。

Chubby:分布式锁服务,通过Chubby,一个分布式系统中的上千个client都能够对某项资源进行‘加锁’和‘解锁’。

Protocol Buffer

分布式数据库技术:

BigTable:BigTable 不是一个关系型的数据库,它也不支持关联等高级SQL操作,取而代之的是多级映射的数据结构,并且是一种面向大规模处理,容错性强的自我管理系统,拥有TB级的内存和PB级的存储能力, 使用结构化的文件来存储数据。

多级映射的数据结构,是一个稀疏的,多维的,排序的Map, 每个Cell由行关键字,列关键字,时间戳三维定位。反向的URL是这行的关键字,contents列存储网页的内容,每个内容有一个时间戳。

在结构上, BigTable 基于GFS分布式文件系统和Chubby 分布式锁服务

Hadoop:分布式系统基础框架,其中Hadoop Common, MapReduce, HBase, HDFS, ZooKeeper 是最核心的部分。它是对Google分布式技术的开源实现。很多企业都在自己的云平台上提供基于Hadoop的PaaS服务

Hadoop Common 是Hadoop 的内核,支持其它Hadoop子项目的公共工具。

HDFS:是Hadoop 提供的一个可扩展,结构化, 具备日志的分布式文件系统, 支持大型,分布式大数据量的读写操作,容错性较强。

  • HDFS 采用主/从结构,由一个NameNode 和多个DataNode构成, 可同时被多个客户端访问。NameNode 是HDFS的主控服务器,负责名字空间,访问控制信息,文件到块的映射信息,文件块的位置信息... 。DataNode 部署在物理机上,负责数据的存储和管理,文件被分割成固定大小的数据块,存储在DataNode 中,文件块通过复制来保证容错性能,DataNode 把数据块当成Linux文件保存在本地物理硬盘上,可以响应客户请求读写数据,同时,DataNode 接收 NameNode 的指令来创建,删除,复制数据块。
  • 文件读操作流程:client —》本地的HDFS文件系统实例——》NameNode——》返回每个数据块(包括副本)所在的DataNode地址——》Client读取主数据块数据,出现错误时,读取副本数据
  • 文件写操作流程:Client——》向NameNode请求数据块存放位置——》NameNode 在DataNode中寻找存放该数据块的位置,并返回客户端——》Client先写入本机缓存——》当本地写满一个数据块后,将本地缓存的数据块传输到指定的DataNode——》Client通知NameNode——》NameNode 将文件创建操作提交到持久存储——》复制数据块
  • HDFS 文件存储适合存储大文件。

HBase: 是Hadoop提供的分布式数据库,它是一个有序,稀疏,多维度的映射表, 有良好的伸缩性和高可用性。

  • HBase 是基于列的分布式数据库,采用多级映射的数据结构,不支持关联或类似SQL的高级查询。
  • 它构建在HDFS分布式文件系统之上。存储本地文件系统,HDFS文件等,但是它并不适合存储大文件,因此在HDFS之上。

ZooKeeper:是Hadoop提供的针对大型分布式系统的可靠协调系统,提供配置维护,名字服务, 分布式同步,组服务。

  • Google的Chubby 的开源实现。为分布式软件系统提供协同工作,处理组件失败问题等。

MapReduce: 是Hadoop采用的分布式计算模型,能在集群上分布式处理大规模数据集。(MapReduce 与HDFS 处在同一个节点上)


Windows Azure Platform:Windows Azure, SQL Azure, Windows Azure Platform AppFabric。

Windows Azure:云计算服务的操作系统,SQL Azure是云中的关系型数据库,AppFabric 则是一个基于Web的开发服务

云操作系统:Windows Azure 作为基础平台的调度和管理软件,它是构建高效,可靠,可动态扩展的重要平台。它包括计算服务,存储服务,管理服务,开发环境。其中开发环境是安装在用户的计算机上的,用于用户开发和测试Windows Azure的应用程序,其余3个部分都是WIndows Azure 服务平台的一部分而安装在微软数据中心。