如何优雅的打造DevOps团队
近越来越多的IT公司发现要在人才市场上找到一个合格的运维人员实在是太难,于是纷纷跑去互联网各大论坛求助:“如何月薪3000招聘到一个7*24小时待命的高效运维,要求至少懂市面上所有的脚本语言、精通Linux并制作过发行版、精通计算机网络、主流存储系统的调优以及云服务购买搞价能力?“。在苦苦求助无果之后,偶然路过地摊品味软件管理奥义的时候发现一了一个新的概念---DevOps。这是一个可以让那般闲置开发人员更晚下班的一个新生事物,不仅解决了运维人员的短缺,还能在不加工资的基础上延长开发时间,真是21世纪伟大的发明。于是乎纷纷采用,并创造了软件开发史上的奇迹。本文就是让你一探DevOps的真谛,并且帮助你打造一个DevOps团队,跟上时代的潮流。
首先让我们了解一下什么是DevOps,维基上给的解释是“DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例“。仔细看看这句话,晦涩难懂,我来粗浅的翻译一下大概就是一个又干开发又干运维。当我们了解了这个基础概念以后就可以开始准备实践了,但是任何实践都有一个前提,请牢记以下这段话,它将贯穿你DevOps实践的每一个角落。
无论是开发还是运维,所有的学习过程都是不需要成本的,而且任何人一学就会。
看到这里是不是突然觉得醍醐灌顶,感觉很简单?没错,事实就是这么简单,所以你眼前这个团队现在已经是DevOps团队了,是不是很酷?所以件事一定要宣布这是一个DevOps团队,让全公司以及投资人都要知道。所以打造DevOps团队的件事,就是把你们邮件组的名字给改了。
把邮件组加上DevOps字样
再此之前你们邮件组的名字可能是 eshop_dev@somesbco.com,etrading_dev@somesbco.com, 这显然无法突出你们是一个高效DevOps团队,所以重要的一定要先改邮件组的名字。如果将以上名称改为 eshopdevops@somesbco.com 和etrading_devops@somesbco.com 就会给人一种你们很diao的感觉。
在公司内部的论坛或者Blog宣传你们完成了DevOps团队的建设
当团队建设完成后,需要给公司的其他部门树立一个榜样,使之纷纷效仿从而达到共同进步的目的。Blog内容首先要把团队所有成员高亮显示一下,之后重点标注领导,再之后说某某团队完成了DevOps团队的建设,引入了现代先进的软件开发方法,提升了开发人员技能并为企业有效节约了用人成本。后叫团队所有成员点赞,并在下方互吹评论,从而达到宣传以及沟通交流的目的。
信奉敏捷开发,并打造成一种信仰
身为一个成功的DevOps团队怎能少了敏捷开发,而且敏捷开发这种更快的迭代周期、更注重的交流方式,更快的产品交付已经基本成了现代软件开发的标杆。然而DevOps团队区别于传统的敏捷团队往往需要敏捷中的敏捷,比敏捷更敏捷,我们称之为Cult Agile。
这种敏捷比起一般的敏捷开发更注重团队之间人员的沟通,所以一天3到5个standup meeting是可以方便团队人员随时交流进度,互相学习的。因为在DevOps模式下开发人员也会是技术支持人员以及运维人员,所以会议一定要保证每个人都到场,这样方便于团队成员在不同领域可以相互学习。
当然,更短的迭代周期以及发布周期也是必要的。俗话说的好,一行代码只有到生产环境上才有它的价值。因此我们需要更注重于开发到生产的发布,所以一切都需要自动化,CI/CD已经是这个团队的必须品,小到一个Tab改为空格,大到方法之间加了几个空行,这些东西都要时间发布到生产环境,为我们的团队创造价值。
监控一切,并画成美丽的图表
当我们的微服务上线运行后,如何能体现我们团队的运维水平呢?答案就是监控,当然有监控还是不够的,必须要“可视化”!这几个字说起来看似逗逼实则傻逼,但这往往就是内行人员与外行人员的分水岭。对于系统的cpu个数,磁盘使用天数,cg次数以及日志中“NullPointException“,“IndexOutOfBoundsException“,”F**kWhatAreYouDoingException“出现的次数进行严格统计。绘制成色彩斑斓的柱状图,饼状图以及不知道什么随便挑一个图。让这些DashBoard尽可能多的出现在公司的监控电视上,茶水间以及卫生间的小屏幕上。这将有助于DevOps团队实时跟踪系统信息,快解决那些看了图也不知道的什么问题。
收集数据,智能分析
当然,作为一个21世纪的DevOps梦幻团队,怎么没有人工智能在里面。这个时候团队就要借助ELK以及splunk之类的工具对我们的程序数据以及监控数据做一个智能分析。当我们看到Jvm虚拟机堆内存不断增长且无法被gc回收的时候,这时候就需要借助机器学习算法。在堆内存增长率以及公司可掏钱购买的大内存之间求出下一次重启服务可能出现的时间点,做到智能运维,智能预测。
用可量化的指标衡量团队绩效
当我们打造好了这样一个先进的DevOps团队,我们就只需要完成软件开发中难的一部分---衡量团队的绩效。曾经有一些公司会用代码行数,测试用例个数,发布的版本数去衡量一个团队的绩效。这对于先进的DevOps团队未免有失公正,DevOps团队的工作成果更像是一个时间序列函数,因此我们好借鉴金融学上的一些术语来衡量DevOps团队的绩效。
我们知道很多各种基金啊各种包总喜欢拿收益率说事儿,当收益率不能说事儿的时候就开始用一个年化收益率说事儿,比如7日年化啊之类的。这一点很科学嘛,各种performance一目了然,所以DevOps团队也需要采用这种先进的计量方式,比如7人年化release数,或者release/issue ratio,好拿一直传统牺牲队伍做benchmark。并将结果绘制成美丽的图表用邮件抄送给全公司人员,让大家感受到实实在在的进步以及先进。
好了,说了这么多,我想你已经知道如何优雅的打造一个DevOps团队了,祝你开心~
相关文章