同时懂业务对于运维人员排查问题也是很有帮助的,因为懂流程,懂流程意味着可以重现,重现问题过程中,打开对应的日志,这样一来能准确的定位到问题,看是因为服务器的原因还是某个开发人员代码写的问题(服务器的原因通常那段程序执行需要更多的内存,服务器内存可能不够;代码的原因通常是一些判断逻辑不是很完善导致程序没有按照正常流程走)。这样就能减少运维背锅的概率,也能有理有据的反驳。
四、要有一套完整的运维机制曾看过李鹏写的《IT运维之道》这本书,大部分忘记了,但其中提到的IT运维四要事,至今印象还比较深刻,做运维的朋友,可以读一读,曾经在创业公司读这本书的时候,受到一些启发运用到实际中,提高效率不少。
这本书总结了IT运维的四件要事。我觉得讲的很不错。同时这四要素可构成一套完整的运维机制。四要素如下:
事前:讲计划、重承诺;
事中:讲规范、重控制、有反馈;
事后:重效率、能应急、有保障。
2.掌握服务平衡主动服务:服务者发起运维服务;
受理服务:用户提出运维需求。
3.落实整体运维软件支撑系统;
应用系统;
计算机硬件设备;
机房和环境。
4.贯穿服务流程事件流程;
问题流程;
配置管理流程;
变更流程;
发布流程。
上述四要素每一个部分要细说,都可以讲很多内容。由于我运维经历很有限,上述四要素并没有全部接触。但对于我感触最深的是第一点按运维原则做事和第四点贯穿服务流程。这四要素大家可择需而取。在我的职业生涯中,涉及到运维相关的工作,如果我有权把控的话,基本上会按照第一点来做(其实不仅仅是运维,开发也一样)。
五、适当了解前后端早年软件,以Java开发为例,基本上JSP+SSH之类的或者JSP+SSM等之类的框架。基本上Java代码+前端HTML+CSS+JS混合一体。如果代码写的不是那么优美,看起来很难受。
如今,基本上都是前后端分离。
前端三大主流框架Vue.js、React.js、Angular.js等。
这三大框架基本上都体现了前端模块化的思想。作为运维人员部署方面也很简单,要么服务器有node.js环境,要么让前端人员本地编译好,将生成的dist目录里的文件打成zip包直接上传到nginx对应的目录解压即可。总而言之,运维人员得了解。
最基础的就是针对请求的响应码,要识别一些常用的响应码,利于排错,同时作为运维人员也要擅长浏览器调试。因为像有的公司做的项目是需要现场实施的,实施人员通常是运维,去客户公司部署项目,确定项目是否部署成功,通常要结合一些前后端相关的知识。记忆比较深刻的是在第一家公司的时候,有一次运维同事和技术总监跟着去客户公司调设备,技术总监之所以带他去也是让其熟悉这个环境,同时也让他熟悉一些Java代码(Client-Server通信),因为回头就得他一个人来客户公司调,要求他能看懂这部分Java代码。不能排除有的时候运维不仅仅是捣鼓一些服务器上的东西,可能还要求熟悉一些前后端代码之类的。大家可以去Boss直聘上瞄一眼,中高级运维,基本上都要求至少熟悉一门编程语言,可以是Java,也可以是Go和Python。不过近年来Go和Python是比较多(Python做自动化运维是非常合适的)。当然了,基本上学计算机的,大家接触了编程语言不可能只有一个。
六、总结记得之前在公众号看过一篇文章《远见|美团王慧文清华演讲:社会最稀缺的是π型人才》,这篇文章提到了社会最稀缺的是”π型人才”。
“π型人才”并不等于是全才(也不能等于什么都了解、什么都不精),只是不给自己设限(不把自己圈在特定的地方,简单的举例说明,我既是一名Java程序员,又是产品的创造者之一,同时我也可以是一名业余作家)。
我的前三家公司经理级别的领导基本上都符合这样的。
第一家公司的技术总监之前公司是没有运维的,他独立负责整个公司的运维。不仅仅这样,如果项目急的时候,他也要上阵写Java和一些前端代码。平时他也是主要写后端代码和做数据库设计方面的。
第二家公司的项目经理他早年做过程序员,后来做产品经理,再后来运营总监等。
第三家公司的技术经理他是一名后端程序员,后来不知由于什么原因做起来前端。我和他在一起工作的时候,发现他每天和我们一样,除了开产品会就是在写代码或者是做少部分管理工作。