书城计算机网络云计算和现代远程教育
48566000000011

第11章 云计算的特性(1)

数据中心一直以来都面临一些值得关注的关键问题,例如安全性、可用性、可伸缩性等。在即将进入的云计算时代,这些关键问题又具有了新的内涵,本节将介绍云计算中这些关键问题的特点和研究进展。

3.1安全性

在云计算环境中,用户不再拥有基础设施的硬件资源,软件都运行在云中,业务数据也存储在云中,因此云计算安全关系到云计算这种革命性的计算模式是否能够被业界接受。云计算的安全问题主要有两方面:一是云计算自身环境特有的安全问题,二是云计算会怎样改变现有的软件系统安全防护模式。

从云计算自身环境特有的安全问题来说,传统的观念认为将信息保存在自己可控制的环境内,比存放在不了解、不熟悉的地点更安全。因此,云计算在安全领域遇到的第一个问题,就是传统用户无法认可自己不可控的环境能提供更好的安全性。其实,用户的个人电脑或者中小型服务器、数据中心,远没有云计算环境安全。因为在云计算环境中,数据中心和它运行的基础服务都有专业的机构和人员进行运营和管理,他们比个人用户及中小企业的IT管理员更有安全管理的经验。同时,云计算提供的资源抽象、隔离、用户管理等技术,也能更好地提高安全性。另外,由于云计算提供的规模效应,用户可以在付出更小成本的情况下享受更高级别的安全服务。

不过,云计算还有一些安全问题有待解决。由于云计算最开始是在企业内部网络运行,并不对外开放,因此云计算在设计之初没有太多考虑安全性问题,从而导致云计算开放后在安全方面的一系列问题。(1)传统的IT系统是封闭的,存在于企业内部,对外暴露的只有网页服务器、邮件服务器等少数接口,因此只需要在出口设置访问控制、防火墙等安全措施,就可以解决大部分安全问题。但在云环境下,云暴露在公开的网络中,任何一个节点及它们的网络都可能受到攻击,因此安全模式需要从“拒敌于国门之外”改变为“全民皆兵,处处作战”,而大多数安全厂商还没有准备好迎接这样的场景。(2)在云环境中,用户的服务系统更新和升级大多数是由用户在远程执行的,而不是采用传统的在本地按版本更新的方式,每一次升级都可能带来潜在的安全问题和对原有安全策略的挑战。另外一个严重的问题不是技术层面的,而是政策法规层面的。虽然人们经常将数据存在云环境中与把钱存在银行中做类比,但是云环境与银行最大的区别就在于银行业是一个传统的行业,有相应的法规来规范银行的流程和制度;国家或者相关机构对银行的信誉进行了担保,而对于云环境来说,目前缺乏有效的规范和立法,云环境提供商的信誉完全依靠于用户的认同感。对云计算环境的规范和立法,也是一个需要关注的问题。

目前,应对云的安全问题,有一个传统的技术可以派上用场,就是虚拟专用网(Virtual Private Network,VPN),VPN在云计算出现之前已经普遍地应用于企业网络应用中,一个典型的场景是,企业对自己的网络设置了防火墙和安全策略,在默认的情况下,如果用户处于企业外部的网络,由于他不在企业内部的网段之内,他就无法访问很多企业内部受保护的服务。但在很多情况下,用户需要在家庭、宾馆、户外等场所接入企业网络以实现移动办公,这时就可以使用VPN。VPN会给这种移动用户提供一个虚拟的企业内部的网络地址,用户通过身份认证、授权等方式,利用这个虚拟地址接入企业内部网络进行办公。VPN的这种使用场景在云计算的环境内可以得到很好的应用,云服务提供商以及云用户可以设置灵活的访问控制策略,使用户还是像在传统的局域网内一样地使用云,由此一定程度上克服云计算的安全问题。当然,云环境也为安全策略提供了新的思路。例如,传统的病毒防护模式需要杀毒软件在用户本地储存病毒特征库并及时对其进行更新,从而对本地的病毒进行实时监控。用户需要经常从杀毒软件公司的数据库下载最新的病毒特征库,用户之间是相互独立的。而在云计算环境中,用户高度互联,任何一个用户遇到问题,几乎可以实时地发布给云内的其他用户,多个用户可以协同解决这个问题。这样就避免了频繁更新病毒特征库的操作,而且可以直接享受到最新的安全服务。

