企业IT的价值要让它的客户也就是业务部门认同不是一件容易的事情。业务部门对企业IT往往有一些自己的看法,比如:IT提供有限的价值,是企业的成本中心;相对于IT服务的价值,IT的投资成本较高;无论是计算还是存储,经常遇到容量不足的问题;不能及时响应业务的变化;不能持续提供一致的服务水平,尤其是在可用性和弹性方面;在运行复杂IT环境时缺乏足够的能力;服务设计单调一致,缺乏个性化能力等。
这些认知中的大部分可以归结为成本、灵活性或服务水平的问题。当企业把内部传统IT的运行方式和效率与通过云计算服务提供的方式进行比较时,这些问题显得更为突出。于是,如何让企业IT以最少费用并增加服务灵活性和一致性就成为焦点。
公有云服务中的一些特点对企业的确非常具有吸引力,比如只需要根据资源使用量付费,通过快速部署来获得灵活性,弹性的容量扩展,以及一致的服务水平等。但是在许多企业场景中将应用和数据的控制权完全给第三方服务供应商是不现实的,比如银行、政府等机构的应用就有数据安全等方面的因素。这就带来了私有云的概念,企业需要按照类似公有云的一些技术和服务方式来提供企业内部IT服务,也就是说企业需要自己构建和运维数据中心。当然,企业自己的这些IT服务并不影响自身在适当的应用场景采用第三方的云计算服务。企业可以自己运维关键业务系统,但是同时也可以把一些标准的IT服务(比如电子邮件)采用第三方的云服务,比如微软的Exchange Online服务。
剖析传统数据中心
当前大部分数据中心的IT系统都是采用传统方式构建的。企业在构建这些数据中心的时候一般都把主要精力放在了保障应用能够稳定、安全和可靠地运行上,而在资源利用率、绿色环保等方面的要求相对考虑比较少。这类数据中心普遍存在以下情况。
1. 资源利用率低
数据中心中各种资源利用率低是目前普遍存在的一个问题。多家第三方机构的调研表明企业数据中心的服务器平均利用率一般低于15%。造成服务器资源利用率低的主要原因是,各个业务部门在提出业务应用需求时都在单独规划、设计其业务应用的运行环境,并且是按照最大业务规模的要求进行系统容量的规划和设计。比如,一个企业的财务应用一般在月末或季末的时候使用量比较大,而其他时间的使用量则比较小,但是为了保证系统能够一直稳定运行,这个财务应用的资源配置方式就是按照其最高峰使用量来设计。
2. 资源孤岛
根据业务系统的各自要求建设响应的IT设施并进行相应的部署实施。各应用系统建设相对独立的"孤岛",因此很难从IT基础架构整体的角度来考虑资源分配及使用的合理性。在以前进行SOA建设的时候,我们通过企业服务总线(ESB,Enterprise Service Bus)的方式,在应用层面来避免各个应用系统成为一个个独立的"烟囱"。但是从基础设施的角度看这些应用系统,它们还是一个个独立的"烟囱"。
这些资源一旦分配给某个应用系统,就相对固化了。不论业务系统真正投入生产后的具体使用情况如何,资源都很难再进行调配。因此,从整体上看资源利用率也普遍很低。
3. 自动化程度很低
传统数据中心资源配置和部署过程多采用人工方式,没有相应的平台支持,没有自服务和自动部署的能力,使大量人力资源耗费在了繁重的重复性工作上。因此,对业务部门的需求往往无法做到即时相应和准确有效。数据中心的自动化发展就像20世纪初福特T型车开创高效的汽车自动化生产线一样无可避免。传统数据中心对虚拟化技术的采用比较少,因此计算资源与底层物理设备的绑定使得资源的动态分配非常困难。由于企业中的不同应用系统是在不同时期由不同的项目团队建设的,因此相互之间的技术架构和平台差别比较大。数据中心里服务器和各种设备的数量和类型较多,不利于IT部门进行统一管理与维护。由于自动化程度较低,传统企业数据中心中管理人员与服务器数量的比例一般是一比几十,而现今的数据中心这个比例可以达到一比几千。
根据麦肯锡公司的估计,全球数据中心在基础设施和服务方面的开支每年超过3500亿美元,其中一半是在产品上的资本开支,一般是在人工和服务上的运营开销。目前IT的所有成本中大约有70%或更多是用于维护现有的基础设施的,只有30%或更少用在新技术和新应用的开发上。因此,数据中心的改造对企业来说意义重大。#p#
数据中心架构正在发生的变化
"话说天下大势,合久必分,分久必合"。我们可以看到一个很有意思的事情是数据中心架构的演变也有着类似的发展规律。在计算机刚出现不久的年代,数据中心最开始采用的是以主机为核心的计算方式。这是一张完全集中的方式。由于计算机的能力和计算需求都相对有限,能够拥有计算机的企业只需要部署一套主机系统就可以满足所有业务需要。主机的主要特点就是资源集中在一台大型计算机系统中,通过硬件的冗余设计提高整个计算机的可靠性。主机操作系统上的不同应用通过分时的方式共享这些计算资源。
随着计算需求的增加,一台主机逐渐不能满足用户的需求了。虽然主机本身的计算能力和可靠性都比较高,但是价格也非常高。因此,越来越多的企业开始采用一些市场上相对便宜的机遇UNIX的小型服务器。当X86服务器出现之后,企业也更多地采用了这种标准的服务器。这个时期的企业数据中心的不同应用都运行在自己专有的硬件服务器上面,相互之间是完全独立的。这些硬件和之上运行的软件一般都来自于不同的第三方供应商。数据中心就这样从集中演变到了相对分散的阶段。
随着计算需求持续增加,数据中心的规模也在不断增长。一个数据中心中包含成千上万台服务器的情景变得更为常见。当服务器数量持续增加的时候,我们发现数据中心的复杂度和管理成本急剧上升。大型数据中心面临的另外一个问题是可靠性。当一台服务器的可靠性达到99.99%,这意味着一年的故障时间约为53分钟。但是,假设数据中心中有一万台这样的服务器,那么要维护高可靠性就会变得非常有挑战性。虽然可以通过硬件的冗余设计来提高单台服务器的可靠性,但是这种方式的成本比较高,而且随着服务器数量的增加其有效性会随之降低。因此,大型数据中心采取的是通过软件的方式来提高系统的可靠性,在硬件服务器上通过一个软件层来构成一台逻辑上的计算机。这样当底层某一台服务器出现故障时就可以通过软件的方式进行隔离,由于整个数据中心规模很大,因此对整体计算能力和可靠性不会造成影响。像微软、Google、Yahoo等公司的数据中心,一般都是通过这种方式构建。由于底层都采用廉价和标准的通用硬件,因此不同公司的数据中心的关键竞争力都在于其上运行的软件系统。
我们可以看到数据中心的计算方式从之前的分散方式又逐渐回归到了集中方式。虽然这种集中方式是逻辑上的,但是用户感觉到的却是一台巨型计算机。随着网络带宽和软件技术的提升,在物理上分散在不同数据中心的计算机也可以形成一个统一的计算平台。
笔者在跟企业的IT管理人员交流的时候,经常跟他们讨论一个问题,那就是在做IT系统管理的时候是喜欢集中呢还是分散。绝大多数人的回答喜欢集中的系统,这样从管理上更为方便,可以采用更自动化的管理和资源分配方式。我们现在可以看到的趋势是把数据中心当成是一台巨型计算机。也许,这就是新的主机系统,只不过它更强大、更稳定。#p#
动态数据中心的基础思想
企业IT需要更加有效地利用基础设施资源,这不但需要高效地利用已有硬件环境,而且需要有一个可预测模型来增加新的设施。IT需要一个实时监控机制来理解系统的健康状况,并有一个自动修复手段在出错情况下保证系统的健壮性。动态数据中心可以帮助企业满足这些目标。动态数据中心通过利用自动化、控制和资源管理软件,以及虚拟化技术把服务器、存储和网络等硬件设施整合成一个能够共享资源,而且资源能够动态调节、高自动化和高可用的新一代数据中心。
动态数据中心符合数据中心发展的趋势,它提高了服务的可测量水平、可信赖水平和性能,同时提高了灵活性以及硬件、软件和IT员工的效用。从企业IT的发展来看,IT变得更为透明、面向服务并且追求效率和成本的平衡。因此,企业需要构建一个可以很好地调节和动态分配资源以满足业务需求,并以合理成本实现业务目标的动态数据中心,而且它必须能够实现工作负载移动性、自动管理以及高可用性。
动态数据中心带来的变革是它为开发、构建、部署和管理应用和IT基础设施提供了新的方式。动态数据中心带来的好处是多方面的。它能按照需要进行扩展,对市场的需求变化更为敏感。它还能让企业IT的服务更贴近业务的需求。动态数据中心的设计指导思想包括以下方面。
1. 以服务为核心
传统上企业IT部门都是按照技术来进行组织架构设计和分工。虽然这是一个非常直观的工作分配方式,但是这种方式增加了业务部门应用IT的复杂度。比如,如果某个部门需要通过公司的网站来发布一个新产品,那么久需要协调各个控制不同IT基础资源的团队,包括网络、应用、网站和存储等。业务部门需要与各个不同的团队协作才能保证产品的成功发布。企业IT需要使用ITIL模型,把部门转型为一个面向服务的组织。这样可以屏蔽底层IT技术的复杂性,将IT以服务的形式展现给最终用户。这种方式不仅可以提高效率,还可以增加业务部门用户的满意度。企业IT按照服务类别来组织,然后对IT基础架构进行统一管理。
通过这种面向服务的方式,企业IT可以通过内部费用核算的方式来对IT基础设施服务进行收费。这种费用核算方式可以帮助业务部门理解产品服务价值链中IT的成本,从而更有效、仔细地使用企业IT服务,而不是把IT作为无限的资源利用。同时这也会促使业务部门对IT服务提出更为具体的服务水平要求,使得企业IT也要构建最合适的架构来满足业务部门的需求。当IT作为一种服务参与企业生产价值链中的时候,它也就将顺理成章地逐渐演变为企业的战略业务资产之一,而不再被看成是一个成本中心。动态数据中心作为一个用来托管服务的平台需要采用服务管理的原则。这样业务部门可以直接通过服务目录来请求某种服务,而不用担心底层的网络、存储和服务器等基础设施细节问题。所有这些具体问题都由平台来负责,对业务部门的用户而言这些都是透明的。
2. 提供灵活性
负载的可移动性是动态数据中心的一个重要特征,也是其他一些要求的技术基础。当基础设施可以让负载移动的时候,无论是通过IT管理员或自动化软件来移动负载,都可以达到资源整合、节能或高可用等IT目标。当负载与物理资源绑定的时候,应用程序也就是业务与物理平台的性能、可用性和可扩展能力等完全绑定了。这种物理环境下的负载移动非常复杂且代价不菲。在不灵活的IT环境中迁移负载需要双倍的资源和仔细地计划,会花费管理员大量的精力。动态数据中心能够让用户快速部署新服务,并且能够根据需求增加或减少资源的使用量。由于通过虚拟化等方式把资源从物理设备抽象出来了,因此就可以通过共享的方式来优化资源的使用,从而提升基础设施的利用率。这种方式不仅可降低成本,同时也可提高服务的灵活性。
3. 公共设施化
动态数据中心能够提供高可靠性的服务,就像日常生活中的自来水、电话、电力等公共设施服务一样。当越来越多的应用部署在数据中心基础设施之上的时候,数据中心的可靠性就变得非常关键。动态数据中心在构建的时候强调系统的容错能力,但是在方案设计的时候则假定硬件肯定会出错,因此一方面要从软件设计角度保证平台的可用性,另一方面要能够尽量减少业务恢复平均时间(MTRS, Mean Time to Restore Service)。
所有动态数据中心的基础设施资源,包括网络、存储和服务器等,都设计成为一个统一的平台。假设一个数据中心中存储网络SAN没有设计成一个统一的平台,那么一个需要SAN的虚拟服务器A就不能快速地迁移到另外一个虚拟服务器B 。相反,由于动态数据中心的每台服务器连接在一个统一的网络和存储平台上,不同的负载可以方便地进行迁移,从而可保障服务的连续性。在一个动态数据中心,业务部门可以不同了解底层的基础设施组成,就可以得到可靠的、标准的并且可预测的服务。
4. 最小化人工操作
一个设计良好的动态数据中心具有动态执行任务的能力,能够自动侦测异常并及时响应。另外,数据中心上的应用应该能够自动根据负载增加或减少资源的使用。假设一个电子商务网站的性能由于过量的客户访问某热门产品而下降,动态数据中心就应该能够自动侦测到Web服务器性能下降的水平,然后找出一台有空闲处理能力的服务器,安装一个带新Web服务器的虚拟机,生成需要的存储空间并重新调整负载均衡设置。自动化的操作是动态数据中心的一个重要特点,只有这样才能大大提高服务效率。
动态数据中心的一个核心原则是在IT服务的生命周期中尽可能少地要求人工操作。一个设计良好的动态数据中心可以动态地执行运营任务,自动侦测和响应故障情况,并根据负载自动增加或减少资源分配。数据中心的管理工作将按照从人工到机械(半自动)再到全自动化的方向演进。
5. 透明的费用明细
动态数据中心提供根据服务的实际消费量计算的计费模型。对于业务部门来说,这可以让他们有一个非常清晰的并且可以预计的服务成本模型。这样,业务部门和IT部门可以相对容易权衡各种方案,比如可以方便地比较一些应用是利用第三方的服务还是使用内部数据中心。
所以,我们可以看到数据中心的平台设计需要从原来的硬件导向转变为服务导向,这意味着要构建能够自适应和调整的动态数据中心。如果从数据中心的角度来看云计算,我们可以发现云计算的发展实际上也是数据中心演变的一个趋势。上面动态数据中心的许多特点和要求与我们前面章节讨论的云计算有异曲同工之妙。动态数据中心的资源利用符合云计算的共享理念,传统数据中心中"烟囱"型的基础设施要转变为可以共享的资源池。
一个理想的企业数据中心是完全集成的,不仅底层的基础设施通过动态数据中心解决方案形成一个统一的支撑平台,而且之上的应用程序之间也通过面向服务的架构(SOA)方式相互进行整合,如图4.4所示。下面是笔者认为新型的动态数据中心的一些服务变化。
从机架和服务器部署变成点击和拖拽部署方式
从低利用率的裸机物理部署变成随需应变的虚拟资源部署
从专业人员的部署方式转变成自服务方式
从复杂采购流程转变为自服务和资源快速部署和释放#p#
从动态数据中心到云计算
虚拟化和服务器整合是目前非常流行的项目,但这些都是相对比较小的技术项目而很难对整个企业IT产生深远和战略性的改变。与一般只通过虚拟化来解决服务器正恶化问题相比,企业需要从整体上调整IT服务的方式。动态数据中心不仅仅是技术的一个演变,更重要的是它代表了IT服务方式的变化。动态数据中心结合了虚拟化、标准化硬件和自动化管理,再加上一些架构模型上的创新,从而使得面向服务的IT得以实现。IT服务管理上的可靠、灵活、低成本等目标都可以通过动态数据中心而得以实现。
动态数据中心也可以看成是面向云计算服务的数据中心。根据前面讨论的云计算内容,我们知道云计算是从服务消费者的角度产生的概念。这也就是为什么云计算有时也被认为是IT作为服务的一种方式。而动态数据中心是云计算服务的基础,它是从服务提供者角度产生的概念。无论是企业内部IT还是第三方的公共服务提供商,他们作为服务的提供者都需要通过具体的动态数据中心来提供服务。另外一个概念是绿色数据中心,这个概念主要指从建筑、电力、制冷等物理设施角度讨论数据中心的建设问题。这几个概念之间的关系如图4.5所示。
虽然企业可以通过不同的方式进行云计算的应用,但是对于需要进行私有云建设的企业,笔者认为建设动态数据中心是他们进行云计算实践的一个核心。
1、基本架构模型
动态数据中心的构建与传统数据中心相比有比较大的差别。自动化管理和高可用性需要通过一些新的技术手段和模型来实现。在讨论微软动态数据中心方案之前,我们先来看几个基本模型概念。
(1) 资源池。动态数据中心的资源池是所有经过虚拟化抽象之后的服务器、网络和存储等资源的集合。所有这些服务器从技术架构上来看是同构的,它们统一连接到网络和存储上去。根据实际需求,这些资源池中可能会分成不同的小组,以更方便地实现类似动态在线迁移这样的功能。当用户需要资源时,资源从资源池中分配出去,当资源使用完后被释放回资源池。动态数据中心通过软件方式保障平台的连续服务,因此在实际采取维护工作之前可以允许资源池中有一定比例的坏节点存在。
(2) 物理故障域。物理故障域是当上级硬件设备发生故障时会同时出错的一个服务器集合。比如位于同一个机架的服务器,当这个机架的电源出现问题时可能造成整个机架上的服务器都无法正常工作。理解物理故障域对于动态数据中心的可靠性设计非常重要,在设计工作负载的时候需要跨越不同的故障域。另外在做物理设备更新和维护的时候也需要根据故障域的划分来进行。
(3) 升级域。升级域是一个会被同时升级的服务器的逻辑集合。升级域的想法主要是为了划分资源池,从而使得在升级窗口时间内可以依次轮流升级。这样在做硬件升级或维护的时候,虚拟机环境可以从升级域中在线迁移到另一个环境,从而保证服务的连续性。
(4) 预留容量。为了保证所有应用在做升级域维护或一个物理故障域出现问题的时候能够正常运行,数据中心需要在资源池中预留一部分资源。这部分资源的大小就是预留容量,实际上它的目的就是让数据中心的资源有一个调配和周旋的余地。比如,假设数据中心有10个物理故障域,每个故障域中包含10台服务器,那么客户资源总分配就不能超过整个资源池的90%。
(5) 扩展单元。数据中心的容量估算是一个相对困难的问题,因为如果数据中心规模设计太大就会造成资源浪费,如果规模设计太小又会对业务发展造成掣肘。一般来说,随着业务量的增长数据中心需要进行容量扩充。扩展单元是一个事先定义好的用来扩展数据中心的的单元,其中包含服务器、网络设备、存储、电源和制冷设备等。扩展单元简化了数据中心容量扩充的工作,并能够在一定程度上降低采购成本。扩展单元是数据中心往模块化方向发展的一种体现。
上面描述的架构模型都是微软动态数据中心方案的一些实现要素,本章接下来的内容将主要讨论这个方案。
2、动态数据中心方案
动态数据中心解决方案是微软提供的基于云计算思想的数据中心优化和管理方案,其目标是对传统数据中心进行虚拟化和云计算架构的转型,不断提高IT基础设施的灵活性、降低硬件、能源和空间等成本,从而让企业能够快速响应业务需求,提高业务敏捷性。企业可以基于该方案快速构建面向内部使用的私有云平台,服务提供商也可以基于该方案在短时间内搭建云计算服务平台对外提供服务。动态数据中心方案能够让用户自己动态管理数据中心的基础设施(包括服务器、网络和存储等),包括开通、配置和安装等。其核心价值在于,可以帮助用户提高IT基础设施资源的利用效率,提升基础设施的应用和管理水平,实现计算资源的动态优化。
动态数据中心解决方案能够帮助企业创建虚拟环境来运行应用,用户可以按照需要弹性分配适当的应用配置,并且支持动态扩展。这个方案能够帮助用户实现数据中心的以下功能。
资源池管理:集中管理中心的硬件资源,包括服务器,存储和网络等。
动态分配服务:平台可以动态分配服务资源。
自助服务门户:用户可以根据需求自助申请计算资源,平台根据SLA和用户付费情况,决定审批结果。
应用和服务管理:应用管理,服务度量计费和SLA等。
服务的保障:数据存储和灾备服务。
3、动态数据中心的整体架构
动态数据中心解决方案从逻辑架构上来看可以分成下面四层。
(1) 资源层。
资源层是服务器、网络和存储等设备的集合,是一个融合了各种物理IT资源的基础层。这里的网络设备包括物理网关、路由器和防火墙等。存储设备是动态数据中心对外提供虚拟磁盘空间的基础,这些存储设备都是通过高速以太网或光纤连接在一起,从而保障了虚拟机的可移动性。在传统的数据中心中,由于建设时间和不同应用的差异等造成硬件平台差异比较大,而动态数据中心由于采用了虚拟化技术,服务器之间差异的必要性将不存在。因此,企业可以选择同一技术架构的服务器,从而不再需要管理各种不同的硬件平台、BIOS版本、备件等。通过标准化开发、测试和生产环境的硬件环境,可以大大降低管理的复杂度和成本,并减少出错的概率。另外一个附加的好处是,由于采购量的变化,企业还可以通过这种方式降低采购成本。
(2) 虚拟化层
虚拟化层是平台的核心之一,主要提供对物理设备的抽象以及未来对应用的虚拟化能力。在这一层,动态数据中心能够集成多种虚拟化技术和来宾操作系统(Guest OS)。动态数据中心的硬件虚拟化主要是基于微软Hyper-V 的虚拟化技术,同时可以集成第三方的虚拟化环境,比如VMware的ESX等。通过利用像Hyper-V中在线迁移这样的功能,应用程序虚拟化最开始时针对客户端计算机应用程序的部署问题,但是随着数据中心中服务器的增加,这个技术已经逐渐应用到了服务器端应用程序的自动化部署。另外,根据最终用户的需要,动态数据中心可以同时提供基于Windows的虚拟化环境或者基于Linux的虚拟化环境。
(3) 管理层。
虚拟化技术的出现一方面提升了资源的利用率和部署的灵活性,另一方面也为管理带来了挑战。管理层主要是提供对虚拟化资源、物理资源的管理能力以及负载均衡等网络服务能力,包括对计算资源的自动配置、动态分配、系统的备份和监控等。一般来说,这一层的功能不会直接开放给最终用户以及系统管理员,而是将能力提供给最上层的服务层,由服务层的相关功能来完成资源管理能力的集成,尽可能屏蔽用户对不同资源管理能力的要求。
(4) 服务层。
服务层包括两个方面:核心的系统管理服务和服务层门户。核心的系统管理服务主要是指将管理平台的能力通过标准的编程接口对外提供服务。这些标准的编程接口可以给其他应用使用,另外服务层门户也是通过这些编程接口与管理层进行集成的。服务层门户主要包括自助服务门户和管理门户。前者提供给平台用户使用,可以让用户完成产品的订购、资源的调整、提交服务申请等功能;后者提供一个集成的系统管理员功能,用于完成对资源的分配、审核、服务开通和系统安全保障等。