第2章 云 即 平 台
我们对云计算的重新定义包含了我们已经做的一切。
……计算机行业是唯一一个比女性时装更容易受时尚驱动的行业了。
……我们将发布云计算公告,因为如果橙色成为新宠,我们就会制作橙色的罩衫。我可不会和这个对着干。
——Larry Ellison
2.1 概述
描述云时,常用电网进行类比。当要使用电时,你将设备插到标准电路上并打开开关。你要为所使用的电付费。大多数情况下,你不用关心各个电力公司是如何发电和传输电力的。但停电时,就无法对此保持无视。此时你会意识到电力的使用之下有着复杂的机制,即便你对导致停电的具体机制仍然一无所知。
美国国家技术与标准研究所(National Institute of Standards and Technology,NIST)给出了一个关于云的描述,其使用了下面这些元素:
按需自助服务。用户可以单方面供给计算能力,如服务器时间和网络存储,而无需与服务供应商进行人工交互。
广泛的网络接入。能力通过网络提供并借助标准机制进行访问,该机制由异构的瘦或胖客户平台推广使用(例如,移动电话、平板电脑、笔记本和工作站)。
资源池化。服务供应商的计算资源被汇聚起来通过多租户模式提供给多个用户,不同的物理资源和虚拟资源按照用户的需要动态地进行分配和重新分配。还有位置独立性,因为客户通常无法控制或者也不知道所提供资源的确切位置,但能够在更高的抽象层次指定位置(如国家、省或者数据中心)。这些资源包括存储器、处理器、内存以及网络带宽。
快速弹性。能力能够弹性地提供和释放,在一些情况下是自动的,使规模快速地向外和向内扩展以适应需求。对用户而言,能够供给的能力常常似乎是无限的,并且可以在任何时间分配任意数量。
可计量的服务。云系统能够利用计量能力来自动控制和优化资源的使用,该计量能力依据服务的类型进行了某种程度的抽象。资源使用能够被监控、控制,并可以被报告,因此,为服务的供应商和用户提供了透明度。
从运维和DevOps的角度,这些特性中最为重要的是按需自助服务和可计量的服务。即使云提供了似乎能够任意取用的无限资源,但你仍旧要为使用付费。如我们将要讨论的,其他特性也很重要,但不像按需自助服务和按使用付费这样占主导地位。
美国国家技术与标准研究所的特性描述隐含了云服务的供应商和用户之间的区别。本书的视角主要是云服务的用户。如果你的组织运营了自己的数据中心,那么这种区分可能会存在一些模糊之处,但即使在这类组织中,通常也不会认为数据中心的管理在DevOps的范畴中。
如表2-1所示,美国国家技术与标准研究所还对来自于云供应商的不同类型的服务进行了归类。美国国家技术与标准研究所定义了3种类型的服务,这些服务都能够应用于DevOps。
软件即服务(Software as a Service,SaaS)。用户能够使用运行在云基础设施上的供应商应用。各种客户端设备通过像Web浏览器这样的瘦客户端接口(如,基于网页的电子邮件)或者应用接口来访问应用程序。除了有限的与用户相关的应用配置设置外,用户不用管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储,甚至单独的应用程序功能。
表2-1 云服务模型
服务模型 示例
SaaS:软件即服务 电子邮件、在线游戏、客户关系管理、虚拟桌面等
PaaS:平台即服务 Web服务器、数据库、应用服务器、开发工具等
IaaS:基础设施即服务 虚拟机、存储器、负载均衡器、网络等
平台即服务(Platform as a Service,PaaS)。?用户能够向云基础设施中部署自建的或采购的应用程序,这些应用程序使用了供应商支持的编程语言、库、服务和工具来创建。用户不能管理或控制底层的云基础设施,包括网络、服务器、操作系统或存储器,但能够控制所部署的应用,并可能对应用托管环境进行配置设置。
基础设施即服务(Infrastructure as a Service,IaaS)。用户能够配置处理器、存储器、网络以及其他基础计算资源,这里用户能够部署和运行任意软件,可能包括操作系统和应用程序。用户不能管理和控制底层的云基础设施,但能够控制操作系统、存储器,以及部署的应用,并可能对网络模块的选择有一些控制(如主机防火墙)。
我们首先探讨了云涉及的机制,接下来我们探讨这些机制对DevOps的影响。