IaaS

核心功能

  • 资源抽象
    • 对硬件进行虚拟化,从硬件驱动/接口出发:向下,针对不同硬件产品建立不同的适配器,屏蔽硬件产品的差异;向上,提供统一的标准的管理逻辑接口,对硬件进行统一的管理。
    • 核心问题:对资源进行粒度划分并管理,其中既包括单一资源的粒度划分,也包括多种资源的组合打包;
    • 粒度分级:虚拟机——集群——虚拟数据中心——云
    • 需要将物理资源放入统计的资源池中,对资源池进行管理并呈现给用户。
  • 资源监控
    • 保障基础设施层高效工作的关键,是负载管理的前提,调用资源本身的监控接口,但需要对不同的资源采取不同的监控方式
      • 计算单元——使用率
      • 存储单元——使用率、读写操作
      • 网络——实时的输入、输出以及路由状态
    • 采取不同的监控层次,根据资源粒度层次;
    • 对不同的监控对象进行监控,包括物理单元、逻辑单元、解决方案等;
    • 定义监控事件和触发规则,是业务逻辑的体现,自动化管控的实现基础。
  • 负载管理
    负载均衡,防止低效率或资源浪费。需要研究负载对性能的影响,负载对资源的影响。
  • 数据管理
    • 多种数据并存:包括结构化XML数据,非结构化二进制数据,关系型数据库数据等。
    • 物理上分布式存储,需要满足数据的完整性(要求数据确定,可恢复,一致读和同步写)、可靠性(降低数据损坏的几率,冗余备份和恢复)、可管理性(提供相应的操作支持粗粒度逻辑简单的管理)。
  • 资源部署
    • 通过自动化部署流程将资源交付给上层应用;
    • 支持动态资源可伸缩性,支持故障恢复与硬件维护。
  • 安全管理
    • 保证基础设施资源被合法地访问和使用
  • 计费管理

    • 变买为租,按量按时计费,监控使用情况,用户任务的多种实现方式

      实现步骤

  • 总体设计:建立物理设施 :房屋、硬件设备、网络、电力、冷却装置等等;虚拟化;建立基础设施层管理系统 ;建立基础设施层服务。

  • 服务流程:规划——部署——运行
  • 规划阶段:虚拟化;用户访问及管理;数据管理。
  • 部署阶段:虚拟机或虚拟解决方案的部署 ;分配资源;虚拟机内部配置文件描述资源配置 ;接收虚拟化集成管理器的激活命令 ;启动配置实例。
  • 运行阶段:白盒管理与黑盒管理结合,实现资源监控 ;负载管理 ;安全管理 ;用户服务。

    PaaS

  • 常见的平台:

    • 基于快速开发目的技术平台
    • 基于业务逻辑复用的业务平台
    • 基于系统自维护、自扩展的应用平台
  • 平台层是具有通用性和可复用性的软件资源集合,为云应用提供了开发、运行、管理和监控的环境,更好地满足了云应用的可伸缩性、可用性和安全性。

    核心功能

  • 开发平台:平台层是其上运行的应用的开发平台 ,需要提供应用模型 ,API代码库和必要的开发测试环境。

    • 应用模型包括编程语言、应用的元数据模型和应用的打包发布格式;
    • API代码库是平台层为其上应用而提供的统一服务,包括界面绘制、消息机制等,减少重复工作,缩短开发周期;
    • 开发测试环境:在线的应用开发测试环境,开发人员无需安装和配置开发软件。
  • 运行时环境:在开发完毕后,进行部署上线,不同的平台层用户完全独立。要求隔离性、可伸缩性、资源可复用。
    • 隔离性:业务隔离、数据隔离、应用间隔离、用户间隔离
    • 可伸缩性:动态资源分配,根据工作负载、业务规模等动态分配计算能力、存储、网络带宽等;
    • 资源可复用:与可伸缩性有关,宏观无限,微观有限。
  • 运营环境

    • 应用更新、升级、监控、资源消耗监控、应用卸载、计费统计

      实现步骤

  • PaaS的优势

    • 提供高级编程接口,简单易用,缩短编程人员上手时间
    • 应用的开发与运行基于相同的平台,兼容性问题较少
    • 开发者无需考虑应用的可伸缩性、服务容量问题
    • 平台层的运营管理功能还能够帮助开发人员对应用进行监 控和计费
    • 一个例子:GAE和SAE

      SaaS

  • 应用层服务

    • 云上应用软件的合集,建立在基础设施层提供的资源和平台层提供的环境之上,以软件接口(web service、REST)API的方式通过互联网向用户提供服务。
    • 面向广大受众的标准化应用:在线办公、日程管理、登录认证等;
    • 定制的个性化服务应用:面向企业和机构的解决方案,财务管理、供应链管理、物流管理;
    • 用户开发的多元化应用:独立软件开发商或第三方团队开发,未满足特定需求的创新型应用,一般在公有云上创建。

      应用层特征

  • 网络访问模式

    • 通过浏览器访问;
    • 具有开放的API,允许用户或瘦客户端调用;
  • 租用付费
    • 无需一次性购买投入,
    • 按用付费,
    • 注册
  • 高度整合

    • 用户需求的综合性
    • 用户体验为导向

      应用层分类

  • 长尾理论:看似需求极低的服务,只要有供给,就会有人要

    • 很小一部分核心应用:Google Docs
    • 一部分主流应用:Salesforce CRM
    • 数量众多的个性化应用

      软件即服务

  • 交付给用户的是定制化的软件

  • 将软件或应用以租用的形式提供给用户
  • 用户无需本地安装软件副本,无需维护相应的硬件资源
  • 软件通过网络交付给用户,用户端只需浏览器或客户端工 具
  • 软件即服务面向多个用户,但每个用户感觉其独享该服务

    Serverless

  • 软件服务细化到更细粒度的函数层面,通过FaaS的组合构建自己的代码

  • FaaS和对应的支撑服务BaaS(Backend as a service)共同构成了Serverless
  • Serverless并不是SaaS的一种,也不能简单看作是PaaS和SaaS的结合,Serverless是云服务发展的新阶段,随着IT资源不断的封装服务化,Serverless是SaaS基础上进一步演化的结果,被封转的内容越来越丰富。

思考题:

  • IaaS的基本功能
  • PaaS的基本功能
  • SaaS的典型应用