PHP开发的LVS管理系统:运维与开发的深思
工作后,发现已经没有当初那种激情去坚持写日志了,或许是因为工作繁忙,或许是因为自己懒惰了,又或许是实在没什么东西可以写。最近有一些感触,趁着周末还是抽空记录一下吧,最近跟师弟闲聊的时候,他跟我说今年很多公司都已经不招运维这个岗位了,这让我们这些运维人情何以堪?难道运维的岗位真的饱和了吗?我想说不,还不够,就我们小组来说,我们主管总说要找多几个,但至今没找到合适的人才,这或许并不仅仅只是需求与供应不协调的关系,还有一些这样那样的因素在里面,下面我想谈及的是一个老生常谈的问题“运维与开发”。
还记得入职前,我跟很多搞运维的朋友一样,都是为运维和开发划分了明确的界限,觉得自己是个搞运维的,就专心搞自己的运维,开发方面的东西了解了解就行了,反正我做好本职工作就行,开发的事情公司肯定有相应的开发同事来做,不用我操心(开发的同学也可能划分了彼此间的界限,觉得自己是搞开发的,运维的工作有运维的同学来负责了,自己还要瞎操心什么)。确实,有些公司运维与开发的分工挺明确,但绝大部分公司对员工的要求还是比较严格的,既要求会运维,又要求会开发(这是全能的节奏啊),但我们作为被动方,又能够如何呢?除了努力让自己适应这个趋势,我想也没有其他任何办法了吧。
之所以有这样的感慨,源自前几天我们的小组周例会上我导师说的一句话,当时的情况是这样的,我们与往常一样跟我主管简单的总结了下本周工作情况后,主管最后问我们还有没其他问题的时候,导师突然说了句:我们要不要聊聊运维方面的事,好像很久没有聊过运维方面的事情了。
确实,静下来想想,我发现,我们小组几个人周例会上汇报的情况都是自己手上项目的开发情况如何如何,却很少说到运维方面的事情,换句话说,项目的开发占据了我们日常工作的绝大部分。但我们要记得,我们是运维工程师,而非运维研发(我们这边运维跟运维开发是分开的),也不是程序员。我们的专职工作是运维,而非开发...还记得入职前跟导师的交流中我就问起过这方面的问题,我问他公司对搞运维的开发能力要求如何。他跟我说基本上没要求,因为公司有专门做开发的同事,当然如果懂一些就更好了。听到这里,我很是庆幸自己那拙劣的开发能力没给自己带来太大的阻力...
工作了半年后,我再没有像当初那么明确的为运维和开发划分界限,因为我们工作中,打交道最为频繁的便是开发的同事,彼此间的交流成家常便饭,有时候我在想,如果我懂开发方面的东西,或许沟通起来会更加方便。还有,前面我说了,我作为运维工程师,大部分时间都在做系统的开发(PHP开发的LVS管理系统),实际上最终目的也是为了方便自身的工作。想想公司那数量庞大的服务器集群,假如每次上线都要我们手动来配置,那是相当的麻烦。或许有朋友会说写脚本嘛,对,作为运维工程师,我们最最基础的必备技能就是写脚本,脚本确实能解决我们很多很多问题,但面对这种较为复杂的情况,脚本维护起来确实也比较麻烦,于是我选择了开发系统。
耗时3个月,我从零开始学习了PHP并开发了一个LVS管理系统。当时的契机是这样的,导师跟我聊天的时候,说起之前公司这边也曾经用过天涯LVS管理系统那套系统,但发现并不适用于我们公司的环境,用起来还是挺麻烦的,他就想用python自己开发一个LVS的管理系统,但由于杂事太多,一直没时间动手做。他知道我想锻炼下开发方面的能力,他便问我有没有信心试试,我爽快的答应了。但实际上,当时的我,心里很没底,因为我一点都不懂PHP,只是在搭建LAMP或者LNMP的时候简单的写过测试页面<?php phpinfo();?> ,我也不知道我当时哪里来的自信,要知道这个系统都是自己一个人做的,不会分什么前台后台,什么php、jquery、javascript、ajax、html、css都要自己来... ...对于毫无开发基础的自己来说,这无疑是一个巨大的挑战。但凭借着那份热情,我也终于如愿以偿做出了第一个属于自己的系统。曾经我很排斥开发方面的东西,一提起开发的东西,我就说难,甚至试都不想去试,但在我开发这个系统的时候,我发现似乎也并没有那么难,无非就是像我们写shell脚本般,一步步的实现一个个小的功能,再拼凑到一块,我很享受这个过程。
最后我想用我同事的一句话来总结:开发并不难,关键在于你是否愿意尝试,这一步很关键,迈出去了,剩下的就不难了。
附上系统的一些图:
添加LB
添加VIP+PORT
添加RS
生成配置
新生成的配置
发布RS脚本后,可以看到RS的VIP已起来
发布LB配置
检测是否已安装keepalived、quagga,若无则自动安装
获取线上配置
可以看到LB上面的配置已生效