仅以此系列献给那朵菊花。
随着各种业务对IT的依赖渐重,企业的IT基础架构规模不断扩张。作为一名系统工程师我们将如何应对这种日益增长的IT架构呢?在以前系统管理员就像流水线上的一名工人,不断重复的做着同样的工作;现在这一切即将改变,我们将引入一批工具,这批工具是“可编程”的,你只需要为这批工具写上几行“代码”,它便会帮你自动完成所有的工作。而这批工具就是我们研究的对象,之后的一系列文章我将详细介绍这些工具。我慢慢写,你慢慢看。
系统工程师可利用的自动化运维工具可以分为三大类:预备、配置管理和监控。
在早期,Linux管理员可能会整理出一个软件包列表,通过rpm进行批量软件安装。后来,我们用Kickstart来执行无人值守的Linux安装。现在,Cobbler把这个功能提升到了一个新的高度:它实现了物理机与虚拟机的并行系统构建,并且可以进行DHCP和DNS的配置。Cobbler还集成了其它的工具,比如用于配置管理自动化的Puppet等软件。这个工具可以在系统安装完毕后进行服务的自动更新。
配置管理工具用来设置参数或者开启一个新服务器上的服务。配置管理可以用于服务器自动构建。服务器自动构建工具可以加速部署速度,并可以在短时间内大规模部署服务器,同时也可以让构建过程更容易复制。在发生严重故障时,还可以重建架构。
上述大部分工具都是实时的,可以用来进行变动并执行某些任务。然而,它们却缺乏关于当前系统状况的信息,于是监控工具就有了用武之地。对于传统的系统管理员而言,监控无非是在发生错误的时候通过一个页面或者一封邮件提醒他们。但是,监控工具--比如Nagios、OpenNMS和Zenoss Core--能够提供更为完善的服务器性能检测。这些信息告诉管理员们有关运行中的应用正处在怎样的状态下。它们中的一些甚至可以调用配置管理工具进行自修复。例如,Zenoss Core可以在一个检测状态台上通过Cfengine、Chef或者Puppet来重新配置服务。
在DevOps GameDay上演示了一个自动故障检测和故障修复的场景。一个同时托管于东部和西部海岸的亚马逊EC2数据中心的网络应用程序。在西海岸的管理员制造了一些服务器故障,Zenoss Core对架构进行了监测,发现了故障并且通知OpsCode的Chef采取行动。Chef随后通过Dynect API更新了Dynect平台上的服务,从而自动恢复了东海岸的应用。
就像在DevOps GameDay上演示的那样,如果整个IT架构是自维护的,系统工程师再也不用晚上爬起来处理故障了,哪将是多么美好的事。