云计算技术与应用--学习
云计算技术与应用–学习
本文内容来自http://c.biancheng.net/cloud_computing/,本文只节取部分所需,全文可以去原网站观看
云计算是一种全新的使用计算资源(硬件和软件)的模式。计算资源所在地(远方的一个或者多个机房)称为云端,人们使用的输入输出设备(pc,手机,平板)称为云终端,两者通过网络连接。
一、云计算是什么?
1.1 技术热点周期现象
在it行业存在一个15年周期现象,从1966年开始到可预知的未来若干年,可分为6个周期,每个周期的技术热点分别如下:
- 1996-1980年为大型机时代
- 1981-1996年为个人计算时代
- 1997-2010年为互联网时代
- 2011-2025年为云计算时代
- 2026-2040年为人工智能时代
- 2041-2055年为机器人时代
每一个周期都的产品以前一周期的技术为基础,诞生并发展而来,但这并不意味着前一周期的产品会消亡
1.2 什么是云计算?
特别说明:广义上的计算资源包括了服务器资源、软件应用和人力服务等,针对本文而言,如果没有特别强调,计算资源都是指服务器资源,即cpu资源、内存资源、存储资源等。
在谈云计算之前,先谈一下传统的计算资源利用特征:
- 计算资源就在本地
- 计算资源不易扩展后者收缩
- 其他人无法共享资源
- 即使资源的所有者,又是资源的使用者
如果只是一个普通的pc使用者,这些特征并不会带来什么问题,但是对于企业而言,因为计算资源无法共享会让计算资源造成浪费,再者计算机空转和满载下的用电相差不大,大量计算机空转的话,只会带来无谓的成本消费。
不同于传统的计算机,云计算引入了一种全新的计算资源使用方式,计算资源所在地称为云端(机房,云计算基础设施中心),输入\输出设备称为云终端(手机,pc,平板等)。
云终端和云端之间是标准的C/S模式,如图所示:
1.3、云计算的5个基本特征
1)自助服务
消费者不需要或者很少需要云服务提供商的协助,就可以单方面获取云端计算资源
2)广泛的网络访问
消费者可以随时随地地使用任何云终端(手机,平板,pc等)设备接入网络并使用云端的计算资源。
3)资源池化
云端计算资源需要被池化,以便通过多租户形式共享给多个消费者,也只有池化才能根据消费者的需求动态的分配物力资源或虚拟计算资源,消费者通常情况不知道自己正在使用的计算资源确切位置,但是在自助申请时能指定大概的区域(某省,某市)
4)快速弹性
消费者能方便、快捷地按需获取和释放计算资源,也就是说,需要时能快速获取资源从而扩展计算能力,不需要时能可快速释放资源,减少浪费。对于消费者而言,计算资源是无限的,可以随时申请获取任何数量的计算资源。
但我们一定要消除一个误解,那就是一个实际的云计算系统不一定是一个投资巨大的工程,也不一定要购买成千上万的计算机,也不需要具备超大规模的计算能力,其实一台计算机就可以组件一个最小的云端,云端建设方案务必采用可伸缩性策略,刚开始时采用几台计算机,根据用户规模来增减计算资源。
5)计费服务
消费者,顾名思义,要为使用计算资源这个行为付费,付费的计量方法有很多,比如根据某类资源(如存储、CPU、内存,带宽等),或者根据时间长短、使用数量、使用次数计费。但不管如何计费,面对消费者价码要清楚,合理,面对系统要监控消费者的使用情况,及时输出报表,做到供需两方结算清晰明白。
1.4、云计算的4个部署模型
1)私有云
云端资源只给某个单位组织内的用户使用,这是私有云的核心特征。云端的所有权可能是本单位、也可能是第三方,或者两方联合共有。云端的位置可能在第三方处托管,也可能在单位内。
2)社区云
云端资源专门给固定的几个单位内的用户使用,而这些单位对云端具有相同的诉求(如安全要求、云端使命、规章制度、合规性要求等)。云端的所有权、日常管理和操作的主体可能是本社区内的一个或多个单位,也可能是社区外的第三方机构,还可能是二者的联合。云端可能部署在本地,也可能部署于他处。
3)公有云
云端资源开放给社会公众使用。云端的所有权、日常管理和操作的主体可以是一个商业组织、学术机构、政府部门或者它们其中的几个联合。云端可能部署在本地,也可能部署于其他地方,比如中山市民公共云的云端可能就建在中山,也可能建在深圳。
4)混合云
混合云由两个或两个以上不同类型的云(私有云、社区云、公共云)组成,它们各自独立,但用标准的或专有的技术将它们组合起来,而这些技术能实现云之间的数据和应用程序的平滑流转。由多个相同类型的云组合在一起属于多云的范畴。
比如两个私有云组合在一起,混合云属于多云的一种。由私有云和公共云构成的混合云是目前最流行的——当私有云资源短暂性需求过大(称为云爆发,Cloud Bursting)时,自动租赁公共云资源来平抑私有云资源的需求峰值。
例如,网店在节假日期间点击量巨大,这时就会临时使用公共云资源来应急。
1.5、 云计算的 3 种服务
服务本质上是一种租赁,对于资源的占用方式是 “为我所用” 而不是 “为我所有”。
1)软件即服务(Software as a Service,SaaS)
云服务提供商把 IT 系统中的应用软件层作为服务出租出去,消费者不用自己安装应用软件,直接使用即可,这进一步降低了云服务消费者的技术门槛。更详细的介绍参见后续章节。
2)平台即服务(Platform as a Service,PaaS)
云服务提供商把 IT 系统中的平台软件层作为服务出租出去,消费者自己开发或者安装程序,并运行程序。更详细的介绍参见后续章节。
3)基础设施即服务(Infrastructure as a Service,IaaS)
云服务提供商把 IT 系统的基础设施层作为服务出租出去,由消费者自己安装操作系统、中间件、数据库和应用程序。更详细的介绍参见后续章节。
3)一切皆服务(anything as a Service,XaaS)
X 并不是某个单词的缩写,而是一个变量,所以得它的中文意思是一切。XaaS所有云服务的概括,也就是说,像SaaS,PaaS,IaaS,CaaS等都是包含在XaaS中。通过 XaaS,企业只需购买他们需要的东西,并在需要时为其付费。
4)其他服务:CaaS,FaaS,DBaaS等
1.6 总结
云计算的精髓就是把有形的产品(网络设备、服务器、存储设备、各种软件等)转化为服务产品,并通过网络让人们远距离在线使用,使产品的所有权和使用权分离。正如洗衣店老板把洗衣机这种有形产品转化为洗衣服务一样,消费者直接投币自助洗衣,这样一方面提高了洗衣机的使用率,另一方面又降低了消费者购买洗衣机的支出。
PS: 洗衣店不是一种新的洗衣技术,而是一种新的洗衣服模式,可能洗衣店老板还会进一步细分市场,推出干洗服务、洗衣烘干一条龙服务等。
计算设备一旦转化为服务,使用率就会得到显著提高,设备的寿命反而会更长,因为电子产品不比机械产品会产生磨损,经常不开机的电子设备反而比常年开机满负荷运转的电子设备更容易出故障。
另外,作为计算资源的软件可以无限复制运行,这一点与洗衣店的洗衣机等物理设备有本质的不同,一台洗衣机被他人使用,就不能同时再被另外的人使用;而软件则没有这个限制,同样一个软件,可以同时给任意多的人使用。还有,计算资源使用率的高低与成本无关,对于一台计算机而言,直接的成本是用电费用,计算机空转与满负荷运转耗费的电力几乎相当;而洗衣店的用户越多,开启的洗衣机就越多,耗费的电力也就越多。
前面多次提到租户和用户,那么这两个概念到底有什么区别呢?
以一个单位组织(如企业、部门或团体等)的名义去租赁云计算服务时,云服务提供商称呼该单位组织为一个租户,而一个租户包含若干个用户(单位内的员工),这些用户当中有的是该租户的管理员,有的是操作员等。
比如 XXX 企业向 SaaS 云服务提供商租赁了 ERP 系统,云服务提供商认为 XXX 企业是一个租户,然后给它分配管理员账号和密码。XXX 企业指定员工张三为租户管理员,张三登录云平台自助网站创建更多的普通账号,然后把这些账号分配给公司内部的相关业务人员(如会计人员、人事经理、仓库管理员等)。
一个租户允许只有一个用户,也允许有多个用户。云服务提供商只与租户(法人代表)之间存在租赁合同关系,并与租户进行费用结算
二、云计算的三种服务模式
云计算是一种新的计算资源使用模式,云端本身还是 IT 系统,所以逻辑上同样可以划分为这四层。底三层可以再划分出很多“小块”并出租出去,这有点像立体停车房,按车位大小和停车时间长短收取停车费。因此,云服务提供商出租计算资源有 3 种模式,满足云服务消费者的不同需求,分别是 IaaS、PaaS、SaaS,如下图所示。
2.1、 IaaS
IaaS 是“Infrastructure as a Service”的首字母缩写,意思是基础设施即服务,即把 IT 系统的基础设施层作为服务出租出去。由云服务提供商把 IT 系统的基础设施建设好,并对计算设备进行池化,然后直接对外出租硬件服务器、虚拟主机、存储或网络设施(负载均衡器、防火墙、公网IP地址及诸如 DNS 等基础服务)等。
IaaS 云服务提供商计算租赁费用的因素包括 CPU、内存和存储的数量,一定时间内消耗的网络带宽,公网 IP 地址数量及一些其他需要的增值服务(如监控、自动伸缩等)等。
出租的物理服务器和虚拟机统称为主机,云服务提供商如何对外出租主机呢?或者是租户如何使用这些租来的主机呢?相对于租户来说,这些主机不在现场而在“远方”,租赁之后并不是把这些主机从云端搬到租户的办公室来使用。
出租前后主机的物理位置并没有改变,租户仍然是通过网络使用这些云端主机。租户登录云服务提供商的网站,填写并提交主机配置(如需要多少个 CPU、多少内存、多少网络带宽等)表后付款,然后云服务提供商向租户颁发账号和密码,最后租户以此账号和密码登录云端的自助网站。
在这里,租户可以管理自己的主机:启动和关闭机器、安装操作系统、安装和配置数据库、安装应用软件等。其实只有启动机器和安装操作系统必须要在自助网站上完成,其他操作可以直接登录到已经安装了操作系统并配置好网卡的主机中完成。
对于租来的主机,租户只关心计算资源(CPU、内存、硬盘)的容量是否与租赁合同上标注的一致,就像租赁同一层楼上的一间房间一样,租户只关心面积是否足够,而不关心房间的墙壁是钢筋水泥结构还是砖块石灰结构。但是对于云服务提供商来说,出租硬件服务器和虚拟机,内部的技术处理是不一样的,其中硬件服务器必须要集成远程管理卡并要池化到资源池中。
远程管理卡是插接在服务器主板上或者直接集成在主板上的一个嵌入式系统,需要接网线并配置 IP 地址。只要服务器的电源插头插到插座上,不管有没有按下服务器的电源开关,这个远程管理卡都会启动,其他人就可以通过网络登录到远程管理卡(需要账号和密码),成功登录后就可以进行启动和关闭服务器、安装操作系统等操作。只不过云服务提供商把远程管理卡的功能集成到了租户自助网站中,从而实现了物理机和虚拟机的统一管理。
租户到底是租赁硬件服务器还是虚拟机呢?这个问题留到后面教程的章节来讨论。
IaaS 云端的基本架构模型如图 下 所示。
IaaS 云端的基本架构模型逻辑上分为三层:第一层管理全局,第二层管理计算机集群(一个集群内的机器地理位置上可能相距很远),第三层负责运行虚拟机。
第一层的云管理器与第二层的集群管理器之间一般通过高速网络连接,当增加数据中心为云端扩容时,就能体现网速的重要性。而集群内的计算机之间倾向于采用本地局域网(如 10Gbit/s 以太网)或者超高速广域网,如果采用局域网,则灾难容错差;如果跨广域网,则网络带宽会成为瓶颈。
第一层(云管理器)
云管理器是云端对外的总入口,在这里验证用户身份,管理用户权限,向合法用户发放票据(然后用户持此票据使用计算资源)、分配资源并管理用户租赁的资源。
第二层(集群管理器)
每一个集群负责管理本集群内部的高速互联在一起的计算机,一个集群内的计算机可能有成百上千台。
集群管理器接受上层的资源查询请求,然后向下层的计算机管理器发送查询请求,最后汇总并判断是部分满足还是全部满足上层请求的资源,再反馈给上层。如果接下来收到上层分配资源的命令,那么集群管理器指导下层的计算机管理器进行资源分配并配置虚拟网络,以便能让用户后续访问。
另外,本层 PLS 中存储了本集群内的全部虚拟机镜像文件,这样一台虚拟机就能在集群内任意一台计算机上运行,并轻松实现虚拟机热迁移。
第三层(计算机管理器)
每台计算机上都有一个计算机管理器,它一方面与上层的集群管理器打交道,另一方面与本机上的虚拟机软件打交道。它把本机的状态(如正在运行的虚拟机数、可用的资源数等)反馈给上层,当收到上层的命令时,计算机管理器就指导本机的虚拟机软件执行相应命令。这些命令包括启动、关闭、重启、挂起、迁移和重配置虚拟机,以及设置虚拟网络等。
租赁 IaaS 云服务,对租户而言,最大优点是其灵活性,由租户自己决定安装什么操作系统、需不需要数据库且安装什么数据库、安装什么应用软件、安装多少应用软件、要不要中间件、安装什么中间件等,相当于购买了一台计算机,要不要使用、何时使用以及如何使用全由自己决定。
一些搞研发的计算机技术人员倾向于租赁 IaaS 主机。但是对于租户来说,IaaS 云主机除管理难度大外,还有一个明显的缺陷:计算资源浪费严重。因为操作系统、数据库和中间件本身要消耗大量的计算资源(CPU、内存和磁盘空间),但它们消耗的资源对租户来说做的是无用功,来看下面这个极端的案例。
假设张三租用了一台 IaaS 主机,配置为 CPU1.0GHz,内存 1GB,硬盘空间 10GB,然后他安装了 Windows7 操作系统、MySQL 数据库,最后再想安装和运行绘图应用软件几乎是不可能了,因为 Windows7 操作系统和 MySQL 数据库就要把 CPU、内存和硬盘空间消耗殆尽了。
没有硬盘空间,如何安装应用软件?没有空闲的内存,又如何能运行应用软件?张三本来打算租赁云端主机来搞图形设计,这样一来,目的就没达到,至少租来的主机的配置要翻倍才行。
下面是一些 IaaS 云服务的实际应用。
- 备份和恢复服务。
- 计算服务:提供弹性资源。
- 内容分发网络(CDN):把内容分发到靠近用户的地方,对于一些基于网页的应用系统,为了提高用户体验,往往在各个地方(人口稠密的地方)设立分支服务器,当用户浏览网页时,被重定向到本地 Web 服务器,所以数据必须实时分发并保持一致。
- 服务管理:管理云端基础设施平台的各种服务。
- 存储服务:提供用于备份、归档和文件存储的大规模可伸缩存储。
2.2、PaaS
PaaS 是“Platform as a Service”的首字母缩写,意为平台即服务,即把 IT 系统的平台软件层作为服务出租出去
相比于 IaaS 云服务提供商,PaaS 云服务提供商要做的事情增加了,他们需要准备机房、布好网络、购买设备、安装操作系统、数据库和中间件,即把基础设施层和平台软件层都搭建好,然后在平台软件层上划分“小块”(习惯称之为容器)并对外出租。
PaaS 云服务提供商也可以从其他 IaaS 云服务提供商那里租赁计算资源,然后自己部署平台软件层。另外,为了让消费者能直接在云端开发调试程序,PaaS 云服务提供商还得安装各种开发调试工具。相反,租户要做的事情相比 IaaS 要少很多,租户只要开发和调试软件或者安装、配置和使用应用软件即可。PaaS 云服务的消费者主要包括以下人员。
- 程序开发人员:写代码、编译、调试、运行、部署、代码版本控制等,一揽子解决。
- 程序测试人员。
- 软件部署人员:把软件部署到 PaaS 云端,便于管理不同版本之间的冲突。
- 应用软件管理员:便于配置、调优和监视程序运行性能。
- 应用程序最终用户:这时 PaaS 云服务相当于 SaaS 云服务。
PaaS 云服务的费用计算一般根据租户中的用户数量、用户类型(如开发员、最终用户等)、资源消耗量及租期等因素计算。图 2 所示描绘了 PaaS 云服务供/需双方的动态交互情况。
图 2 PaaS 云服务供/需双方动态交互示意图
云服务提供商拥有一个应用软件库(图 1 中“A,B,C,…”代表库中的应用软件)、开发工具集(如编程语言、IDE、调试工具等)和软件执行资源池(图 1 中“exr1,exr2,…”代表资源),消费者通过网络远程租赁软件执行资源并运行相关的应用软件,或者使用各种开发工具。
软件执行资源有“可用”和“占用”两个状态,同一个资源不能同时运行多个程序。软件执行资源可能是物理机、虚拟机、容器或者一个正在运行的服务程序(响应消费者的请求,启动虚拟机或容器,甚至是租赁其他云端的计算资源)。
图 2A 中,用户 C1 申请了两个资源:exr1 和 exr2,并运行 B、C 两个程序。
图 2B 中,新来了一个程序开发员,他正在使用开发工具开发程序。
图 2C 中,程序开发员开发完成并部署了一个新程序 D。
图 2D 中,一个管理员发布了程序 D,然后新来的用户申请资源 exr3 并执行程序 D。
PaaS 云服务供/需交互还有很多情景,这里不再一一列出。
比如我们要安装和使用 OpenERP 软件,这个应用软件要用到 PostgreSQL 数据库和 Python 语言,那么只需要租赁一个 PaaS 型容器并在里面安装 OpenERP 即可,但这个容器必须支持 PostgreSQL 数据库和 Python 语言,让租户无须再去安装和配置它们。
同样,我们可以租赁一个支持 PHP 语言和 MySQL 数据库的 PaaS 容器,然后采用 WordPress 开源建站工具,只需几步,就可以搭建一个个人博客网站。应用软件数不胜数,支撑它们的语言、数据库、中间件和运行库可能都不一样。
PaaS 云服务提供商不可能安装全部的语言、数据库、中间件和运行库来支持所有的应用软件,因此目前普遍的做法是安装主流的语言、数据库、中间件和运行库,使得出租的 PaaS 容器支持有限的、使用量排名靠前的应用软件以及支持最流行的编程语言,并在网站上发布公告。当然,云服务提供商也鼓励租户直接开发支持 PaaS 的应用软件,每家云服务提供商都想尽可能地黏住更多的用户,这无可厚非。
不知道你有没有遭遇过这样的痛苦:企图安装一个要用的软件,结果报“没有找到 XXX 中间件”的错误,于是急忙找来相关资料安装需要的中间件,但又报错:“此中间件需要 YYY 数据库的支持”,那么只好安装数据库,却再次报错:“此数据库需要 ZZZ 运行库”,于是又去安装相应的运行库,但报错又出现了……最后你怒了:我不用这个应用软件总可以了吧?但你的计算机中已经安装了一大堆用不上的软件,硬盘快满了,于是又不得不去一个一个地卸载,卸载时又不断跳出调查表,询问你卸载的原因:是软件不够好吗?是售后服务跟不上吗?影响计算机速度吗……安装过 Linux 操作系统的人估计都会有这样的痛苦经历。
PaaS 的优势就是解决应用软件依赖的运行环境(如中间件、数据库、运行库等),其所依赖的软件全部由云服务提供商安装,所以当租户安装应用软件时,就不会再出现连续报错的情况。应用软件就像歌唱家,当其唱歌表演时需要一个舞台,这个舞台就是由基础设施层和平台软件层堆叠起来的。
前面讲过,平台软件层包括操作系统、数据库、中间件和运行库四部分,但并不是说在具体搭建平台软件层时一定要安装和配置这四部分软件,需要哪部分以及安装什么种类的平台软件要根据应用软件来定。比如一家只针对 PHP 语言开发(应用软件用 PHP 编写)的 PaaS 云服务提供商,就没必要安装类似 Tomcat 的中间件了。根据平台软件层中安装的软件种类多少,PaaS 又分为两种类型。
1)半平台 PaaS
平台软件层中只安装了操作系统,其他的留给租户自己解决。最为流行的半平台 PaaS 应用是开启操作系统的多用户模式,为每个租户创建一个系统账号,并对他们做权限控制和计算资源配额管制。半平台 PaaS 更关注租户的类型,如研发型、文秘型等,针对不同类型的租户做不同的权限和资源配置。
Linux 操作系统的多用户模式和 Windows 操作系统的终端服务都属于半平台 PaaS,私有办公云多采用半平台 PaaS。
2)全平台 PaaS
全平台 PaaS 安装了应用软件依赖的全部平台软件(操作系统、数据库、中间件、运行库)。不同于半平台 PaaS,全平台 PaaS 是针对应用软件来做资源配额和权限控制的,尽管最终还需要通过账号实现。公共云多采用全平台 PaaS。
相对于 IaaS 云服务,PaaS 云服务消费者的灵活性降低了,租户不能自己安装平台软件,只能在有限的范围内选择。但优点也很明显,租户从高深烦琐的 IT 技术中解放出来,专注于应用和自己的核心业务。
下面是一些 PaaS 云服务的实际应用。
- 商业智能(BI):用于创建仪表盘、报表系统、数据分析等应用程序的平台。
- 数据库:提供关系型数据库或者非关系型数据库服务。
- 开发和测试平台。
- 软件集成平台。
- 应用软件部署:提供应用软件部署的依赖环境。
2.3、SaaS
SaaS 是“Software as a Service”的首字母缩写,意为软件即服务。简言之,就是软件部署在云端,让用户通过因特网来使用它,即云服务提供商把 IT 系统的应用软件层作为服务出租出去,而消费者可以使用任何云终端设备接入计算机网络,然后通过网页浏览器或者编程接口使用云端的软件。这进一步降低了租户的技术门槛,应用软件也无须自己安装了,而是直接使用软件
SaaS 云服务提供商这时有 3 种选择:
-
租用别人的 IaaS 云服务,自己再搭建和管理平台软件层和应用软件层。
-
租用别人的 PaaS 云服务,自己再部署和管理应用软件层。
-
自己搭建和管理基础设施层、平台软件层和应用软件层。
总之,从云服务消费者的角度来看,SaaS 云服务提供商负责 IT 系统的底三层(基础设施层、平台软件层和应用软件层),也就是整个 T 层,最后直接把应用软件出租出去。图 2 所示是 SaaS 云服务供/需双方的动态交互示意图。
![S
图 2 SaaS 云服务供/需双方动态交互示意图
云服务提供商拥有一个应用软件库(图 2 中“A,B,C,…”代表库中的应用软件)和应用软件执行资源池(图 2 中“exr1,exr2,…”代表资源),消费者通过网络远程租赁软件执行资源并运行相关的应用软件。
在图 2A 中,有两个用户正在使用云端的软件,其中用户 C1 运行两个程序 B 和 C,云端为该用户分配了 exr1 和 exr2 两个执行资源,exr1 执行资源用于执行 B 应用程序(图 2 中用“B(exr1”表示),exr2 执行资源用于执行 C 应用程序(图 2 中用“C(exr2”表示)。而用户 C2 正在执行一个程序 C(图 2 中用“C(exr3”表示)。
在图 2B 中,一个新用户 C3 进来了,云端从可用的执行资源池中为他分配了 exr4 和 exr5 两个执行资源,分别执行 A 和 B 应用程序,而执行资源池中可用的资源数减少了两个。
云服务提供商选择若干种使用面广且有利可图的应用软件,如 ERP(企业资源计划)、CRM(客户关系管理)、BI(商业智能)等,并精心安装和运维,让租户用得放心、安心。
1 、适合做 SaaS 的应用软件有的几个特点
1)复杂
软件庞大、安装复杂、使用复杂、运维复杂,单独购买价格昂贵,如 ERP、CRM 系统及可靠性工程软件等。
2)主要面向企业用户
3)模块化结构
按功能划分成模块,租户需要什么功能就租赁什么模块,也便于按模块计费,如 ERP 系统划分为订单、采购、库存、生产、财物等模块。
4)多租户
能适合多个企业中的多个用户同时操作,也就是说,使用同一个软件的租户之间互不干扰。租户一般指单位组织,一个租户包含多个用户。
5)多币种、多语言、多时区支持
这一点对于公共云尤其明显,因为其消费者来自五湖四海。
6)非强交互性软件
如果网络延时过大,那么强交互性软件作为 SaaS 对外出租就不太合适,会大大降低用户的体验度,除非改造成弱交互性软件或者批量输入/输出软件。
如微软的 Office 365 和谷歌的在线办公等——通过浏览器运行远程 SaaS 办公软件,本质上就是 I/O 本地化,而浏览器与云端之间批量化传输(单击“保存”按钮或者浏览器定时保存)。
软件的云化就是对传统应用软件进行改造,使之满足(3)、(4)、(5)三个特点。
这里要着重介绍一下特点“(4)多租户”,即允许多个租户同时使用软件而互不影响,因此多租户的第一个要求就是软件支持多个用户登录,用户一般为非系统管理账户(如不是操作系统用户或者数据库用户),且保存在数据库的业务表中。
在《软件的概念》教程中已经讲过,软件就是由程序员写的让 CPU 来完成某项任务的步骤,包括输入/输出步骤和计算步骤,只有输入/输出步骤与多租户的特点相关。
如张三的输入/输出就是张三的,绝对不允许“窜”到李四那边去,反之亦然。这里重点关注的是硬盘文件作为输入/输出设备的情景,因此多租户的第二个要求就是用户身份信息必须作为数据记录的检索字段之一,这样用户之间的数据才可以实现隔离。
数据记录包括软件的配置信息和业务数据,配置信息指租户选择的语言、设置的时区、指定的币种、定义的面板参数等;而业务数据就是日常业务处理产生的数据,一般保存在数据库中,而数据库保存在云端的存储中。在具体设计隔离方案时,需要综合考虑隔离效果和资源使用效率,如图 3 和图 4 所示,更详细的租户隔离内容参见后面的章节。
图 3 注重隔离效果
图 4 注重资源使用效率
2、适合云化并以 SaaS 模式交付给用户的软件
1)企事业单位的业务处理类软件
这类软件一般被单位组织用来处理提供商、员工、投资者和客户相关的业务,如开具发票、资金转账、库存管理及客户关系管理等。
2)协同工作类软件
这类软件用于团队人员一起工作,团队成员可能都是单位组织内部的员工,也可能包含外部的人员。例如日历系统、邮件系统、屏幕分享工具、协作文档创作、会议管理及在线游戏。
3)办公类软件
这类软件用于提高办公效率,如文字处理、制表、幻灯片编辑与播放工具,以及数据库程序等。基于 SaaS 云服务的办公软件具备协同的特征,便于分享,这是传统的本地化办公软件所没有的。
4)软件工具类
这类软件用来解决安全性或兼容性问题,以及在线软件开发,如文档转换工具、安全扫描和分析工具、合规性检查工具及线上网页开发等。
随着因特网进一步延伸到世界各地,带宽和网速进一步改善,以及云服务提供商通过近距离部署分支云端,从而进一步降低网络延时,可以预计,能够云化的软件种类将越来越多。但是无论如何,下面三类软件不适合作为公共 SaaS 云服务出租。
3、不适合作为公共 SaaS 云服务出租的软件
1)实时处理软件
比如飞行控制系统、工厂作业机器人控制等,这类软件要求任务完成时间非常精准(甚至达到微秒级)。假如云化,单单横亘在 SaaS 云端与消费者之间的网络延时就是一个难以承受的不可控因素,更不要说其他因素了。
2)时时产生并处理大量消费者数据的软件
诸如视频监控、环境信息收集处理等时时产生并要处理大规模的数据信息(可能每秒达 GB 级)的软件,在目前和未来几年内的因特网宽带条件下,不适合云化,因为如此大规模的数据很难实时传输到 SaaS 云端进行处理。
3)关键软件
这类软件如果运行异常,将会导致人员伤亡或者重大财产损失。为了提高这类软件的可靠性,最主要的方法是降低软件的复杂度——软件本身的复杂度和运行环境的复杂度,因为越简单就越可靠。而 SaaS 云服务环境包含着复杂的软/硬件栈(9 层的 IT 系统),以及不可预测的网络带宽、延时、丢包因素,绝对不合适云化此类关键软件并以公共 SaaS 云服务模式交付给用户使用。
针对私有云或者社区云,如果云端就在本地,且消费者通过局域网接入云端,那么上面三类软件也可以 SaaS 模式部署。
4、 与传统的软件运行模式相比,SaaS 模式具有的优点:
1)云终端少量安装或不用安装软件
直接通过浏览器访问云端 SaaS 软件,非常方便且具备很好的交互体验,消费者使用的终端设备上无须额外安装客户端软件。
配置信息和业务数据没有存放在云终端里,所以不管用户何时何地使用何种终端操作云端的软件,都能看到一样的软件配置偏好和一致的业务数据。云终端成了无状态设备。
2)有效使用软件许可证
软件许可证费用能大幅度降低,因为用户只用一个许可证就可以在不同的时间登录不同的计算机;而在非 SaaS 模式下,必须为不同的计算机购买不同的许可证(即使计算机没被使用)——过度配置许可证现象。
另外,专门为保护软件产权而购置的证书管理服务器也不用买了,因为在 SaaS 模式下,软件只运行在云端,软件开发公司只跟云服务提供商打交道并进行软件买卖结算即可。
3)数据安全性得到提高
对于公共云和云端托管别处的其他云来说,意味着 SaaS 型软件操纵的数据信息存储在云端的服务器中,云服务提供商也许把数据打散并把多份数据副本存储在多个服务器中,以便提高数据的完整性,但是从消费者的视角看,数据被集中存放和管理。
以上那么做有一个明显的好处,那就是云服务提供商能提供专家管理团队和专业级的管理技术和设备,如合规性检查、安全扫描、异地备份和灾难恢复,甚至是建立跨城市双活数据中心。当今大的云服务提供商能够使数据安全性和应用软件可用性达到 4 个“9”的级别。
对于云端就在本地的私有云和社区云来说,好处类似于公共云,但是抗风险能力要差一些,除非对大的意外事件提前做好预案,如为应对天灾(地震、洪水等)人祸(火灾等),建立异地灾备中心。另外,无处不在的网络接入,使人们再也不用复制数据并随身携带,从而避免数据介质丢失或者被盗。数据集中存放和管理还有利于人们分享数据信息。
4)有利于消费者摆脱 IT 运维的技术泥潭而专注于自己的核心业务
SaaS 云服务消费者只要租赁软件即可,而无须担心底层(基础设施层、平台软件层和应用软件层)的管理和运维。
5)消费者能节约大量前期投资
消费者不用装修机房,不用建设计算机网络,不用购买服务器,也不用购买和安装各种操作系统和应用软件,这样就能节省成百上千万元的资金。
众所周知,在非云计算模式下,这些巨额的前期投资在一到两年的时间内是不会产生任何效益的,因为一个中等规模的 IT 系统建设工期就要几年的时间——包括机房选址和装修,网络设备采购和综合布线,机器设备采购、安装和调试,软件部署、测试和转产上线等。
但是 SaaS 云服务也给人们带来了新的挑战,如完全依赖网络、跨因特网对安全防范措施要求更高、云端之间的数据移植性不够好、租户隔离和资源使用效率二者之间需要综合平衡考虑(详见教程后面章节“租户隔离”的相关内容)等。
5、SaaS 云服务的实际应用
1)电子邮件和在线办公软件
用于处理邮件、文字排版、电子表格和演示文档的应用软件,如谷歌邮箱(http://mail.google.com)、网易邮箱(http://mail.163.com/)、微软 Office 365 在线办公、谷歌在线文档(https://docs.google.com)等。
2)计费开票软件
用于处理客户有关使用和订阅产品及服务所产生的账单。
3)客户关系管理系统(CRM)
功能涵盖从客户呼叫中心到销售自动化的各种应用程序。
4)协作工具
这种软件能促进企业内部或者跨企业的团队中的成员协同合作。
5)内容管理系统(CMS)
用于管理数字内容,包括文本、图形图像、Web页面、业务文档、数据库表单、视频、声音、XML文件等,引入版本控制、权限管理、生命周期等。
6)财务软件。
7)人力资源管理系统。
8)销售工具。
9)社交网络:如微信、WhatsApp、LINE 等。
10)企业资源计划(ERP)。
11)谷歌在线翻译。
三、云计算四中部署模型
云计算有 4 种部署模型,分别是私有云、社区云、公共云和混合云,这是根据云计算服务的消费者来源划分的,即:
- 如果一个云端的所有消费者只来自一个特定的单位组织(如微算科技公司),那么就是私有云。
- 如果一个云端的所有消费者来自两个或两个以上特定的单位组织,那么就是社区云。
- 如果一个云端的所有消费者来自社会公众,那么就是公共云。
- 如果一个云端的资源来自两个或两个以上的云,那么就是混合云。
目前绝大多数混合云由企事业单位主导,以私有云为主体,并融合部分公共云资源,也就是说,混合云的消费者主要来自一个或几个特定的单位组织。
私有云
私有云的核心特征是云端资源只供一个企事业单位内的员工使用,其他的人和机构都无权租赁并使用云端计算资源。至于云端部署何处、所有权归谁、由谁负责日常管理,并没有严格的规定。
云端部署何处
这有两个可能,一是部署在单位内部(如机房),称为本地私有云;二是托管在别处(如阿里云端),称为托管私有云。本地私有云如图 1 所示。
图 1 本地私有云
由于本地私有云的云端部署在企业内部,私有云的安全及网络安全边界定义都由企业自己实现并管理,一切由企业掌控,所以本地私有云适合运行企业中关键的应用。
托管私有云是把云端托管在第三方机房或者其他云端,计算设备可以自己购买,也可以租用第三方云端的计算资源,消费者所在的企业一般通过专线与托管的云端建立连接,或者利用叠加网络技术在因特网上建立安全通道(VPN),以便降低专线费用,如图 2 所示。
图 2 托管私有云
托管私有云由于云端托管在公司之外,企业自身不能完全控制其安全性,所以要与信誉好、资金雄厚的托管方合作,这样的托管方抵御天灾人祸的能力更强。
云端所有权归谁
这存在两种可能,一种是归企业自身所有;另一种是归他人所有,企业租用。绝大多数本地私有云属于第一种情况,而对于托管私有云来说,租赁计算设备更具成本优势,云端规模伸缩也更自如。
云端由谁负责日常管理
一个云端的日常管理包括:管理、运维和操作。管理是指制定规章制度、合规性监督、定期安全检查、灾难演练、数据恢复演练、SLA制订与落地检查等,侧重于制度和人员层面。运维指日常运行维护,具体包括机器性能监控、应用监控、性能调优、故障发现与处理、建立问题库、问题热线坐席、定期输出运维报告、产能扩容与收缩、应用转产与退出等,侧重于设备层面。
云端的操作不是指云服务消费者的操作,而是指云端的例行日常工作,包括数据备份、服务热线坐席、日常卫生、与消费者的一些操作互动等。云端的日常管理可以完全由自己承担,也可以完全外包出去或者部分外包出去。
私有云的规模可大可小,小的可能只有几个或者十几个用户,大的会有数万个甚至十几万个用户,但是过小的私有云不具备成本优势且计算资源配置的灵活性体现不出来,比如家庭和小微型企业,直接采用虚拟化即可,技术简单、管理方便。就像智能照明系统不适合三口之家的小居室一样,因为只有几盏灯、几个开关,手动操作简单、方便,成本也低。
企业私有办公云现在被很多大中型单位组织采用,用云终端替换传统的办公计算机,程序和数据全部放在云端,并为每个员工创建一个登录云端的账号,账号和员工一一对应,相比传统的计算机办公有如下好处:
- 员工可在任何云终端登录并办公,可实现移动办公。
- 有利于保护公司文档资料。
- 维护方便。终端是纯硬件,不用维护,只要维护好云端即可。
- 降低成本。购买费用低,使用成本低,终端使用寿命长,软件许可证费用降低。
- 稳定性高。对云端集中监控和布防,更容易监控病毒、流氓软件和黑客入侵。
社区云
社区云的核心特征是云端资源只给两个或者两个以上的特定单位组织内的员工使用,除此之外的人和机构都无权租赁和使用云端计算资源。参与社区云的单位组织具有共同的要求,如云服务模式、安全级别等。具备业务相关性或者隶属关系的单位组织建设社区云的可能性更大一些,因为一方面能降低各自的费用,另一方面能共享信息。
比如,深圳地区的酒店联盟组建酒店社区云,以满足数字化客房建设和酒店结算的需要;又比如,由一家大型企业牵头,与其提供商共同组建社区云;再比如,由卫生部牵头,联合各家医院组建区域医疗社区云,各家医院通过社区云共享病例和各种检测化验数据,这能极大地降低患者的就医费用。
与私有云类似,社区云的云端也有两种部署方法,即本地部署和托管部署。由于存在多个单位组织,所以本地部署存在三种情况:
- 只部署在一个单位组织内部;
- 部署在部分单位组织内部;
- 部署在全部单位组织内部。
如果云端部署在多个单位组织,那么每个单位组织只部署云端的一部分,或者做灾备,如图 3 所示。
图 3 本地社区云
当云端分散在多个单位组织时,社区云的访问策略就变得很复杂。如果社区云有 N 个单位组织,那么对于一个部署了云端的单位组织来说,就存在 N-1 个其他单位组织如何共享本地云资源的问题。换言之,就是如何控制资源的访问权限问题,常用的解决办法有“用户通过诸如 XACML 标准自主访问控制”、“遵循诸如‘基于角色的访问控制’安全模型”、“基于属性访问控制”等。
除此之外,还必须统一用户身份管理,解决用户能否登录云端的问题。其实,以上两个问题就是常见的权限控制和身份验证问题,是大多数应用系统都会面临的问题。
托管社区云的示意图如图 4 所示。
图 4 托管社区云
类似于托管私有云,托管社区云也是把云端部署到第三方,只不过用户来自多个单位组织,所以托管方还必须制订切实可行的共享策略。
公共云
公共云的核心特征是云端资源面向社会大众开放,符合条件的任何个人或者单位组织都可以租赁并使用云端资源。公共云的管理比私有云的管理要复杂得多,尤其是安全防范,要求更高。
公共云的一些例子:深圳超算中心、亚马逊、微软的 Azure、阿里云等。
混合云
混合云是由两个或两个以上不同类型的云(私有云、社区云、公共云)组成的,它其实不是一种特定类型的单个云,其对外呈现出来的计算资源来自两个或两个以上的云,只不过增加了一个混合云管理层。云服务消费者通过混合云管理层租赁和使用资源,感觉就像在使用同一个云端的资源,其实内部被混合云管理层路由到真实的云端了,示意图如图 5 所示。
图 5 混合云
在图 5 中,假如用户在混合云上租赁了一台虚拟机(IaaS 型资源)及开发工具(PaaS 型资源),那么用户每次都是连接混合云端,并使用其中的资源。用户并不知道自己的虚拟机实际上位于另一个 IaaS 私有云端,而开发工具又在另一个公共云上。
由于私有云和社区云具有本地和托管两种类型,再加上公共云,共有 5 种类型,所以混合云的组合方式就有很多种形式了,如图 6 所示。
图 6 混合云的组合方式
混合云属于多云这个大类,是多云大类中最主要的形式,而公/私混合云又是混合云中最主要的形式,因为它同时具备了公共云的资源规模和私有云的安全特征。从图 7 中可以看出(https://www.rightscale.com/),私有云和公共云构成的混合云占比达到 55%。下面将围绕这种形式的混合云来展开阐述。
图 7 Rightscale公司给出的2016年报告
公/私混合云的优势
- 架构更灵活:可以根据负载的重要性灵活分配最适合的资源,例如将内部重要数据保存在本地云端,而把非机密功能移动到公共云区域。
- 技术方面更容易掌控。
- 更安全:具备私有云的保密性,同时具有公共云的抗灾性(在公共云上建立虚拟的应急灾备中心或者静态数据备份点)。
- 更容易满足合规性要求:云计算审计员对多租户的审查比较严格,他们往往要求云计算服务提供商必须为云端的某些(或者全部)基础设施提供专门的解决方案。而这种混合云由于融合了专门的硬件设备,提高了网络安全性,更容易通过审计员的合规性检查。
- 更低的费用:租用第三方资源来平抑短时间内的季节性资源需求峰值,相比自己配置最大化资源以满足需求峰值的成本,这种短暂租赁的费用要低得多,如图 8 所示。
图 8 平抑季节性资源需求峰值
公/私混合云的构成
- 私有云:这是混合云的主要组成部分,企业部署混合云的步骤一般是先“私”后“公”。
- 公共云。
- 公/私云之间的网络连接:一般为公共云提供商提供的高速专线,或者是第三方的 VPN。
- 混合云管理平台:是用户的统一接入点,实现资源的自动化、费用结算、报表生成、云端日常操作及 API 调用等,可以进一步细化为数据管理、虚机管理、应用管理等几个层面的软件。目前混合云管理平台产品有 VMware vRealize、Microsoft System Center、RightScale 等。
公/私混合云的功能
混合云可以做多个层面的事情,基本可以分为数据层面和业务负载层面。在这两个层面,有一些典型的应用场景,具体如下。
- 数据备份:将私有云的数据备份到更便宜和可靠的公共云上。
- 灾备:在私有云出现故障时,由公共云上的灾备环境提供服务。
- 负载延伸:当私有云无法提供新增负载所需要的资源时,在公共云上创建虚拟主机来支持新的负载,当负载下降后再删除这些虚拟主机回到纯私有云。
- 使用公共云作为开发测试云。
四、云计算的优势和劣势(优点和缺点)分析
任何一件事物都有利弊之分,云计算更不例外了,所以我们不能对它一概而论,只有充分地认识到这些优势和劣势之后才能更好的做出决断。那么下面我们通过一个情景案例具体分析一下它到底有哪些优势和劣势。
情景案例
云计算与传统的计算机系统相比,具有明显的优势,为了描述清楚这种优势,请看下面的情景案例。
我是 XYZ 公司的李老板,员工人数在 20 人以上,其中三分之二的人需要用计算机办公,公司会用到下面的软件与系统。
1)Word/Excel/PowerPoint:用于处理文字材料、电子表格和制作并演示 PPT 给客户观看。需要购买微软或者金山的 WPS 办公软件。
2)办公自动化软件:用于公司内部语音通话、视频会议、消息通信、审批自动流转、文件转发、收发传真等。
3)建立公司的网站:比如网站域名是 www.xyz.com,上下游公司都可以通过公司的网站了解我们的业务、反馈意见和建议,公司的重大新闻也要发布到网站上。公司网站就是公司的窗口和门户,一定要设计得专业美观,而且紧扣公司的主营业务。
4)公司邮件系统:我们要为每个员工分配一个公司邮箱地址,类似于 xxxx@xyz.com 格式,邮箱地址后缀统一为公司的域名,然后将邮箱地址印在员工的名片上。名片上绝对不能印免费的邮箱地址,因为如果一家公司连自己的邮件系统都没有,那么绝对是一家小公司。
5)ERP 系统:主要用来管理进、销、存和生产、财务、人事等,打通各个部门的业务数据通道,引入一系列的业务流程,最终目的是降低库存,留住和挖掘客户资源,加快资金周转,减少人力成本。ERP 系统安装复杂、价格昂贵、日常管理工作量大。公司从创立之初开始使用 ERP 比公司做大后再使用 ERP 效果更好,等公司做大后再使用 ERP 很容易失败。
6)产品数据管理软件:公司的产品线多,涉及成千上万的零部件,而且每个零部件又有几十个版本,所以我们不得不采用专门的产品数据管理软件来管理大量的产品数据。自从采用产品数据管理软件以来,产品研发周期明显缩短,而且版本控制有条不紊。
7)AutoCAD/Photoshop/Solidworks/Candence:我们必须要用这些专业的产品设计工具,而正版软件的价格异常昂贵,每年还有升级费用;公司做大后,不敢使用盗版软件,否则法律风险很高。
8)产品可靠性工程管理软件:为了提高公司产品的可靠性,我们必须要使用这种软件,但这样的软件价格都在百万元以上。
另外,还有如下要求。
1)公司内部的资料在没有授权的情况下,员工不能带出公司。必须严格保护公司的知识资产,包括各种文档资料、图纸、源代码、产品数据等。
2)员工出差时也可以随时访问公司内部的 ERP 等系统,即做到移动办公。
3)要求公司的网站、邮件系统和 ERP 系统不关机,也就是要每天 24 小时运行,允许员工和客户随时访问。
4)严格控制购买计算机和软件的成本,以及日常的运行维护成本,包括电费和计算机工程师的人力成本,资金都要用在刀刃上。
5)要求采用最先进的软件,如产品设计软件、ERP 等。
为了满足我的需求,我会参照如下方式行事,公司规模不同方案也不同。
1. 假如我公司是一家小型公司,员工人数在 200 人以内
1)部署远程桌面服务办公环境:
购买几台服务器部署微软的远程桌面服务,每个办公桌上放置一台云终端,给需要的员工每人一个账号和密码。各种软件(如办公软件、产品设计软件等)都安装在服务器上并且在服务器上运行,公司全部的文档资料也放在服务器上。云终端是纯硬件设备,里面不用安装 Windows 和各种应用软件。
这样做的好处有:
- 购买计算机设备的成本低很多。
- 只要购买正版软件,节约的软件许可证费用非常可观。
- 终端折旧周期长(8年以上),耗电极低,不容易出故障。
- 数据资料无法复制,云终端的U盘插口只能复制进去不能复制出来,数据资料集中存放在服务器上。
- 便于移动办公,员工可以在任何一台终端上登录云计算中心并办公。
- 计算机的日常维护工作量小,只要维护好服务器即可。
- 不容易感染病毒。
- 出差在外也可以轻松访问云端,实现移动办公。
2)租用公共云上的 ERP 软件、产品数据管理软件和可靠性工程软件等,前提是有这些软件的 SaaS 云服务提供商。
这些软件价格昂贵,如果单独购买安装在公司内部,那么对于我们小公司来说,是没有这个资金实力的,但是我们可以租用使用权。按账号每月付费,我租了 10 个 ERP 账号、3 个产品数据管理系统的账号和 2 个可靠性工程软件账号,先付了一年的租金,总金额不到 3 万元。
员工使用租来的账号和密码登录公共云后,就可以使用公共云中的软件,数据也存放在其中。公共云从不关机,所以我们可以随时随地访问 ERP 系统、产品数据管理系统和可靠性工程系统。
这样做的好处有:
- 小公司也可以使用以前只有大公司才用得起的大型软件系统,从而提高小公司的竞争力。
- 无须费心去日常管理这些系统。
- 无须购买服务器来安装这些系统,省去了不少电费。
3)租用公共云上的一台虚拟机专门运行公司网站和邮件系统,每年租金 2000 元。虚拟机从不关机,满足了我们的要求:网站和邮件系统随时可用。
如果我的公司之前用普通计算机办公,那么我就逐渐实施私有办公云,等计算机淘汰后就替换成云终端。这样,公司的计算机随着时间的推移会越来越少,而云终端会越来越多。
对于一家员工人数在 200~500 人的中型公司,方案与上面的大致相同,只不过要购买更多的服务器,租用更多的公共云账号。
2. 假如我公司是一家大型公司,员工人数在 500 人以上
部署本地私有云,全部服务器池化——10% 的服务器最终以物理机的形式让用户租用,90% 的服务器最终以虚拟机的形式让用户租用。因为公司一些核心的应用必须跑在物理机上,以便满足安全性要求。
云端设计成可伸缩的,服务器随着办公人数的变化而睡眠或者唤醒,比如晚上加班的人数少,大部分服务器处于睡眠状态,早上随着上班人数的不断增加,更多的服务器被不断唤醒。
另外,还要考虑一定数目的备份服务器,允许坏 3 台服务器而不会影响业务。还要对服务器做集群划分,不同的部门使用不同的服务集群,从而轻松实现安全控制。
1)员工办公使用的资源有两类,一是员工独占一台虚拟机,二是多个员工共享一台虚拟机(远程桌面服务模式)。对于一个具体的员工来说,到底是独占虚拟机还是与他人共享,要根据公司的安全策略来定。
这样做的好处是:
① 公司的各种文档资料能得到很好的保全,包括产品图纸、源代码、合同文本、客户资料等。就像波音公司那样,产品设计工程师全部采用云终端来完成产品设计,图纸是复制不走的。极大地降低了 IT 的投入,包括硬件的采购成本、软件的采购和升级费用、日常运行维护成本和计算机工程师的人力成本。
② 极大地提高了电子化办公的可靠性和稳定性。传统的采用台式机办公普遍存在各种不稳定的因素,如病毒入侵、不正常关机导致计算机软件破坏、计算机硬件故障、软件安装配置不正常、数据丢失等;而采用私有办公云,这一切问题都不复存在了。
③ 安装和升级软件极其方便,只要在服务器上操作即可,不涉及众多的云终端。要知道,大公司会使用数百个各种各样的软件,如果这些软件都要安装在每个员工的计算机上,那么工作量可想而知。
④ 便于做安全控制,如局域网接入认证、用户上网行为控制、日志登记、员工桌面监控、外发邮件监控、病毒查杀和入侵检测等。
⑤ 实现移动办公,员工可以在公司内部的任何一台云终端上使用自己的账号登录云计算中心办公,员工与计算机不再一一绑定。尤其是跨地区的集团公司,移动办公更能体现其优势。通过配置 VPN 接入,轻松实现出差在外的员工登录公司内部的云计算中心。
⑥ IT 日常运维工作变得异常简单,只要维护好云计算中心即可,从而可以减少大量的计算机运维工程师。
2)在云端专门划分一个集群,在该集群上的虚拟机中运行公司的 ERP 系统、产品数据管理系统、网站系统、邮件系统,以及其他大型应用系统。利用虚拟机做高可靠性比物理机更容易,因为虚拟机能轻松实现热迁移。在运行能力富余的情况下,我公司还可以对外销售 SaaS 云服务,让其他中小型公司租用这些昂贵的软件系统。
这样公司能灵活控制这些系统,方便积淀各种数据并做大数据分析,对外出租 SaaS 账号相比纯粹的公共云运营商更贴近用户的需求,因为我们本身就在使用这些系统。
通过这个情景案例,我们总结云计算的优劣如下。
云计算的优势
1. 对于社会
1)降低全社会的IT能耗,减少排放,真正做到“绿色计算”。
2)提高全社会的IT设备使用率,并降低电子产品的数量,从而减少因设备淘汰而产生的电子产品垃圾,对于保护环境大有裨益。
3)信息技术产业进一步合理分工——由资金雄厚、技术过硬、专业人士众多的机构负责建设并管理云端,从而提高了整个社会信息技术处理环境的可靠性。换言之,也就降低了因天灾人祸导致的生命财产损失。
4)形成新的云计算产业。
5)有利于全社会共享数据信息,打破信息孤岛。尤其是涉及公民的身份信息、档案信息、信用信息、健康信息及教育工作信息等的全国性公共云平台,带来的社会效益更是巨大的。
2. 对于云计算消费者
1)降低了信息技术成本:前期投入和日常使用成本得到大幅度降低,同时也降低了因各种IT事故导致的损失。
2)提高了数据的安全性,具体介绍见后续章节。
3)提高了应用系统的可靠性,具体介绍见后续章节。
4)提高了用户体验:当今网络无处不在,云计算消费者可以随时随地采用任何云终端接入云端并使用云中的计算资源,真正实现移动办公。
5)大型昂贵软件平民化:诸如可靠性工程软件、ERP 系统、CRM 系统、商业智能系统等云化之后以 SaaS 模式出租,这些以前只有大型企业使用的软件系统,现在广大中小型企业和个人都能用得起。
6)从复杂的 IT 技术泥潭中摆脱出来,专注于自己的核心业务和市场。
7)能快速响应消费者对计算资源的弹性需求,从而能及时满足企业的业务变化。在传统 IT 系统下,一项新业务对 IT 资源的扩容要求,往往在数月或者一年后才能得到满足,这使得市场人员和管理层往往难以接受,因为市场是瞬息万变的。
8)有利于企业之间或者个人之间共享信息,打破信息孤岛。
9)个人、中小企业和机构也用得起高性能计算。
云计算的劣势
1)严重依赖网络。
没有网络的地方,或者网络不稳定的地方,消费者可能根本无法使用云服务或用户体验很差。但这并不是云计算固有的缺陷,随着网络普及越来越广、网速越来越快,甚至是城市无线 Wi-Fi 全覆盖、国家无线 Wi-Fi 全覆盖的到来,将使网络不再是问题。
针对这个问题,现在有一些胖云终端产品,它会把一些常见的应用程序驻留在本地,同时缓存数据,当网络良好时,数据自动与云端同步。
2)数据可能泄密的环节增多。
云端、灾备中心、离线备份介质、网络、云终端、账号和密码,这些都有可能成为信息的泄密点。但是云计算使得数据信息遭到非人为因素破坏的概率大大降低了,比如在传统IT系统中,存储设备损坏、机房火灾、地震、雷劈、洪水等都会破坏数据,而在云计算环境则没有这些隐患。总之,云计算消除了一些数据泄密和破坏点,但是又带来了一些新的不安全因素。
3)相对于传统的分散计算,云计算把计算资源集中在一起,因而风险也被集中在一起。
云端成了单点故障,如果云端发生事故,则影响面将非常巨大。目前常见的应对措施是数据冗余存储、建立灾备中心、建立双活数据中心等。
4)用户对数据和技术的掌控灵活度下降。
对于 IaaS 云服务,用户无法掌控基础设施层;对于 PaaS 云服务,用户无法掌控基础设施层和平台软件层;而对于 SaaS 云服务,用户失去了基础设施层、平台软件层和应用软件层的掌控。
另外,数据存放在云端,如果数据量巨大,那么用户移动数据耗时又耗力,如果网速慢,则势必会严重影响数据的掌控灵活性。不过,对技术掌控降低反过来表示用户可以脱离繁杂的技术陷阱,从而专心关注企业的核心业务和市场,因此这也是优势。
五、云计算架构参考模型
图 1 所示是美国国家标准与技术研究所(简称 NIST)定义的通用云计算架构参考模型,图中列举了主要的云计算参与者,以及他们各自的分工。
NIST 云计算架构参考模型定义了 5 种角色,分别是云服务消费者、云服务提供商、云服务代理商、云计算审计员和云服务承运商。每个角色可以是个人,也可以是单位组织。如表 1 所示,列举了每个角色的具体定义。
图一
表一
角色 | 定义 |
---|---|
云服务消费者 | 租赁云服务产品的个人或单位组织 |
云服务提供商 | 提供云服务产品的个人或单位组织,如中国电信天翼云、阿里云、腾讯云等 |
云服务代理商 | 代理云服务提供商向消费者销售云计算服务并获取一定佣金的个人或者单位组织 |
云计算审计员 | 能对云计算安全性、云计算性能、云服务及信息系统的操作开展独立评估的第三方个人或者单位组织 |
云服务承运商 | 在云服务提供商和云服务消费者之间提供连接媒介,以便把云计算服务产品从云服务提供商那里转移到云服务消费者手中,如中国电信。但是广域网商和因特网商不属于云服务承运商 |
云计算中各个角色之间的交互示意图如图 2 所示,云服务消费者可以从云服务代理商或者云服务提供商那里租赁云服务产品,而云计算审计员必须能从云服务消费者、云服务提供商和云服务代理商那里获取信息,以便独立开展审计工作。
六、云服务提供商需要做什么?
云服务提供商是个人或者单位组织,他们负责搭建云端并对外提供云服务产品。支撑云服务的 IT 层可以由云服务提供商自己组建,也可以租赁其他人的云服务。比如,一个云服务提供商租赁其他人的虚拟机(IaaS 云服务),并在此虚拟机上部署 PaaS 云服务,然后再出租出去。
云服务提供商的五大任务包括服务部署、服务编排、云服务管理、安全保障和隐私保护,如图 1 所示。
服务编排
服务编排是指把各种系统组件合理地整合在一起,以便向云服务消费者提供云服务产品。
图 2 所示是从参考模型中单独截取出来的云服务编排模型,全部的系统组件分为 3 种类型,分别对应云服务编排模型中的 3 个叠加层,从下至上依次是物理资源层、资源抽象与控制层、服务层。
图 2 从参考模型中单独截取的云服务编排模型
顶部的服务层定义了云服务消费者访问计算资源的接口(简称访问接口)——IaaS、PaaS 和 SaaS。
SaaS 应用程序可以(但不是必须)搭建在 PaaS 组件上,PaaS 组件可以(但不是必须)搭建在 IaaS 组件上,这三者层叠在一起是组合方式的一种。
另外,从图 2 中可以看出,PaaS 和 SaaS 存在直角的单腿直立部分,表明可以单独构建各自的底层架构,比如 SaaS 云服务直接部署在物理服务器上,而不层叠在 PaaS 和 IaaS 组件上。对于一个具体的云服务提供商而言,其可定义全部的(3 种)服务模式或者其中的一到两种。
中间层是资源抽象与控制层,包括两类系统组件:
1)抽象组件
主要用于对物理计算资源进行虚拟化,虚拟化之后的资源就可以放入资源池中,以便将来供云服务消费者弹性租赁。抽象组件包括虚拟机管理平台(Hypervisor)、虚拟机软件(VM)、软件定义存储(SDS)、软件定义网络(SDN)等,其中虚拟机技术是最常见的资源抽象组件。无论如何,抽象组件必须能确保高效、安全和可靠地运用底层的物理资源。
2)控制组件
主要负责资源分配、访问控制和监控资源使用等。总之,本层的主要功能是把物理资源池化并有效管理被池化后的资源。
底层是物理资源层,包含所有的物理计算资源——物理服务器(主要包含 CPU、内存计算资源)、网络设备(路由器、防火墙、交换机、网卡等)、存储设备(如硬盘、存储阵列),以及其他物理的计算设施;也包含基础设施资源,如加热器、空调、通风设备、供电设备等。
三层叠加在一起,上层依赖直接下层。资源抽象与控制层利用下层的物理资源,向上层暴露资源池,而顶部的服务层利用下层的资源池向云服务消费者暴露服务接口,而云服务消费者不能直接操纵底层的物理资源。
云服务管理
云服务管理是指云服务提供商必须履行的一套流程和任务,以便圆满地把云服务交付给消费者。这些流程和任务分为三大类:业务支持、交付与配置、可移植性与互操作性,具体如图 3 所示。
图 3 云服务管理
1)业务支持
这是与客户有关的活动和服务,具体包括如下表所示。
名称 | 说明 |
---|---|
租户管理 | 管理租户账号、激活/禁用/终止账号、管理用户资料、解决租户提出的问题、处理投诉等。 |
合同管理 | 管理服务合同、洽谈/签订/关闭/终止合同等。 |
云服务产品管理 | 建立和管理云服务产品目录,以便用户浏览和选择等。 |
费用结算 | 生成发票并送交客户,回收款项,尽量做到现收现付。 |
报表与审计 | 监视用户消耗资源状况,产生有关报表,履行事后监督和审计。 |
价格管理 | 给云服务产品建立价格点和价格分层,监视竞争对手的报价并及时调整产品价格以确保竞争力。云服务提供商通常会给大客户提供价格折扣或者信用消费(先消费后付款)。 |
2)交付与配置
这是与资源有关的管理活动,具体包括如下表所示。
名称 | 说明 |
---|---|
快速交付 | 能快速响应用户的弹性需求,最好是自动化响应。 |
资源变更 | 包括替换故障设备、升级设备、添加新设备,从而扩充资源容量,以及重新配置现有的设备。 |
资源监控 | 发现和监视虚拟资源,监视云端操作和事件,并且产生性能报表。 |
计量 | 定义付费的计量方法,比如根据某类资源(如存储、CPU、内存、网络带宽等)的使用量和时间长短计费,也有按照每使用一次计费的,还有的是较复杂的公式。 |
服务水平协议(SLA)管理 | 具体涵盖 SLA 定义、SLA 实施监督和 SLA 执行评价,目的是保证服务质量。 |
3)可移植性与互操作性
云计算能节约成本,快速满足用户对资源的弹性需求,这使得一些潜在的云服务消费者有兴趣把计算迁入云端。然而,这些潜在的云服务消费者能否变成真实的云服务消费者,在很大程度上依赖于云服务提供者如何对待用户关心的安全、可移植性和互操作性问题。
关于可移植性,潜在的消费者非常想知道他们是否能够以较低的成本和最小的中断时间在多个云端之间迁移数据或应用程序。而对于互操作性,用户关心在两个或多个云端之间的互通能力。
为了便于用户进行数据移动、服务交互和系统迁移,云服务提供者应该提供一些有利机制(包括策略和工具),而不是故意设置障碍,以便黏住用户。
数据移动是指把数据复制到云端或从云端复制出来或者进行批量传输。
理想的服务交互能力是指用户能够通过统一的管理接口使用他们的横跨于多个云端的数据和服务。
系统迁移是指将一台完全关闭的虚拟机从一个云服务提供商的云端迁移到另一个云服务提供商的云端,或者在不同云服务提供商的云端之间迁移应用、服务和相应的内容。但是要特别注意的是,不同的云服务模式(IaaS、PaaS、SaaS)在可移植性和互操作性方面的侧重点不同。
例如,IaaS 模式侧重于迁移虚拟机并能在新的云端启动,因此,为了能迁移一台虚拟机镜像到另一个采用不同虚拟机技术的云端,必须移除云服务提供商加入到虚拟机镜像文件中的特有的扩展技术。如果这种扩展技术非常好且被广泛接受,那么云服务提供商应该公开这种技术细节,从而使得所有的 IaaS 云服务提供商都接受并把该技术融入自己的虚拟机镜像中。而 SaaS 侧重于数据可移植性方面,因此最好按照业界通行的标准进行数据抽取和备份,以便保证数据的可移植性。
安全保障
我们必须清晰地认识到安全性问题涉及云计算参考模型的各个方面,纵向上从最底层的基础设施到最顶层的应用,横向上包括全部的参与角色,如云服务提供商、云服务消费者、云服务代理商等。
基于云的系统仍然需要满足这些传统 IT 系统中的安全要求,如认证、授权、可用性、保密性、身份管理、完整性、审计、安全监控、事件响应及安全策略管理,对这些技术展开详细论述超出了本书的范围,下面着重讨论一下云计算特有的一些安全问题。
1)3 种云服务模式蕴含的安全问题
云计算的 3 种服务模式 Iaas、PaaS 和 SaaS 为用户提供了不同类型的接入云端的接口,同时也不可避免地成为不怀好意者的攻击入口。因此,在设计和实施云计算的过程中,需要充分考虑这 3 种云服务模式的内部机制和各自侧重的安全性问题。
例如,人们通常使用网页浏览器通过因特网访问云端的 SaaS 应用,那么在考察 SaaS 的安全性时,就需要重点关注网页浏览器的安全性。而 IaaS 消费者一般是远程登录并使用云端的虚拟机,那么在设计 IaaS 云服务时,就要重点关注虚拟机软件的隔离效果,因为运行在同一台物理机上的虚拟机相互之间的隔离效果越好就越安全。
2)4 种部署模型蕴含的安全问题
4 种部署模型也蕴含着安全问题,其中从租户的隔离程度来考察部署模型中的安全问题是一个不错的方法。
由于私有云只供一个单位组织内部的员工使用,所以在租户隔离方面就没有公共云那么重要。公共云上的租户来自五湖四海,身份复杂且不可预测,所以公共云上的租户必须严格隔离开来。
另一个观察部署模型所蕴含的安全问题的方法是采用安全边界(在《云计算的四种部署模型》节中介绍过),例如一个本地私有云的云端就不必再额外增加一道安全边界,因为云端本身就在消费者单位组织的网络安全边界之内,但是人们更倾向于给托管私有云的云端再建立一道安全防护边界。
3)安全职责共担
由于云服务提供商和云服务消费者对于云端的计算资源栈具有不同的控制范围(见图 4),与传统 IT 系统完全由一家单位组织控制不同,云计算系统要求云服务提供商和云服务消费者在设计、建设、部署和操作云系统时必须通力合作,双方共同努力才能构建一个安全的云计算环境。我们必须仔细分析每一项安全控制措施,再结合具体的云服务模式,确认其最佳的责任方(云服务提供者或云服务消费者)。
比如对于 IaaS 云服务模式来说,具备初始系统权限的用户账户管理通常由 IaaS 云服务提供商负责,而部署在 IaaS 环境(如虚拟机)中的应用程序的账户管理则由云服务消费者负责。
图 4 云服务提供商和云服务消费者的控制范围
隐私保护
上一小节的“安全保障”涵盖了隐私保护的内容,但是在云计算时代,个人信息、操作行为和习惯都存储在云端或者在云端留下印迹,所以隐私保护的重要性是前所未有的,有必要单独拿出来讨论。
隐私是指关于个人或者单位组织本身的信息,信息的主体不愿意公开而且法律没有规定必须公开的信息。隐私包括个人信息(PI)和个人身份信息(PII),PII 描述了个体的静态信息,如姓名、年龄、性别、住址、电话等,而PI描述了与个体关联的周边信息,如家庭、存款、社会关系、行动路线、驾照号码等。
主体的身份不同,隐私的具体内容也不尽相同。比如,普通民众的个人财产是隐私,但是公务员的财产就不是隐私(法律规定必须公开);再比如,企业的财务报表是隐私,但是上市企业的财务报表就不是隐私。
如果云服务提供商收集了消费者的身份信息或者操作行为和习惯模式,那么他们必须确保这些隐私信息能得到可靠保护,除消费者本人外,其他任何人都不能获取这些信息。对于全球性的或者跨国经营的云服务提供商来说,隐私保护的问题变得异常复杂,因为各国关于隐私保护的法律都不尽相同。