三.进阶
系统优化
系统的优化比较常见,一般是更改配置文件,使得服务可以承接更多并发,可以抗更多压力。
这些有大把的文档可以看,这里不重复了,主要提几点注意的地方。 1.优化并不是改改配置就行,需要对整套系统都有深入理解
2.改配置的时候要慎重,不要想当然,很可能你这里为了减少图片的带宽占用开启了压缩,结果改完就崩溃了,线上的图片显示不完全了。
3.做优化方案的时候,要有层次,可以从最简单便宜的地方来。例如从结构上优化、去掉一些没用的模块,可以释放很多资源。
4.做安全方案也是,VPN 堡垒机可以解决99%日常安全隐患,而不是去从花费高、细节的地方先去实现。
工作流程优化
上面说了,其它岗位很繁忙,很难有精力做其它事,这里除了系统还有流程上的。他们遇到一些工作流程性问题,即使可以解决,但也很难停下脚步。
运维的用户是内部人员和服务器,所以工作可以分为可见和不可见(相对于部门)。所以在维护设备和服务器之余(服务器不会总出问题),可以将精力放到维护devops上,也就是工作方法。
例如产品经理采集到用户需求后,建立了一个jira(一个任务分配工具)任务,这时候需要去主动告知开发,不然开发只能去上面看是否有任务。
那解决这个问题很简单,上一个插件邮件提醒。但其实想想这个方法并不好,会污染邮箱。那钉钉提醒是不是更好呢,这样下班也不会打扰。
看着差别不大,邮箱也不碍事,实际是运维价值的体现。再说几个例子,当前登录jenkins啊、jira啊、confluence啊都是单独账号,那搞LDAP是不是更好。
那jenkins发版后在钉钉加一个提醒是不是好点?那测试或开发在uat环境查询数据时用WEB版的数据库在线审计平台是不是比每个人用navcita更加安全和可控方便?
这些看似没有也没事,但当你发现某个开发遇到一些麻烦的影响时,你去解决,这就是内部的贡献,就像LOL中的辅助,在总揽大局,在推动devops的发展。
实际devops炒了这么多年,看内容基本都是运维的,开发的很少。这也和开发埋头工作不无关系,所以还是辅助最强!
当然人家用SVN好好的,你换gitlab当然不爱用,虽然SVN各种麻烦,但他熟悉了。
如果大家不支持,可以去和领导谈,写一写计划书,整体运维体系规划这种。如果领导懒得看,那可以换下一家了,这家真的不值得付出,因为往后余生,都很痛苦。
如果支持的不多,关注不到你(很常见,好多公司没运维主管,就CTO),那可以将计划书拆分几个小块,一点点改革,尽量和效果关联上。
现在推广git,那你首先要研究明白git,也要懂一些SVN,找到痛点才行。再去说这个git的好处,对公司效率的变化,往盈利方面贴。每天节省30分钟的SVN使用时间,那40人的开发,一个月就可以节省xxx钱,写的务实一点,效果还是很震撼的。
做任何工作不是只埋头做,还要和领导多交流,后面沙龙等等都可以去公司名义参加(要想办法这么做带来效益),虽然很多小公司不注重,但你做了和没做是两码事。
你代表公司参加,拿会一些礼品(甚至可以互相印刷,当然这块见仁见智了)和对方的一些概念,你在公司就是先驱者,大家会觉得你挺厉害,技术大牛,一直在推动发展。这里讲开发他们也不是傻子,devops人家都听过的,随意你推动大家都会欢迎,觉得很好。
规矩
开发人员写代码的时候,都会探讨一下怎么写,出一个方案,用什么技术。新临时增加的需求也是如此,起码接到的个人会先想好思路。
但到运维这里好像就随意起来了,加防火墙直接就通知下就添加了,备注随意写写,当对方不用的时候也忘记了删除。
“规矩”也是要建立的,这样才能让人信服,而不是谁都能指挥你,然后加出问题、改出问题了,锅又到你身上。
当然不能傻傻的和别人对着做,大家都讨厌规矩太多,那要在方便的基础上建立一些流程即可,例如申请白名单搞一个jira工作流,让对方填写,即使是临时人员,我帮你填写也可以。
可以搭配python脚本检测jira的白名单问题,获得白名单开放时间信息,再查看防火墙列表是否还在,超出时间的可以自动删除并发钉钉提醒。
jira工单
jira是运维工作的一个体系,除了超小的随手任务(加白名单,加个权限),大致都要去建立内容。其实白名单这些有的大公司可能也要加入jira。
这对应的是未来的看板和工作展示(PV报表、故障报表),IT可能一个公司做3年都算是长的不行的了,所以不要觉得没用,对于多个运维的肯定会做这块的。
这样对运维的工作会曝光,将清晰透明,在多个运维当中可以看出谁在划水和偷懒。当然也可以方便任务分配和记录,运维干的是一个很杂的活,经常会出现做一半中断的情况,就需要jira这种东西去记录。
当忘了做什么了,可以去查看代办任务,防止忘记。结合一些脚本可以做看板,例如jira任务的完成数量。项目的一些进度等等。
同款的还有confulence,非常适合做文档方面的记录,对知识进行整理,对公司也有好处,可以有一个资料库,推荐公司大力推广。
在confluence上尽量不要记录可变化的数据,例如主机信息、域名对应表。这些东西最好用python去写一个动态脚本,不然会频繁于维护confluence,wiki将失去查看意义,每次查看还是去源头看(例如阿里云),而只是去维护它。