IT企业采用自动化来简化许多工作任务,但是,究竟是哪些因素推动了自动化在IT企业的各个新领域的需求的飞速增长呢?在本文中,我们将为广大读者朋友们介绍如何使用自动化来增强您企业的服务器虚拟化平台。
为了将自动化技术应用于新的领域,您企业将需要为其在各相关领域内的应用设定目标。然后,您企业需要查看可帮助实现服务器虚拟化平台自动化的相关工具,并将技术和策略与一定级别的监控进行整合。本文中,我们将详细说明自动化服务器虚拟化平台的具体目标,还将为您介绍所涉及的相关技术,并概述需要解决的相应流程。
随着企业管理员所管理的虚拟机数量的不断增长,虚拟化服务器自动化技术越来越具有吸引力,以便于管理员们尽量在少犯错的前提下完成工作任务。
何时部署自动化就不嫌晚
涉及到服务器的自动化部署并不是什么新的理念,但相关的工具和流程正在不断变化。鉴于自动化技术的部署所带来的诸如释放IT资源;及消除了代价昂贵的人为错误所带来恶劣影响等诸多方面的好处,企业采用自动化技术来执行某些服务器的任务是相当有意义的。
现代服务器自动化工具往往适用于三个方面:合规性、设置及配置。在部署实施现代工具时,应考虑企业现有的框架和管理策略,因为这进一步限制了发生错误或资源过度配置的可能性。
脚本也是一些企业部署虚拟化服务器自动化的主要部分,能够一致(且快速)地执行复杂的任务的负担,远远超过了更新和维护脚本的负担。下文中,我们将为您介绍关于服务器自动化工具的相关组件,同时还将就命令行工具和界面平台等话题展开讨论。来自TechTarget网站的服务器虚拟化专家Stephen J. Bigelow将通过一系列最佳实践方案的介绍来帮助读者朋友们充分利用服务器自动化。他介绍了自动化目标的必要性,解释了现代工具的相关功能,并介绍了与在部署实施过程中需要主要的相关考虑因素。
而IT专家Jason Helmick还将为您介绍自动化脚本。他在文中详细说明了脚本工具的真正用途和功能,以及如何实现自动化策略。
充分利用虚拟化服务器自动化
企业的IT专业人员需要负责日常的检查工作,包括配置、优化、监控和管理越来越多的虚拟机。而随着工作负载的持续增长,每项虚拟化任务的简化和自动化的需求变得越来越重要。
借助自动化工具的采用,管理员们可以以更快的速度和一致性执行任务,同时大大减少了需要进行故障排除和成本代价昂贵的修复的错误的机率。
自动化目标
服务器自动化的成功不仅取决于软件工具的采购和部署。鉴于每家企业组织的业务环境和软件工具各不相同,因此充分利用虚拟化服务器自动化需要首先确定明确的服务器管理目标,并对需要解决的问题有着敏锐的了解。如若缺乏这种前期的分析和评估,那么您企业只是在这些问题上投入了资金,并为已经足够复杂的数据中心环境进一步增加了复杂性。这方面的支出包括初始购置成本,以及年度许可和软件维护协议成本费用。
现代自动化工具集可以提供丰富的功能特性。大多数工具组功能大致可分为三个方面:合规性、设置及配置。
例如,设置创建虚拟机并为这些虚拟机分配预定的计算资源。这一设置过程通常涉及到安装操作系统,并且还可能包括执行实际工作的工作负载应用程序的安装。配置任务则包括对与特定虚拟机相关联的计算资源进行调整,并设置服务器硬件。配置工作还可能包括软件的安装、更新、打补丁和删除。合规性功能保持执行相应管理规则,确保根据企业的管理策略和监管治理要求进行设置、配置、安全性管理、审核、工作流程和其他服务器活动。
设置、配置和合规性等任务通常是按照企业的既定策略执行的。例如,较之较小的虚拟机,一台大型虚拟机的设置可能会涉及到更多的资源。同样,报告可能会标记一定数量的未被充分利用的虚拟机,这可能显示了虚拟机的蔓延——这些资源可以被恢复和重用。管理策略驱动的任务还有助于确保一致性,减少错误的发生并满足治理或合规性的要求(例如在特定地理区域的服务器上设置新的虚拟机或在设置一台新的虚拟机之前验证有效的操作系统许可证是否可用)。
许多服务器自动化工具可用于虚拟化数据中心。这方面的例子包括虚拟机管理程序特定的工具,如VMware公司的vSphere with Operations Management,以及包括惠普服务器自动化 (HP Server Automation)在内的综合工具。为了自动化高度可扩展的仓库级数据中心,有诸如StackIQ Boss、BMC公司的服务器自动化及类似产品甚至可以成为更大的软件框架的一部分,例如BMC公司的BladeLogic自动化套件。
采用命令行
尽管主要的软件供应商可能并不认可,但PowerShell、Perl、Python和其他脚本已然成为虚拟化服务器自动化的主要部份。供应商的分歧可能来自于脚本缺少可视化仪表板,便捷的报告和其他通常与基于GUI的工具相关的设计。脚本也可以进行更新和维护,特别是对于那些有着众多管理员正在编写和编辑自己的工具的大型企业而言。然而,脚本的举例说明了自动化的基本前提:其每次都能快速、一致地执行复杂且严格的任务。
用于VMware虚拟化服务器自动化的命令行工具的一个例子便是VMware公司的PowerCLI。该平台与Windows PowerShell集成,并提供超过400个cmdlet,允许虚拟化管理员自动进行虚拟机配置。
其还适用于vSphere、vCloud Director和vCloud Air(用于私有和混合云管理)的虚拟化服务器的网络、存储、客户机操作系统和其他元素。PowerCLI允许持久性和非持久性的对象定制、查看对象、检查虚拟服务器库存、访问数据存储等。命令行控制和脚本也存在于其他虚拟管理程序中,包括XenServer 6.5。虽然Windows用户可以遵从XenCenter GUI,但非Windows环境可以通过基于Linux的xe CLI操作或使用xe CLI进行脚本编写来操作XenServer。
命令行界面并非仅仅限于诸如PowerCLI或xe等点工具。BMC服务器自动化和其他综合性的自动化软件提供了一个用于管理UNIX和Windows计算机的网络Shell CLI,并通过一组脚本执行大量系统的管理。 惠普的服务器自动化提供了一个支持自动化脚本的UNIX shell和PowerShell接口。其还允许管理员在数据中心内的虚拟化服务器组之间查看和修改文件系统和其他属性。
从技术的角度来看,PowerCLI等命令行接口平台施加了一些系统要求。操作系统的类型,特定的操作系统组件(如微软.NET Framework)和Power-Shell版本受到控制。这为管理员们带来了相互依赖性的问题,而这些问题可能会影响到现有脚本,并且在每次操作系统或PowerShell组件更改时都需要进行脚本更新或修订。例如,PowerCLI将某些Snap-ins转换为PowerShell模块。这需要涉及使用Snap-ins的任何脚本进行更新,以检查模块。这不是一个重大变化,但仍然会使管理员们措手不及。同样,对于中小型IT部署而言,脚本可能会满足企业的自动化目标。
迁移到进程自动化
命令行工具和脚本可以完美地用于快速检查当前环境或处理特定任务。命令行脚本可以轻松地设置一台新的虚拟机,检查服务器上的库存或跨数据中心部署服务器中软件补丁。然而,基于脚本的自动化通常是根据需求或按需使用,通常并不考虑对相关工作流程或业务流程的了解。
例如,设置一台新的虚拟机就足够简单,但是,这个过程几乎不会单独出现。通常需要其他任务的配合执行来使新的虚拟机工作,例如这涉及到需要将虚拟机添加到Active Directory,更新企业的配置管理数据库(CMDB),自定义或优化新的虚拟机操作系统,配置新安装的应用程序,甚至通知虚拟机的所有者(或其他业务利益相关者)等相关工作已经完成。
这些后续步骤可以根据企业既定的业务政策进行手动执行,但这种做法可能导致出现错误和疏忽,甚至可能破坏企业的管理。
虚拟化服务器自动化越来越依赖于进程或工作流程自动化工具来管理管理数据中心的众多流程。诸如VMwware公司的vRealize Orchestrator(vCenter套件的一部分)等工具有望帮助IT管理员开发复杂的自动化任务,并整合策略引擎、脚本引擎、检查点系统(保存系统状态)和API支持的功能(适用于第三方插件)。类似的工具,包括惠普的惠普流程调度(HP Operations Orchestration)软件、NetIQ Aegis和BMC公司的Atrium Orchestrator,通常都支持类似的功能,包括具备可扩展性来处理具有数千个并发工作流的大型数据中心。
在考虑一款进程自动化工具时,重要的是评估其在整个环境中的兼容性,包括与硬件组件(服务器、存储和网络)及软件(操作系统、虚拟机管理程序和备份工具)的充分兼容。
关闭环路
无论您企业所选择的自动化工具的复杂性或覆盖范围如何,每款产品或平台的目标都是相同的:加快常规方案的处理,提高IT员工的工作效率并减少错误。但使用虚拟化服务器自动化工具并不能保证其有效性。故而在工具部署完成后进行跟踪,以评估其所带来的益处及是否需要改进是很重要的。例如,在设置新的虚拟机时节省了多少时间?故障排除时间是否减少?错误或疏忽是否减少?流程是否可以审核?
请记住:部署一款自动化工具只是一个开始。随着技术或业务需求的变化,将需要对进程进行定期的审核。
IT自动化的益处往往被忽视或被误解。这种清晰度的缺乏往往导致许多IT专业人员将自动化归类为其他人的问题。管理员执行太多的冗余进程,以及需要人工操作总是无法实现的那种无瑕疵的复杂过程。企业需要由IT提供的可靠的、可衡量、高效的结果才能保持竞争力,而自动化则是取得这一成功的桥梁。
工作流程自动化工具非常有用,但自动化的脚本——PowerShell则尤其可以帮助管理员完成更多的工作。
在物理和虚拟数据中心的复杂化不断增长的大环境中,无论是内部还是外部,您企业都不应该依赖某位员工来记住如何启动某款模型,并执行保持其运行的重复功能。
自动化有助于引导发动机的运行并解决许多问题,其中包括:
重复。如果一项任务需要在可靠性和一致性的级别水平上多次执行的话,那么您企业应该执行自动化并安排该任务。
人为失误。对于成功的大型运营而言,消除人为失误,特别是在危机管理过程中是至关重要的。即使是一位优秀的管理员,在出现严重的中断的极端压力下,一次人为操作失误也会使情况变得更糟。
文档方面的挑战。自动化技术以清晰文档的形式提供了具体的说明和预期的可审计的结果。故而企业可以审查IT团队是否具备记录在案的灾难恢复计划。如果其已经实现了自动化,那么答案应该是肯定的。
自动化涉及新的挑战
当然,自动化并不能神奇地解决所有的IT挑战难题。良好的自动化策略需要企业首先了解应该在何处使用什么样的工具,以及哪些技术可以使这些工具更好的发挥价值。
自动化可以有几种形式。 Windows Server和System Center虚拟机管理器(SCVMM)中的图形服务器管理器等工具提供了一些自动化和可扩展功能,例如将角色部署到多台服务器或一次管理多台虚拟机。但是,您不应该将其误认为是灵活的自动化环境。没有图形用户界面(GUI)会了解您企业的特定业务需求。
处理任何商业行为的灵活性均需要一款不受向导和有限按钮限制的工具。最好的自动化策略提供了一个开放的可能性和控制领域——这也意味着可能发生完全的失败。毕竟,并不存在一套简单的、一刀切的自动化方法。
企业IT部门必须与业务方面合作,制定有价值的自动化计划。IT需要与企业的业务部门建立合作关系,而不是对手关系。
PowerShell的优势
一款可以提供基于标准的、跨平台、可扩展自动化的特定工具非常值得投资。虽然每家供应商特定的GUI都具有优点,但大多数自动化挑战的答案是PowerShell。无论企业用户对其的好恶如何——您企业都将采用它,或者被其自动化。
依赖于类似Unix操作系统的IT专业人士几十年来一直在使用PowerShell。他们知道,真正的自动化意味着能够同时与许多对象实时交互,而自动化脚本编写则是提供最大灵活性的一种方法。这是通过命令行shell实现的,而最受欢迎的shell便是PowerShell。其已被VMware、微软SCVMM和Citrix XenApp所采用。
这方面的一个例子是:一家企业需要一台支持运行Active Server Pages .NET的应用程序的新Web服务器。典型的解决方案可能如下所示:
登录服务器
打开GUI服务器管理器
选择所需的角色和角色服务
重启服务器
PowerShell中的解决方案可能是:
登录到服务器
打开PowerShell并键入:
PS> Install-WindowsFeature Web-Server, web-Asp-Net
直到您添加规模化要求之前,并没有太大的区别。例如,负载平衡中的50台Web服务器需要托管新的ASP.NET应用程序。那么GUI管理的答案是:
登录服务器
打开GUI服务器管理器
选择所需的角色和角色服务
重启服务器
下一台服务器(x50)
该解决方案需要花费数小时或数周的工作,无需文档,没有诸如忘记添加ASP、NET等人为错误的空间。由于自动化,IT专业人员能够执行这样的工作:
在桌面台式机上打开PowerShell,并键入:
PS> Invoke-Command -ComputerName Web1,Web2,Web3 {Install-WindowsFeature Web-Server, web-Asp-Net}
是的,可以从文本文件、.csv文件或更好的Active Directory中检索计算机名称,但是该命令基本相同。原因是通过使用PowerShell Remoting,您可以在几分钟内安装并配置所有50台服务器所需的一切。这是一个简单的例子,但重点是清晰的:我在几分钟内就完成工作,我对企业的价值高于GUI管理员。
如上所述的自动脚本指令是发送到计算机部署和配置软件的必要(或分步)指令。 PowerShell提供了一种声明性的方式,与Unix中的Puppet或Chef类似,用于管理和控制系统配置。
自动化站点
PowerShell具有“所需的状态配置”,这意味着我可以声明一个要求,如“我需要50台新的Web服务器,看起来像这样...”,资源(逐步说明)将执行我的愿望要求,而不需要某人了解操作的细节。这不仅扩展了应用程序和服务器的部署,而且还允许您防止大规模的漂移(随时间推移发生不期望的更改)。
PowerShell自动化为IT专业人员提供了跨平台的工具来部署和维护所需的状态。其允许CIO请求50台新的Web服务器,并能够在几分钟内实现。总的来说,如果恰当的实现了自动化,IT部门可以更贴近的满足企业业务部门的需求。
当涉及到关键的业务需求、重复性的任务时,通常最适合采用自动化来满足安全性和可靠性。