在企业中,老生常谈的“少即是多”通常是正确的,IT也不例外。这意味着寻求使用已有资源响应不断增加的资源需求,效率往往更高。上述方式往往是通过任务自动化以及使用脚本、批处理任务简化流程来实现的。尽管这些方式对单个系统或任务很有效,但应用范围有限,因为通常无法超出单个系统的限制。为使IT行业继续满足业务需求,脚本化必须发展为能够跨越多个系统的自动化工具。
单个任务自动化仅仅是自动化之旅的第一步。当今的IT基础设施是多个系统的组合,多个系统之间必须无缝交互以使组织能够以令人难以置信的速度运转。这听起来很棒,实际上每个厂商都拥有各自的IT自动化工具。
PowerShell改变了自动化
寻求基础设施自动化的IT专业人士多年以来一直在使用API,但这些API往往在范围和功能上受限,直到微软发布了PowerShell。PowerShell不是第一个也不是最好的IT自动化工具,但由于Windows系统很流行,PowerShell具备大规模安装的基础。微软很明智,没有选择锁定PowerShell,用户能够使用第三方插件将PowerShell扩展到其他环境,比如VMware、NetApp以及Dell。
随着PowerShell的流行以及虚拟化的不断发展,产生了很多编程语言用于满足自动化需求。很多环境要求能够编写代码以实现自动化。编码通常不是用鼠标以及图形用户界面就能实现的,需要具备编程功底。对不熟悉编程的人来说,关键是从小处着手,最好的办法是从使用受控的测试开发环境开始,这样即使出现了预料之外的结果你也能够承受得起。自动化主要的吸引力在于能够快速执行任务,但也意味着出现错误时你无法阻止它对基础设施继续造成破坏,因此额外的测试往往是个不错的主意。
刚开始使用自动化时,最棒的事情之一就是社区中的某个人很可能已经把你想做的事儿做完了,而且大多数人乐于共享代码。所有主流厂商,包括微软、Puppet实验室、Chef以及Ansile都拥有很强大的社区,提供了丰富的示例代码,并且有专家乐于帮助新来的人。微软甚至更进一步,基于用户与图形用户界面的交互生成了一段PowerShell代码。拿到示例后,修改代码要比从头开始编写代码容易得多。
选择IT自动化工具
在决定使用哪款IT自动化工具时,你应该考虑如下因素:不同厂商的产品提供的核心功能之间的差异,能够在哪些平台下使用,当然还有成本。微软PowerShell是Windows环境的理想选择,而Puppet实验室、Chef以及Ansile更适合VMware环境。然而,这并不意味着它们专为上述平台而生:Puppet实验室、Chef能够扩展到微软Azure云平台。VMware的PowerCli也能够使用PowerShell插件。很多自动化工具被包含在基础产品中,为寻求支持的用户提供了一个起点。然而,对所有免费的产品而言,配套的支持及社区可能不如授权产品那样强大。
有一款产品由于其独特的自动化方式而脱颖而出,这就是VMware vRealize Orchestrator (vRO)。vRO并非基于编码的自动化工具,而是基于图示工作流,主要是为VMware基础设施而设计的。拥有图形用户界面并不一定会使vRO变得更易于使用,某些人甚至可能由于vRO是一款基于工作流而非基于功能的自动化工具而持相反的观点。此外,vRO基于业务流程而非自动化任务。这并不是说vRO不能完成任务—实际上可以将PowerShell以及其他功能集成到vRO中。与其他工具相比,vRO运行在不同的级别,vRO与其他工具彼此协作而非彼此对立。
开启自动化之旅时,有很多的产品与平台可供选择。为确保你已经对打算实现的业务范围进行了评估,需要确定里程碑并建立稳固而安全的自动化策略。购买正确的IT自动化工具、开展针对性的培训并借助相应的产品社区,如果取得了成功,不要忘了把部分代码回馈给社区。