3.2可用性

可用性(Availability)是指软件系统在一段给定时间内正常工作的时间占总时间的比重,通常用百分比来衡量。在传统的数据中心中,影响服务可用性的因素有服务器异常宕机、服务被攻击、操作系统崩溃、软件崩溃、停电、网络中断等。数据中心管理员需要采用冗余和灾难备份等方式来保证服务的可用性。然而,这些冗余或者灾难备份系统的引入又带来了新的问题,比如冗余备份带来副本一致性问题,以及更高的采购和管理开销。软、硬件设备和系统自身出现问题是不可能完全避免的,云计算高可用性的本质是通过技术创新,保证即使软、硬件出现问题服务仍然可用,比如虚拟化技术提供的快速部署、虚拟机实时迁移能力,都将云计算环境的可用性提到了一个新的高度。

云环境能够在最大程度上减少资源的不可用对业务系统的影响,打造具有高可用性的计算环境。在云计算中,提供对运行时间的保证和服务级别协定已经成为对大多数云计算提供商的标准要求。这些云计算平台大多声称能够提供99.999%的可用性。但实际上,现有的云计算环境也出现过可用性问题,这些问题的出现使得人们对现阶段公有云计算产品和服务的高可用性产生了质疑。

为了提供真正高可用的服务,云计算的提供商正在研究常见故障的分析及预测模型。基于对这些模型的研究,云计算服务商希望能够预测到可能的可用性问题,并通过提前准备副本、提前解决故障、通知用户等手段来避免这些故障的发生,或者减少故障发生带来的损失。

3.3可伸缩性

可伸缩性(Scalability)是软件系统的一种特性,具备可伸缩性的软件系统能够通过资源的增加或减少来应对负载的变化,并保持一致的性能。很多传统的应用程序在设计和编码阶段,并没有考虑可伸缩性问题。现代数据中心中的大规模服务在设计之初已经开始考虑可伸缩性问题,并做出了很多有益的尝试。

可伸缩性管理的实现方法主要是垂直伸缩(Scale Up/Down)和水平伸缩(Scale Out/In)。垂直伸缩是指在现有的服务节点上增加或者减少资源,比如,增加或减少CPU、内存、线程池和存储空间等。而水平伸缩是指在现有的服务节点基础上增加或者减少服务节点,从而支持更多或者更少的服务请求。水平伸缩需要原有系统提供对多个服务器组成的集群的管理,包括数据同步、统一监控、负载均衡和性能调优等。在云计算环境中,对于应用的垂直伸缩和水平伸缩都可以通过云计算的基础设施平台得到支持。比如,在一个基于服务器虚拟化的云基础设施中,垂直伸缩可以通过对虚拟机的资源调整来实现。虚拟化平台提供了丰富的接口,使管理员可以方便地调整一个虚拟机的CPU、内存或者存储资源。对于水平伸缩,则可以通过增加或减少应用对应的虚拟机节点来完成。在云计算的环境中,应用在理论上可以做到随意伸缩,即应用所占用的资源可以随着负载的上升或降低而增加或减少,从而保证在不同的负载下仍然能获得一致的性能。

云计算对于可伸缩性的要求通常包括及时、适量、细粒度、自动化和预动性。这些要求同样适用于云基础设施。虚拟机的资源调整可以即时生效,保证了可伸缩性管理的及时性要求;资源的伸缩基于应用对于资源的需求,因此保证了可伸缩性管理的适量要求;CPU、内存、存储资源等可以在非常细的粒度上调整,保证了可伸缩性管理的细粒度要求;基于应用性能及资源需求的自动化可伸缩性管理保证了自动化需求;基于应用历史记录、应用模式及预测模型预测出的可伸缩性调整,满足了可伸缩性管理的预动性需求。