本节书摘来自异步社区《OpenStack实战》一书中的第1章,第1.2节,作者: 【美】V. K. Cody Bumgardner(V. K. 科迪•布姆加德纳)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 理解云计算和OpenStack
本书主要关注如何通过使用OpenStack来部署企业私有云。同时,我会把私有云描绘成其所在的组织内部拥有和管理的基础设施(虚拟机、存储等)资源池,也就是我们所说的基础设施即服务(Infrastructure as a Service,IaaS)。相反,公有云IaaS资源由第三方服务提供商拥有和运营,如亚马逊的AWS、微软的Azure等。本书的目标是帮你把公有云服务的简单和高效带到你的企业。
经济考量:私有云与公有云
从财务角度看,我们可以把私有云看成主要资本支出,公有云则是运营支出。这个区别很容易理解,在私有云部署时,你的组织要购买基础设施或者把在其他地方正常工作的基础设施挪过来使用。而在公有云中,成本直接与资源使用挂钩(使用才付费,不使用不付费),当然还有网络通信开销。
组织选择私有云还是公有云通常取决于使用资源的规模和组织内部IT部门的职责范围。企业IT部门的职责如果是集中为其他部门提供技术架构和资源供给,部署私有云更有利。一个多租户(数据、配置和用户管理在逻辑上是租户间隔离的)、完全实现编排的私有云可以让企业IT部门成为私有云代理。
多租户和完全编排
多租户指的是在云平台中以部门级别管理计算资源的能力。例如,一个市场营销部门可以分配一定比例的共享资源(X台虚拟机、Y容量的存储等),这个部门可以随意使用这些资源而不影响中心组织(回顾一下亚马逊购买模型)。同样,完全编排描述了应用程序依赖资源的分配能力。例如,一个会计应用程序和它的Web服务、数据库服务等依赖可以被程序化部署在一个环境里。因此,市场营销部门不只能在一个特定租户内管理它的资源,还能通过平台编排服务来部署基础设施(虚拟机)和应用程序(MySQL、Apache2、定制的应用程序等)。
相比之下,如果是部门中的IT单位,通常缺乏数据中心基础设施和部署高性价比的私有云的人员。由于他们相对小的资源需求,部门中的IT单位通常可以利用公有云资源,或者利用他们企业的IT部门提供的私有云资源。
如果基于工作负载同时使用私有云和公有云,那么这种结合使用称为混合云。公有云和私有云都是使用相同的技术来构建,不过虽然构建组件可能一样,但使用私有云和公有云的动机可能完全不同。例如,用户经常因为安全合规性原因而使用私有云。通常来说,下列这些工作负载会使用公有云:本质上是周期性的工作负载,或者需要一个对企业来说非常昂贵的全局规模的工作负载。
虽然本书主要介绍如何使用OpenStack构建私有云,但也有很多内容是介绍如何基于OpenStack的API来直接转换成公有云提供商的服务。
抽象和OpenStack API
从根本上讲,OpenStack抽象和提供了一个通用的API接口来控制不同厂商提供的硬件和软件资源。这个框架提供了两个很重要的内容。
硬件和软件的抽象,这样避免了所有特定组件的厂商锁定问题。这是通过使用OpenStack管理资源来实现的,而不是直接通过厂商组件。这样做的缺点是除了通用的必要功能外,并不是所有的厂商功能都被OpenStack支持。
一个通用的API管理所有资源,允许连接各个组件进行完全编排服务。
第一点从财务角度来看是非常好的,第二点则是现代IT变革的关键。
这有什么内幕呢
OpenStack提供了可伸缩和被抽象的底层硬件的各种功能的支持。OpenStack(或者其他云框架)不能做到的是主动顺应你当前的技术实践。为了充分利用云计算的能力,你必须对当前的业务和架构实践进行相应的转变。
如果你的架构标准是基于使用厂商提供的适当功能来对数据中心所有服务器实现某些功能,这样会与对厂商抽象的云部署冲突。如果你的业务实践只是按用户需求创建虚拟机,那你就没有抓住云自助服务的本质。如果最终用户的请求可以被高效自动化执行,或者用户可以自我供给资源,那你就是充分利用了云计算的能力。
1.3节将把OpenStack与其他相应技术(也许是你熟悉的)关联起来。