云计算 频道

《让云触手可及:微软云计算实践指南》

  2.3 迎接云计算

  在讨论企业应该如何应对云计算时代到来之前,我们先讨论一下云计算的一个通用参考架构。这样我们可以更为清楚地看到企业应该从哪些方面入手来切入云计算的应用。

  2.3.1

  云计算参考架构

  1. 客户端

  根据之前对云计算的一些讨论,我们可以把我们的参考架构从上到下大致分为四层。

  客户端是最终用户使用云计算服务的途径,主要是目前用户常用的几种终端设备和应用,包括PC 和浏览器、移动终端设备以及电视等。用户在办公、家庭和移动等不同的场景下需要通过不同的方式来使用云计算服务。以前认为浏览器就是一切的观点,在现在的技术条件和用户需求下已经显得过于极端和不合时宜。智能的云计算服务同样需要通过智能的终端设备来提供良好的用户体验。相信自然用户界面将会在终端设备普及,现在人们快速接受的多点触摸方式就是一个非常好的例子。

  2. 软件即服务

  软件即服务这一层可以分为两大类应用服务。一类我们可以称之为水平应用服务,这类服务是一些通用的IT 应用服务,基本上与行业没有密切关系,比如办公自动化、电子邮件和门户应用等。另外一类我们称为垂直应用服务,这类服务是针对每个行业的特定业务而设计,因此每个行业都有各不相同的应用服务。比如政府行业有自己的电子政务、社会保险等应用服务,而石油石化行业有自己的生产执行、过程控制等应用服务。

  3. 平台即服务

  我们知道平台即服务是指把一个完整的应用程序运行平台作为一种服务提供给客户,但是对于不同企业它的实现是不一样的。这里的关键区别在于这个平台要提供什么样的服务给开发人员。对于传统的企业来说,IT 技术更多表现为对业务的支撑,因此这些企业的平台即服务主要抽象的是IT 层面的能力,比如身份认证、服务总线、工作流等。对于那些更加依赖于IT 技术的公司来说,如电信、互联网领域的公司,它们可以把公司业务能力通过平台对外提供服务。比如电信公司在构建公有云平台的时候就可以把电信能力开放作为一个重点。这不仅可以促进电信业务的开展,也可以使其与IT 公司所提供的云计算平台服务有所差异。另外一个业务能力开放的例子就是一些互联网公司,比如一些社交网站就需要开放一些应用层面的编程接口以扩展平台业务并增加平台的黏性。

  4. 基础设施即服务

  基础设施即服务主要是把IT 的底层硬件,包括服务器、存储和网络等通过管理平台对外提供服务。虚拟化技术在这类服务中起到了一个重要的作用。通过抽象的方式,虚拟化技术,包括服务器虚拟化、存储虚拟化和网络虚拟化等,让硬件资源的动态分配成为了可能。由于企业IT 系统的复杂性,以及对应用兼容性和对已有投资的保护等要求,基础设施即服务是目前企业在做私有云建设时的重点。与传统托管服务相比,基础设施即服务能够提供更加灵活的服务方式,更小的资源分配粒度和更动态的资源分配方式。因此,传统的一些主机托管服务商会逐渐向基础设施即服务的方式进行演变。

  开发工具管理和业务支撑

  图2.10 云计算参考架构

  然而企业实现或采用云计算服务的时候,图2.10 所示的三层服务并不一定需要同时提供或实现。比如,企业实现了一个平台即服务类型的服务,其底层肯定是基于一定的IT 基础设施来实现的,而且其中很可能也使用了虚拟化等技术,但是企业并没有对外提供基础设施层的服务,那么企业提供的还是一种平台即服务。当然,企业也可以同时实现三层服务并且都可以对外独立提供服务。

  从服务的提供和消费来说,另外一个重要的组成部分就是服务的管理和业务支撑。这里包括服务水平协议,服务的监控和报表,以及服务计费等内容。由于这些内容与开发工具一样与所有层次服务都有关联,因此我们就把它们纵向放在了参考架构的右侧,如图2.10 所示。

  2.3.2 五项准备工作

  云计算已经为企业应用完全做好准备了吗?还没有。云计算的采用在一些场景中可能还有些问题,不过云计算正在迅速成熟。云计算的概念在新兴企业中非常流行,因为云计算适合他们购买产品的方式并且正在改变我们所知道的IT 产业。

  对于大企业来说“先私后公”是一个能够保护已有投资,并且能够保证业务和技术连续性和平滑过渡的方式。企业在向云计算转变的时候是一个系统工程,它涉及各个方面的影响。云计算对于企业不是一个要与不要的问题,相反它是一个什么时候以及如何开始着手的问题。不同企业会根据自身业务来决定向云计算演变的节奏,但是我们认为企业现在可以马上开始几项准备工作,而这些工作可以帮助企业顺利过渡到云计算

  的服务方式。

  1. 增加虚拟化的投资和技术储备

  我们知道虚拟化是跟真实相对的一个概念。在计算机领域,虚拟化主要是指把一部分计算机资源抽象或者分离出来。这种抽象和分离可以涉及计算机系统的各个方面,比如服务器硬件、存储、操作系统、网络、应用程序和屏幕展现等。所谓抽象是指把多个分散的资源表示成一个,比如计算机集群、RAID 等就是这样的例子。这种抽象式虚拟化的好处主要就是简化系统。所谓分离就是把资源之间的耦合性降低或者把一个资源分隔成多个使用。现在大家讨论最多的虚拟化一般就是指这种分离式的虚拟化,其体现出来的本质就是解耦。能够进行动态灵活的并且按照业务进行按需资源分配是IT 服务的目标。虚拟化技术的出现让我们向这个目标迈进了一大步。

  云计算是一种把IT 作为服务提供的计算方式,而虚拟化是云计算服务构建的一种核心技术。当然,虚拟化对于不同类型的云计算服务的作用不尽相同,但是对于大部分基础设施即服务的云计算来说,虚拟化是其不可或缺的一种实现技术。如前所述,企业自己构建云计算平台的一种相对简单的方式就是采用基础设施即服务的方式改造现有硬件平台。进行云计算的基础设施改造会涉及数据中心大范围的变更,因此对那些已经有大量投资的企业来说要在短时间内做这样的修改比较困难。但是,鉴于虚拟化在企业私有云构建中的作用,企业需要从现在开始增加对虚拟化的投资,并开始一些虚拟化项目来使用它。

  企业采用虚拟化可以为企业解决或缓解一些非常直接的问题,比如通过服务器的整合来降低数据中心的能耗问题,缓解数据中心的空间增长压力等。无论是在开发测试环境还是在实际的生产环境中,虚拟化技术都可以给企业带来不同的利益。按照微软的基础设施成熟度模型,可以把企业的虚拟化应用分为四个不同的阶段,包括基本阶段、标准化阶段、高级阶段以及最终的动态阶段。当然,这些不同阶段对虚拟化技术的应用复杂度也各不相同,其各自的特点如图2.11 所示。

  图2.11 企业虚拟化应用的不同阶段

  我们可以看一个企业采用虚拟化技术的例子。Kroll Factual Data 是美国的一家金融信息服务公司,他们采用微软的虚拟化解决方案把数据中心的虚拟化程度提高到了85% 。Kroll Factual Data 把数据中心的650 台旧物理服务器整合成22 台新的物理服务器,每台新物理服务器上运行30 个虚拟机。这个虚拟化项目使得这些服务器省电将近90% ,并且让他们能够在几天之内测试和上线一个新的产品。企业对虚拟化技术的应用一方面可以解决企业数据中心目前直接面临的问题,另一方面通过逐步的虚拟化应用可以理解基础设施即服务类型云计算的一些特点并为今后整个数据中心的云计算改造做好准备。

  2. 采用标准化的和可扩展的硬件设备

  基于开放标准的硬件设备在过去十几年取得了长足的进展。以服务器为例,基于x86 体系结构的服务器无论是性能、可靠性等方面都可以与传统高端服务器进行竞争。这些标准的服务器有着良好的性价比,再加上有许多不同的供应商可以选择,因此企业已经越来越多地在采用这些基于x86 的服务器。根据IDC 每个季度的全球服务器市场跟踪信息,我们可以清楚地看到服务器市场的发展趋势。表2.1 所示是不同服务器类型按照服务器数量的市场份额情况。

  表2.1 IDC服务器市场数据

  服务器类型 市场份额(2009年第4季度) 市场份额(2010年第1季度)

  Windows 73.9% 75.3%

  Linux 21.2% 20.8%

  UNIX 4.4% 3.6%

  如果回想一下服务器市场最初的情况,它的发展方向就非常清楚了。现在越来越多的可靠性要求可以通过软件方式来提供,而不像以前完全依赖于硬件层的可靠性从而迫使用户使用专用的服务器硬件。这种通过标准化硬件架构来构建平台的方式在互联网企业中最为普遍,目前规模大一点的互联网企业无一例外都主要采用这种方式构建,而且越来越多的传统企业在逐渐增加它们的应用。

  建议企业采用标准化硬件的另外一个关键原因是目前主流的服务器虚拟化技术主要是基于x86 体系结构的服务器。虽然服务器虚拟化技术是在主机上最先出现,并逐渐应用到小型机上,但是真正大规模普及还是在基于x86 服务器上。我们知道云计算需要构建一个资源池并通过共享的方式来提高资源利用率,一个理想的状况是这些资源池主要基于同构的硬件设备来构建。企业采用标准的硬件设备将有利于将来实现一个大的共享资源池,而不是一个个不兼容的硬件孤岛。

  3. 统一虚拟和硬件环境的管理

  虚拟化的技术的确能够在许多方面为企业带来好处,但是同时它也在某种程度上为企业的资源管理带来了一些挑战。企业部署虚拟化技术之后,底层硬件与上面运行的软件之间的联系就被削弱。采用虚拟化技术可以帮助企业降低物理系统的数量,但是它并不会减少所拥有系统的数量。相反,由于新建一个系统环境的难度和成本大大降低,整个IT 环境中的虚拟系统数量可能会急剧上升。

  如果没有一个良好的管控,虚拟化会给基础设施的管理带来混乱。软硬件之间的联系切断,服务器环境变得更不固定、更复杂。这就是为什么会有IT 管理专家指出如果没有良好的管理,虚拟化带来的便利将被抵消。虚拟化可以优化诸如服务配置和补丁分发等这样的流程,但也同时增加了IT 专业人员可能没有想到的复杂化。比如,以前主要是为操作系统和应用程序打补丁,但是使用虚拟化之后不仅这些工作仍必须进行,而且现在用户还必须对可能存在安全漏洞的虚拟机管理器层打补丁。

  图2.12 在线动态迁移

  让管理工作变得更具挑战的是现在虚拟化中还有一个在线动态迁移的技术(如图2.12 所示)。这种技术让虚拟机可以在正常工作的情况下动态地从一台物理机迁移到另一台物理机。这种迁移可以在人工操作下进行,也可以在事先设定条件下根据运行环境的变化自动进行。因此,要随时定位一台虚拟机具体运行在哪一台物理服务器上变得不是那么容易。所有这些挑战都要求IT 管理人员有一个端到端的管理解决方案。这个管理方案不仅可以管理原来的硬件环境,还可以统一管理虚拟化环境,为管理人员提供一个单一视图,用于显示物理和虚拟IT 基础设施对其所支持服务的影响。这种统一的管理方式能够打通虚拟环境与物理环境的联系,构建端到端服务模型,提供出色的基础设施可视化。一个统一的管理能够帮助企业减少故障排除时间并缩短平均修复用时,能够极大降低IT 成本,同时帮助企业提高IT 服务质量和可预测性。

  4. 优化IT服务流程

  随着IT 技术的进步和商业化分工的细化,我们将要看到的是一种新型的完全互联的,且能够及时响应的“实时企业”。企业内部就像有神经网络系统一样,数据能够通畅流动,并能够在事件发生的第一时间快速做出响应和决策。这是一个非常美好的愿景,但同时也对企业的IT 服务提出了更高的要求。IT 服务流程需要与未来这种“实时企业”的业务特点相匹配。

  实际上现在已经有几个新的技术或服务方式对企业IT 服务流程带来了一些变化(如图2.13 所示)。首先是面向服务架构(SOA )的实施。企业采用SOA 的思想方式来构建IT 系统,会给IT 服务与企业业务之间的结合方式带来一些变化,IT 响应业务变化的能力也会得到提升。其次是虚拟化技术的采用。如果企业采用了虚拟化技术,那么企业提供基础设施资源的流程就会发生变化。我们以服务器虚拟化为例来说明这个问题。传统物理机的提供方式需要每次都进行一个实际服务器设备的采购流程,然后再进行实际部署,到用户可以实际使用这些物理资源的时候一般都需要一个比较长的服务流程。但是如果采用虚拟化方式,用户申请一台虚拟机的流程显然要更为简便。最后一个相关的因素是服务的外包。如果企业采用了一些外包服务,那么也会给企业的服务流程带来很大的变化。企业可以把一些非核心的IT 业务内容外包给第三方,但是企业IT 部门仍是服务的主要战略制定和质量控制方。企业IT 也需要能够相对平滑地把第三方的服务与企业自己的服务进行集成。

  云计算给企业带来了一种新的IT 服务模型,因此它将进一步推动企业IT 服务流程的变革。企业可以利用云计算变革的契机,对IT 服务流程进行一次优化和调整。比如,许多企业的不同部门都有自己的数据中心,或者说虽然有统一的数据中心但是系统归各个部门自己的IT 队伍负责维护。云计算的一个关键理念是资源的共享和整合,因此企业IT 部门可以借助云计算战略推动企业范围内的资源整合,数据中心的运维由IT 部门负责,而企业的各个业务部门作为数据中心的客户。这种资源整合的调整有利于将来推动云计算项目的实施。

  图2.13 服务流程优化

  5. 调整应用架构

  在传统的Web 应用设计中,我们在架构上一般采用基于多层架构的设计,在Web 层中会大量使用负载均衡等技术。一般的处理方式都是在应用程序设计好之后,在应用部署的过程中事先把环境配置好,而应用程序在运行过程中配置都是不变的。但是,随着云计算时代的到来,我们开始面对一些新的挑战,相应地应用程序设计方式也随之发生了一些变化(如图2.14 所示)。

  由于云计算平台能够提供高可扩展性和弹性资源分配,因此许多人会认为只要构建了一个云计算平台,自己的应用程序部署在上面就能够实现随着负载的变化自动分配计算资源了,而且也会变得更加可靠。这是我们经常会遇到的一个误解。如果应用程序在传统物理服务器环境的运行过程中存在一些可靠性问题,那么最好不要把云计算平台当成是一个灵丹妙药。如果需要构建一个可以灵活扩展的应用系统,那么我们不仅需要底层基础设施能够进行弹性扩展,上面部署的应用程序也需要能够支持水平扩展。需要指出的是并不是所有应用程序都是可以扩展的,比如云计算系统构建中一个常见的扩展瓶颈就是关系型数据库的扩展能力。我们可以非常方便地通过升级硬件的方式来垂直扩展数据库这类应用平台的性能,比如更快的处理器、更多的内存等,但是由于关系型数据库本身的设计特点,要在水平方向进行扩展却是比较困难的。因此,如果企业在基础设施层面实现了或将要实现动态资源扩展能力,那么需要在应用架构设计上来保证其上的应用也可以实现相应的水平扩展能力。只有当底层平台和应用程序都能够动态扩展时,整个应用系统才能实现可动态扩展的能力。

  图2.14 云计算应用模型

  无论是功能上还是性能上云计算对应用的灵活性都提出了更高的要求。这就要求应用程序在设计的时候要考虑松耦合的架构。耦合度与灵活性一般是相反的,即耦合度越高灵活性越低,耦合度越低灵活性越高。因此,在做企业应用架构设计的时候,一般要追求松耦合的设计。比如,在做Web 应用设计的时候,对于用户状态的保持就需要尽量采用无状态的方式来设计,这样应用程序的水平扩展能力会比较好。企业对应用架构上的调整和准备可以帮助企业今后更为顺利地把应用程序迁移到云计算平台上去。

0
相关文章