首页 > 代码库 > 云计算架构
云计算架构
0x01 前言
对云计算服务的采用正在迅猛增长的原因之一是云计算架构强化了在孤立产品上实现服务共享的优势,使用共享服务有助于组织聚焦于它的主要业务驱动力上,使得IT部门能缩小可用的计算性能与系统所需性能之间的差距。
本文的内容分布为:0x01 云计算交付模型 0x02 云计算部署模型 0x03 其他架构模型 0x04 云计算的优势
0x01 云计算交付模型
1.1 SPI框架
SPI是Software、Platform、Infrastructure的缩写,分别对应着SaaS、PaaS、Iaas. SPI由ASP(Application Service Provider) 演变而来,与传统IT模型ASP有着很多不同
传统IT模型的优势在于软件和应用的定制化程度更高,但对应的需要在资源和人力物力上支付更高成本。在这种模型中,软件和应用可能需要源源不断的许可证和售后支持费用,而且使用数量的增加会使得许可证的结构发生改变,导致成本大量增加。而采用SPI框架的组织没有属于自己的基础设施来运行软件和应用程序,他们通过购买许可证的方式从云服务提供商那里获得应用的使用许可,只需为所使用的资源支付费用。
1.2 Saas -- Software as a Service
NIST对SaaS的定义为:为客户提供一种能力,使客户能够使用运行在云基础设施上的、由服务提供商提供的应用程序。这些应用可以在各种客户端上通过一个瘦客户端接口访问,用户无需管理和控制底层的云基础设施,包括网络、服务器等,一些较为有限的、用户相关的应用程序的配置除外。
SaaS使得组织可以将莹莹服务外包给某个独立软件商或其他服务提供商,可以降低申请许可的费用、硬件管理等费用,同时也能使应用程序提供商能限制未授权软件副本的分发。其次,最终用户可以很容易地通过浏览器访问应用程序,系统上线也变得更简单。
SaaS和ASP的区别在于:ASP通过一个专用的基础设施运行服务,而SaaS则是在共享的基础设施上提供服务;ASp应用开发并没有产生纯粹的英特网软件,SaaS应用则是面向因特网并未因特网进行优化的。
1.3 PaaS -- Platform as a Service
PaaS与SaaS的区别在于:PaaS提供了一个可以通过Web浏览器访问的、云中的虚拟开发平台
PaaS的定义为:使客户有能力使用供应商提供的编程语言和工具,在云基础设施上部署客户所创建或购买的应用程序。客户无需管理和控制底层的云基础设施,只需对已部署的应用程序进行控制和配置。
PaaS厂商提供的服务有: (1) 虚拟开发环境 (2) 应用程序标准 (3) 为虚拟开发环境配置的工具 (4) 为公共应用程序开发者提供现成的发布渠道
一个软件开发平台要成为一个真正的PaaS解决方案,需要具备以下基本要素:
(1) 对应用程序的使用进行基线监控,用于促进平台流程的改进
(2) 解决方案与其他云资源无缝集成
(3) 支持动态多租户,通过云可以较易在SDLC中实现开发者及用户之间的协作
(4) 安全、隐私、可靠性必须作为基本服务进行维护
(5) 开发平台基于浏览器
1.4 IaaS -- Infrastructure as a Service
IaaS的定义为:为客户提供了一种供应处理器、存储、网络和其他计算资源的能力,客户能在所提供的计算资源上部署和运行任何软件,包括操作系统和应用程序。客户不对底层基础设施进行管理和控制,但对系统、存储和应用程序具备控制能力。
采用IaaS模型能提供一定程度的可扩展性,能快速随需求变化,这是传统IT基础设施在获取、维护等方面无法企及的
IaaS服务的代表:Amazon EC2、SimpleDB、S3、CloudFront、SQS、MapReduce
0x02 云计算部署模型
公共云:通常开放给大众使用,包括个人客户和社团用户,一般来说其运维和管理在服务提供商的数据中心中实现,利用动态资源供应为各种类型用户提供服务
社区云:可以由多个组织共同使用和支撑的共享基础设施,适用于要考虑交叉性因素的团体
一个真正的社区云必须同时具备如下属性:
(1) 开放性:消除对厂商的依赖,使社区云对厂商云的开放程度相同
(2) 社区性:社区云既是一个技术范式,也是一个社会结构
(3) 优雅失效:社区云不属于组织中任何一个成员,也不被组织中任何一个成员控制
(4) 便利性和控制性: 社区所有制提供了民主化的分布式控制,在便利性与控制性方面没有内在冲突
(5) 环境可持续性:利用了未充分使用的用户机器,所需能源远低于专用数据中心所需的能源
私有云:只为某个组织运转的云基础设施,由组织或第三方管理,可以位于组织内部也可以位于组织外部,私有云部署中对安全性的考虑要比在公共云中更谨慎
混合云:两个或以上云的结合,每个云都作为一个独立实体存在,又可以通过技术和标准绑定在一起
0x03 其他架构模型
Linthicum模型:提出者认为云计算具有10个主要类别或模式
1. 存储即服务 -> 能利用物理上位于远端、逻辑上位于本地的存储资源为应用提供存储服务
2. 数据库即服务 -> 能利用远端的数据库服务,在用户间共享使用,逻辑上看起来数据库就在本地
3. 信息即服务 -> 能通过被清晰定义的接口使用远端提供的各种信息服务
4. 流程即服务 -> 能利用将多种资源绑定在一起的远端资源创建业务流程
5. 应用即服务 -> 通过Web终端向用户交互应用程序
6. 平台即服务 -> 通过远端平台向订阅者交付服务的完整平台
7. 集成即服务 -> 能够通过云交付完整的集成软件站,包括接口、流控制和集成设计等
8. 安全即服务 -> 能够通过英特网远程交付核心安全服务
9. 管理/之类即服务 -> 能够管理一个或多个云服务的随需服务
10. 测试即服务 -> 能使用远端的测试软件或测试服务本地系统或云交付的系统进行测试
jericho云立方模型:
jericho论坛在他们的声明文件中介绍了云立方模型的目的:
(1) 解释Jericho论坛所提出的不同云形态
(2) 描述一个云形态的关键特征、优势和风险
(3) 提供了一个框架来更加深入地解释不同云形态的本质及需要回答的问题
(4) 指出并不是所有业务都能在云中获得最佳实现,可能有些业务功能的最佳运行方式是采用传统的非云模型
jericho云立方模型使用四个维度来描述云计算模型:
1. 内部(I)/外部(E) -> 确定数据的物理位置,如果数据位于你自己的物理边界内部,那么就是内部的,否则就是外部的
2. 专有(P)/开发(O) -> 专有意味着服务的组织控制着资源提供的方法,开放云使用非专有技术,意味着这些云可能有更多供应者
3. 有边界(Per)/无边界(D-p)结构 -> 无边界总是与传统封闭式IT边界的逐渐失效/消除/瓦解相关
4. 内包/外包 -> 外包指服务由第三方提供,内包指由在自己控制下的员工提供
0x04 云计算的优势
云具有海量的计算与存储的供应能力,不过计算与存储的数量仍然是有限度的,其计算必须在一个物理边界内运行
云计算的主要优势:
1. 它提供了从基本建设开支环境专项运行开支环境的方法
2. 能够较为划算地快速部署创新业务和科研应用
3. 使用虚拟化将业务服务和底层的执行基础设施分离开来
4. 云范式具有内在的灾难恢复和业务连续性能力
5. 云服务提供商能在一个集中式的环境中更加有效的部署安全机制
6. 能够从各种云提供商中选择供应可靠服务、按使用计费和具有先进部署资源的提供商
7. 具有可扩展的基础设施,能够以按需方式快速提供和解除大量资源
云范式的主要优势:
1. 灵活性和可靠性 —> 无需关注服务器升级、无需安装软件补丁、无需关注维护细节、设备无关性...
2. 降低成本 —> 能力和资源可以采用增量支付的方式,无需对计算基础设施投入大量资本
3.数据存储集中化 —> 集中式的数据存储更易于管理,也容易吸引犯罪组织的关注
4. 缩短部署周期 —> 无需在软、硬件和人员方面提供大量初始化成本
5. 可扩展性 —> 计算资源按照最大化成本效益的方式进行组织