且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

数据中心的敏捷运维之路

更新时间:2022-08-22 13:01:57

随着数据中心的建设规模越来越大,出现了很多大型,特大型的数据中心。这些数据中心往往拥有数万台的服务器规模,再加上互联的网络设备、防火墙、负载均衡等设备,一个大型数据中心需要管理同时运行的几万台设备,并且数据中心的业务仍然在不断变化,几乎天天都要做各种各样的网络变更,同时也不断有设备出现这样那样的故障问题。数据中心规模增加一倍,在运维上面就要增加投入数倍的力量,这样在数据中心不断扩建的过程中,运维的工作已经不堪重负,一味增加运维的投入将严重影响数据中心整体效益,而且大量投入得到的效果并不见得好。在这样的背景下,什么自动化运维、远程运维、智能网管,还有敏捷运维等都纷纷出现了,经过了这几年的技术演进,前几种几乎无人再提及,只有敏捷运维却变得越来越火。如今,每年都有全球敏捷运维峰会,在多个地方举办数次,吸引着诸多数据中心运维技术人员参与。大家发表对数据中心运维的看法,相互学习,促进敏捷运维的完善和发展。


和敏捷运维相比,敏捷开发的概念相信早已被更多人所熟知。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备可集成和运行的特征。敏捷开发概念从2004年初就开始广为流行了,经过这十几年的发展,在所有的软件开发项目中,都基本引入了敏捷的软件管理理念,这时有人想到了将敏捷设计引入到数据中心运维当中,以便解决当前运维效率低下的问题。敏捷运维的概念来自于两个截然不同的技术阵营。一方面是敏捷开发者发现,虽然产品被很快设计出来,但部署却比较花费时间,手动部署和配置也会引入很多人为错误。此时,敏捷开发团队希望可以自动完成所有重复性的任务,当然也包括部署在内。另一方面来自于一些互联网公司,这些公司业务增长飞快,有时会在两个星期内就要增加上千台服务器,单纯人工的方式完成,耗费了大量人力,运维成本太高,这时他们想到了敏捷设计,希望将敏捷设计应用到运维当中,实现敏捷运维。和敏捷软件开发一样,敏捷运维与传统的数据中心人工运维管理完全不同,敏捷运维完全自律,按照设定好的程序去执行,确保所有一切内容都在控制之内,敏捷运维引入了自动化的东西,抛弃了手动操作。


敏捷运维试图将人们从复杂、繁重的工作中解决出来,通过软件自动化管理,满足数据中心的扩容要求,于是出现了很多敏捷运维的工具,很多人以为只要使用这些工具就是敏捷运维了,实际不是这样的。就像我们拥有了电脑,会使用电脑,但不一定会用电脑完成各种编程,输出很多的功能软件。电脑只是一个工具,我们需要通过给电脑一些指令,才能按照我们的意图完成。在敏捷运维中,软件工具就是这样的角色,必须要我们给予它各种处理业务的能力,它才能自动完成,只要我们设计好了未来数据中心故障、扩容、业务变更遇到的场景,赋予工具自动操作的权利,那么工具就会按照我们设计的程序去自动执行。为工具制定各种各样的自动执行脚本,是敏捷运维的关键,这些脚本关系到敏捷运维的可用性。尤其是在突发事件的处理上,大规模业务扩容上的表现。


敏捷运维给数据中心带来的好处是显而易见的。可以大大减少数据中心在运维方面人力的投入,即使在数据中心规模不断扩大的情况下,使用敏捷运维的工具就可以完成自动化部署,不再需要增加运维人员,只不过在运维工具监控之中增加一些点而已;可以节省运维费用支出,提升数据中心的运营能力;实现业务的快速自动部署,数据中心扩容在手指间就可以轻松完成,运维人员不再需要关心基础架构的实现,只需要在敏捷软件上做业务部署即可,底层资源调配,网络配置等均通过软件实现自动下发,自动互联互通;减少数据中心故障中断时间,甚至可以做到全年无中断,敏捷软件能够在毫秒级的时间内发现异常,并自动执行切换动作,将业务转移到备用系统中,确保业务不受影响,敏捷软件还可以对故障进行自愈,尝试对故障进行隔离,为人员抢修故障设备赢得时间。


敏捷运维听起来很美好。只要嵌入你的代码,确保它在服务器上构建,然后更新一个方法,就可以按照你的思路去完成自动运维。这个说起来容易,实际做起来很难。现有的软件定义数据中心仍处于发展的初级阶段,还没有这样一种软件,可以对整个数据中心设备很好地以控制软件实现,因为数据中心里设备千差万别,相同设备软件版本不同,实现也会有差异,这样从软件上很难统一管理。即便可以管理,那么什么时候执行什么样的指令,敏捷软件工具自己不会去考虑,依然是由你来完成,这样就需要将所有可能出现的场景,业务的走向部署都需要考虑到,并通过软件脚本实现,设计得越充分,敏捷软件工具功能就越强大,当然如果依然出现了未知情况,敏捷运维也会失效。所以针对敏捷运维进行的敏捷开发非常重要,这将在很大程度上决定敏捷运维的效果。


随着数据中心规模不断扩大,业务复杂性越来越高,运维团队面临着严峻的新挑战,不仅要以更快的速度,在更动态的环境中部署更多创新性的服务,同时还要始终确保用户的满意度。如何用好敏捷运维,已经成为当下数据中心最迫切需要掌握及推进的革新技能。