计算架构和云计算架构的二维视角
- IT 作为服务:放弃拥有资产;IT资产集中,需要新的技术和新的商业模式支持。
- 一项系统工程:一种针对大规模系统的科学管理办法,应对资源组织和管理过程中各种问题。
- 云数据中心:将所有联网的计算和存储资源聚集起来形成规模效应。
- 云的工作负载模式:时开时停模式,用量迅速增长模式,瞬时暴涨模式,周期性增长模式等。
计算架构及演化
计算机软硬件经历了长时间的演变,计算范式也经过了多次变化:集中式、CS、BS、并行、分布式等
不同的计算范式对应不同的计算架构
- 中央集权架构:计算机刚出现时候的首选,所有计算及计算资源、业务逻辑都集中于一台主机
- 客户机/服务器架构
- 客户端:承载少量计算任务和所有 IO 任务
- 服务端:承载主要计算任务
- 优点:关注点分离,简化软件复杂度、编程模式
- 缺点:持久链接,系统伸缩能力受限
- 中间层架构 – 简化和提升伸缩能力
- 将业务逻辑和数据服务分别放在两个服务器上
- 客户机到中间件为无状态的非持久链接 – 提升架构弹性
- 浏览器/服务器架构
- 对客户机、中间层架构的扩展 – 客户端和中间层均改动
- 客户端:负载进一步缩减,仅显示和运行基于浏览器的脚本程序
- 服务器:Web 服务器层屏蔽各种中间件的差异,提供通用的用户访问界面
- 扩展性高:对客户机性能无要求
- 对网络性能要求高
- C/S 和 B/S 混合架构
- 没有一种架构能够适用于所有场景
- 有些服务需要持久的链接(内部用户)
- 有些仅通过非持久链接即可(外部用户)
- 面向服务的架构(Service-oriented Architecture)
- 每个程序只做本职工作,将服务暴露出来供其他程序使用
- 多个程序通过一个统一的界面协调工作 – 控制复杂性,更容易管理
- 区别于“分布式对象”
- Java:Java 对象,RMI(Remote Method Invocation,远程方法调用)
- CORBA:CORBA 分布式对象,IDL(Interface Definition Language,接口定义语言)
- 通过RPC(Remote Procedure Call,远程过程调用)连接
云计算逻辑架构
- 从不同的角度看,云计算架构的复杂性有一定的差异
- 最易于理解的二维视角:基础设施 + 应用程序;两者分别视为:前端(呈现给用户的界面)+ 后端(云组件)
- 基础架构 – 云内部,后端
- 硬件:服务器、存储器、网络交换机等
- 管理软件:服务的高可用性、可恢复性,数据一致性,应用伸缩性、可预测性,云安全等
- 应用程序 – 云对外,前端
- 并发性、协调性、容错性、开放的 API 格式、开放的数据结构、承载数据密集型计算
基础架构的进一步分层结构
- 虚拟化层:
- 将硬件转换为统一的 IT 资源【可灵活拆分、统一计量、统一管理、软件定义的】
- 可以在不同的抽象层实现:应用层、操作系统层、体系结构层、硬件层等
- Web 服务层
- 将云资源提供给客户的一种最方便的方式,解决大部分客户无法直接使用虚拟机的问题
- 支持面广、对客户端要求低,只需要浏览器就可以访问;所有提供的服务均可以通过 API 访问,该类 API 为“表征状态转移” Representational State Transfer,REST API
- 服务总线层
- 即中间件层,封装计算服务、数据存储、消息传递
- 分离用户与虚拟化层、连接用户与 Web 服务层
- 客户机用户界面
- Web 门户,将各种服务混搭集成在一个页面
- 基于 Ajax、JavaScript,趋势是使用功能完善的组建
- 如 JavaBeans/Applets,Silvedight/.NET 等
- 可下载和安装在客户机上
Note: 有了 Web 服务层其实客户就可以方便快捷的使用云平台提供的服务,服务总线层和客户机用户界面其实是为了更加方便用户的使用,服务总线层可以看作是连接用户和 Web 服务层的,客户机用户界面可以看作是 Web 服务层的一个替代品,用于让用户有更好的体验(无论是从 Terminal or GUI 层面上)。 – 个人看法
云应用程序结构
云应用程序与传统操作系统上的应用程序结构有所不同
- 传统操作系统上的应用程序:进程、线程、服务、Shell(应用程序的控制接口)
- 进程就是最终产品,每一个进程可以运行多个指令序列(线程),一个线程对应一种服务
- 云环境中的应用程序:应用程序本身、应用实例、服务、云命令行界面(控制端)
- 应用程序是云应用最终的样子,由多个同时运行的实例支撑
- 不同的应用实例运行在不同的服务器上,每一个应用实例提供一种或多种服务
- 服务之间是相互独立的(微服务架构)
应用上云并不简单,需要根据云架构的特征调整应用的部署方式
云栈
又称为云平台,是在云上建造的运行环境。它能够支持应用程序的发布、运行、监控、调度、伸缩,并为应用程序提供辅助服务机制,如访问控制、权限管理等。
云体
- 是云计算的物质基础,是云计算使用的资源集合,是构成云计算的软硬件环境,例如网络、服务器、存储器、交换机等。广义的云体包括数据中心机器辅助设施如电力、空调、机架、冷却等系统。
- 目前可以认为:云体 就是 数据中心
云计算技术体系结构
云计算
- 是利用云体和云平台所进行的计算或处理——云计算可以在云体上直接进行,也可以在云平台上进行。无论在哪个层面开展,只要符合“按量计费、资源可伸缩”就是云计算。
- 云存储、云服务、在云上运行自己的软件或者算法,都是云计算
- 云计算是人们利用云体和云平台所从事的活动。