- 云计算:一种资源交付与使用方式,用户可以通过互联网获取自身所需要的IT资,就像是水、电、煤气这样的资源一样,云计算资源也可以做到打开即可享受服务,不需要时就关闭。
- 云计算的五大特征:
- 广泛的互联网接入
- 按需自取:即使在你不需要资源时,服务资源也随时待命;当你需要资源时,及时出现用户高峰,体验也不会收到影响
- 资源池和虚拟化
- 快速弹性:共享资源池,实现水平扩展性
- 服务可计量
RESTful和云计算的关系
REST stands for Representation State Transfer
RESTful服务是云计算的关键,REST架构的四个约束:
- 区分资源和表述:资源和表述要区分开,资源可能是一个代码片段,表述可能是XML、JSON、或者HTML页面
- 通过表述来操作资源:当client有权限时,可以通过带有meta data的表述,去操作资源
- 自描述信息:每条信息要告诉服务器应该怎么处理自己(消息)
- 以超媒体作为应用状态的引擎:client只通过超媒体(例如:超链接)来与应用程序进行交互,表述反映了超媒体应用的当前状态。
云计算的堆栈结构
云堆栈包含四大类,自顶向下分别是:
- 用户:登录、注册、管理
- 应用:认证、授权、用户界面、事务处理、报告、控制面板
- 应用堆栈:操作系统、编程语言、应用服务器、中间件、数据库、监听、缓存、队列…
- 基础设施:数据中心、存储设备、网络基础设施…
云计算的服务模式
不同层次云计算服务抽象了不同的资源,减轻了用户在搭建部署应用时的操作步骤。根据抽象层次的不同,云计算的服务模式主要有以下几类:
- IaaS:只提供硬件资源(基础设施),开发环境运行环境需要自己配置
- PaaS:提供硬件资源+开发环境(应用堆栈),在上面开发部署自己的业务应用即可
- SaaS:提供硬件资源+软件资源(应用),用户完成配置,并通过验证鉴权登录之后,开箱即用的服务
每一种云服务模式通过对于部分资源的抽象,来减轻消费者构建和部署系统的复杂性。
云服务的部署方式
不同的部署方式的差别:主要在维护、价格、安全性和资源的掌握程度四块。
- 公有云:所有客户的数据存储和运行都在一台机器上,没有物理隔离,这种部署方式的价格相对来说较低
公共云服务的例子包括谷歌打印(Google Print)、谷歌文档(Google Docs)、微软办公365(Microsoft Office 365)、亚马逊弹性云计算(Amazon EC2)和亚马逊云播放(Amazon Cloud Player)等,这些服务都使用月度运营支出价格模型,用户无须承担或只须少量承担前端资本开支。 - 私有云:为自己的数据购买单独的存储,有独立隔离的防火墙,购买了私有云部署方式的客户的IT团队可以在防火墙内对自己的资源进行操作调度,资源不需要和其他人共享,降低了有关数据所有权、隐私和安全方面的一些监管风险。
- 混合云:结合了公有云和私有云两种方式,需要更高隐私合规要求的数据存储在私有云中,普通数据则放在公有云中。
- 社群云
社区云是私有云的扩展版本,为一个具有共同利益或共同关注点的社群提供支持,此处所说的共同关注点可能包括安全要求、数据私密、监管环境、商业模型、终端用户等。社区云可能按地理位置划定范围,例如欧盟社区云、北美云;也可能以贸易领域来划定范围,如东盟(ASEAN)社区云或金砖四国(BRIC)社区云。“贸易”这一概念非常有趣,它能被延伸理解为不同的行业或商业群体:纸业云、出版业云、银行监管云、健康产业云,既可以限于一个国家内(比如美国健康社区云),也可以是全球化范围(比如世界健康社区云),参与者可以是监管主体、医疗服务提供方、医师、消费者,或其任意组合。
企业选择云服务时需要考虑的因素
在选择不同的云服务模式时,应该从以下几个方面考虑每种模式的可行性:
- 技术
技术是指:性能、扩展性、安全性、监管、业务可持续性、灾难恢复等。 - 财务
财务指整体购置成本,新项目上云构建成本较小,要将方案迁移至云端或者是遗留架构会限制应用时,财务成本可能较高。 - 战略
如果不希望增加很多的IT人力成本,那么SaaS是较好的选择,底层架构和基础设施对于用户是一种抽象概念,他们无需操行;如果要能够对底层的基础设施有更多的管控权,那么IaaS比较合适。 - 组织
组织内是否有相应的技术人员,越往云堆栈的底层走,所需要技术人员的能力就越高。 - 风险
监管合规风险,安全泄漏风险,数据容灾风险等等,在选择云服务模式时也需要考虑
云中审计
对于拥有数据的公司来说,维护数据安全的职责完全属于公司自己。如果公司选择的技术方案包含云端架构的话,保护数据安全的部分责任将转移给云服务提供商,但CSP主要还是提供安全和合规的云服务,保护整体应用安全的仍然是公司本身。在这种情况下,对整个解决方案进行审计会涉及多个实体(云服务消费者、云服务提供者)
审计的职责是,确保流程和控制,进行检查做出评估,确认委托人满足适用法律所规定的相关约束要求。遗留系统上云可能存在的问题
遗留系统很多对ACID(Atomic,Consistent,isolate,durable)事务有依赖,设计时就以运行在单独分区为目的,预期数据保持一致性。
而云端架构是依赖BASE(Basically Available,Soft State,Eventually Consistent)事务要求分区有容错性,当一个计算资源的实例不能完成任务时,会调动另一个实例去完成,最终差异将被调节。
因此,遗留系统上云时,需要对架构进行云化处理,如果不更改原架构直接上云,那会导致无法实现云计算的弹性、按需自取等特性,只是实现了系统的云上托管,实际上还是一个单分区的系统。
什么是虚拟化?
虚拟化是实现云计算“按需自助”、“快速弹性”、“可计算的服务量”这几个特征的技术手段
虚拟化:云计算的根基,分为服务器虚拟化和应用程序虚拟化两块。
应用程序虚拟化
指将一台主机上的应用程序分享给大量用户使用,虽然上载到云端的应用程序需要高端虚拟机来运行,但由于访问用户数量众多,成本得以分摊。这样,应用程序就能以较为便宜的价格分发给终端用户,这些用户不必为了运行程序而配置高端硬件,一台廉价机器——比如一个低端工作站或一个“瘦客户端”——就足够了。如果虚拟应用使用的数据也存储在云端,用户甚至不必受设备或地点的约束,可以随时随地使用应用程序或者访问数据。在这种情况下,终端用户的典型使用方式是通过移动应用或互联网浏览器。服务器虚拟化
以常用的物理硬件(网络、存储或计算设备)来托管虚拟机。一台物理主机可以运行多台虚拟机,不同虚拟机共用一套硬件,但能安装独立的操作系统和不同应用程序。