对IT企业来讲,将应用顺利交付给用户和客户是最重要的事情。特别是在当今全球经济委靡的时代,这一点变得尤为重要,而且更加富有挑战性。面对销售团队小型化和自助式消费的趋势,越来越多的客户将通过企业的网站和应用获得对公司的第一印象。在企业内部,员工可能居家办公,或者办公场所不再配置本地IT资源。为了保持高效,应用的性能较好是一流的,确保每个人都能获得所需的性能成为首要的工作!
虚拟化首先在数据中心的应用被高度认可
虚拟化得应用交付,如鱼得水,成为传统IT架构的颠覆者
应用交付技术是提高客户和用户应用性能一种公认的方法。根据InformationWeek分析机构对267名专业IT人士的调查,70%正在考虑或已经使用应用交付方式来改善他们的客户和用户体验。相同的调查显示,56%的机构将应用传送到远程办公地点,42%的机构提交给远程用户。值得注意的是,10%的受访者使用云服务。
IT界的发展趋势是整合计算资源,建立更大的数据中心,这样可以节省硬件投入,控制劣质项目,总体上对计算资源进行更好的控制,使企业必需的低耗应用越来越多。显而易见,虚拟化解决方案是一个不二选择:通过共享硬件资源了降低了费用,虚拟机从一台服务器转移到另一台服务器提高了灵活性,配置完全相同的虚拟机的快速响应增加了工作的弹性。
应用交付和数据中心虚拟化这两种技术的混合对IT基础架构提出了挑战,特别是那些涉及监测应用性能、按需调整应用及支持云端应用的基础架构。构建合理的架构将会带来诸多好处,如负载平衡得以改善,性能更加稳定,应用可以从内部数据中心无缝迁移到云服务等。
供应商了解到了这一优势,并开始在应用交付控制器(ADC,Application Delivery Controllers)—如思科的ACE,Citrix的NetScaler,F5的BigIP—和管理程序及虚拟化管理工具之间寻找结合点。来自ADC的数据可以交由系统管理程序使用,以确定何时启动或关闭虚拟机。ADC的虚拟化技术已经应用多年,它负责代理用户和服务器之间的的连接。用户所访问服务器的公用IP或主机名不发生变化,但是可以添加或移除服务器。ADC将会立刻使用新的服务器,并同即将移除的服务器断开连接。而这个过程对用户是不可见的。
但是,用户使用虚拟服务器时,对服务器资源的管理与使用物理管理程序完全不同。使用物理服务器时,用户可以管理和修改服务器资源,而且服务器和软件能够获准支配所有硬件,用户无需担心服务器的运行状况。由于较高延迟往往意味着高负载,因此ADC通常是基于流量监控来分发负载或确定最小负载服务器。
管理程序将配置好的固定资源在许多虚拟机间共享,因此可用资源具有不可预测性。系统管理程序软件可以将CPU和内存分配给每一台虚拟机,但是在虚拟环境中,输入/输出和线程的数量往往不是瓶颈。 “我们习惯用来进行系统监控的大量数据,如CPU利用率、内存使用情况和磁盘I / O数量,这些与虚拟服务器无关,”云服务提供商BlueLock首席技术官Pat O'Day说, “线程数非常重要,因为,如果线程数低,就意味着线程很快就会得到服务;而如果线程数大幅上涨,这可能表示工作量激增。同样,磁盘读取或写入操作的影响远不及队列深度重要,后者会随资源的争夺而增长。”
虚拟化可以让用户以在物理服务器模式下闻所未闻的方法来扩展应用。用户可以轻松地通过分配服务器硬件来添加或删除虚拟机。有两种方式可以用来主动进行调整:一种是按需调整。这种方式下,当连接数量增加和出现更高的新连接速率时,用户可以在ADC上看到。另一种是基于服务器负载调整。这种方式下,可以进行垂直调整,通过添加或移除服务器来管理性能;也可以进行水平调整,将虚拟机从较高负载的管理程序移动到较低负载的管理程序,以改善性能。用户可以对任意一种形式进行手动调整,主要是为了控制成本。当用户按占用计算资源的数量付费时,一个分布式拒绝服务攻击(DoS)或导致服务器活动激增的Slashdot可能使用户的预算大大增加。
水平调整需要到将虚拟机(包括虚拟机的网络和存储资源)从一个管理程序迁移到另一个管理程序,以便更好地管理每个服务器的负载,或者在进行维护时关闭服务器。这就意味着适度规划服务器比超规模配置服务器硬件更能保证用户的应用性能需求。其中的难点在于,把虚拟机从一个系统管理程序迁移到到另一个系统管理程序时,要确保网络和存储配置在目标系统上可用。
虚拟机的迁移一旦完成,网络设备需要知道IP地址和MAC地址同样也进行了迁移,并相应地调整转发表。虚拟机和ADC的集成可以确保连接不会丢失。 如VMware的Vmotion将运行中的虚拟机从一个系统管理程序移动到另一个时,只会引起虚拟机毫秒量级的暂停。但是,由于需要关闭多数TCP连接,MAC地址的迁移可能需要更长的时间。虚拟机离线并恢复连接的同时,ADC排队等候连接,因此系统管理程序和ADC的集成模式可以实现这种转换的平滑过渡。
自动调整技术把IT人员从资源管理任务中解脱出来,但不一定取代人的管理。在实际应用中,IT人员需要一定的经验和时间制定规则,用以限制虚拟器启动和关闭。对IT人员和企业来讲,其好处是不必设计最坏的场景,取而代之的是,只需设计典型方案并将用于峰值负荷的空闲资源池共享即可。
例如,服务器的负载或流量增加时,如果这仅是间歇性的流量高峰,简单设置一个自动阈值可能会导致不必要的虚拟机配置。这时候,我们需要了解的是一个给定的时间内,用于表征应用程序合格性能和负载配置的历史行为记录。然后,在业务规则(如服务水平协议)的基础上,在应用池内通过添加、删除或迁移虚拟机,以保持可接受的性能水平。
这个过程使IT人员距离“一键式”服务器配置更近一步。业务流程在不同基础架构的组件之间协调资源配置,如交换机、IP地址、DNS服务器和ADC。业务流程是一个过程,一些新产品,特别是供应商的完整产品线,如HP Insight或Citrix's Workflow Studio,可以帮助管理这个过程。许多ADC已经或者很快就要同管理程序或管理程序的管理软件集成,这也将大大改善业务流程的处理过程。
例如,F5公司提供了一个软件插件,用于插入到VMware的vSphere和vCenter,使VMware管理员能够把管理程序和BigIP ADC的数据指标同业务流程事件结合起来。如果CPU占用率越来越高,连接不断扩大,这可能表明需求有所增加。为应对不断上升的需求,启动一个新虚拟机来处理负载可能是一个很好的举措。无论是新虚拟机自动启动,还是由操作人员发动,业务流程都会接管这个新启动的实例,等待虚拟机来联机,然后自己加入BigIP ADC的应用程序池。同样,需求下降时,业务流程会首先关闭虚拟机的连接,将其置于应用程序池之外,然后将它闲置。
流程管理不单单是为云提供商和财富500强设计,任何使用虚拟化且有应用交付需求的公司都可以轻易的从中获得稳定的收益。位于密歇根州的区域性医疗服务提供商Cherry Street健康中心MIS系统经理Ken Brower,正将他们公司的数据中心进行虚拟化,以便从更高效的计算和增强的可靠性中获益。他正考察流程管理软件,以简化管理。“我们必须从手动配置流程转为程序控制,以帮助我们监控和管理虚拟服务器,”他说。他的主要需求是实时监控、基于事件的动作、容量规划工具以及单一窗口的管理。
云时代马上就要到来,我们不能忽视这一点。云计算正以这样或那样的方式进入各个企业,他们要么将所有的应用全部推向云端,要么用云来处理超额工作流程,都产生了可观的经济效益。如果云服务使用同一基础设施,用户可以通过相同的虚拟化软件,管理自己的服务器,还可以在云端运行ADC。
虚拟ADC可以通过把虚拟机和ADC作为一个单位在服务器间整体移动而简化应用迁移的过程,从而减轻了自动配置的任务。当然,还有一些潜在的问题需要解决,如容量规划和可靠性。
容量规划比较复杂,与虚拟ADC独占硬件不同,它访问CPU和I / O必须通过管理程序(反之亦然),这意味着其他虚拟机可能会影响虚拟ADC的性能。幸运的是,有些功能(如TCP协议优化、会话管理、负载平衡)并非资源密集型。另一方面,一台虚拟ADC不足以支持压缩和加密等资源密集型的功能。因此,可以卸载此类硬件功能模块。
许多组织使用多层ADC来加强处理能力和管理整体负载。例如,保健信息服务提供商RelayHealth的网络工程主管Scott Lokey,介绍了其公司的多层应用交付网络。RelayHealth公司使用多层ADC进行面向客户的连接管理、SSL及压缩。每一层都有自己的功能,处理请求会分发到不同的硬件设备,整体性能得到提高。另外有一台内部的ADC,用来进行各层服务的负载平衡。
将绑定某种应用的虚拟ADC同处理资源敏感型操作的物理ADC结合起来使用,是一种比较合理的设计。虚拟ADC是一个新领域,用户需要多加监测,以了解它们如何影响应用的整体性能。
虚拟化技术的推动力量之一,就是在故障转移中易于安装应用服务器,这其中也包括虚拟ADC。不过,必须要确保为每台服务器提供故障转移的虚拟ADC驻留在同一管理程序,但不依赖相同的网络基础设施。在前一种情况下,如果管理程序失败,用户将失去ADC的,也不会保留备份。后一种情况是任何人都熟悉的系统故障设置:设置尽可能多的冗余路径,以消除单点故障。通过这一程序可以达到两个目的:在不同的硬件设备上保持故障保护装置和虚拟环境。
如果在云端运行ADC,用户不得不接受一定的可靠性损失。由于无法指定虚拟机运行在云端的具体某台设备上,因此ADC、应用服务器,或备份ADC,可能会在相同的物理服务器或其他共享组件上运行。
云计算仍处于起步阶段,除了能够进行动态调整的应用托管之外,还有其他功能值得期待。一些云提供商如BlueLock和SoftLayer,推出了负载均衡作为其核心服务的一部分。但是,应用交付的内涵远远超出负载平衡。它的其他功能还包括SSL卸载、特定应用加速、压缩等等。目前,客户了解到的ADC功能还很有限。
云计算需要靠应用交付落地
托管ADC的一个重要特征是多用户。如思科的市场主打产品ACE即支持多用户请求,具有在同一硬件上隔离不同用户请求的功能,每个用户可以有独立的管理员,并通过VLAN把每个用户请求的网络流量分隔开。分区功能甚至允许管理员将一定比例的资源专门分配给一个特定用户。
虚拟化与ADC一道,为用户提供了一个把应用进程轻松推入其他数据中心甚至是云服务的机会,这种方式称为cloud bursting。 ADC可以重定向客户端到服务器的通信流量,无论是内部或外部,而客户从表面看不出该服务的任何变化。这是互联网上数据中心间迁移连接的一个简单方式,对当前连接没有影响,也不必等待路由的变化。通过这一业务流程,管理员可以将成倍增加的连接和虚拟机推向云服务,以满足间歇性的处理需求。
“效用计算”一词创造出来将近十年,虚拟化正把计算转变成一种应用。如果你的企业正在考虑应用交付,这项技术值得引起注意。