运维工程师干的杂多乱,这是行业的一个普遍现象。当然部分规模很大的公司分工是很细很明确的,就比如服务器运维和系统运维或应用运维都是分开的,甚至细化到服务器运维又分为 Windows 服务器运维组和 Linux 服务器运维组。这种细化的情况太少了,不在今天的细说范围之内,咱今天抛开不谈,毕竟太大的公司不是那么多,中小型公司居多一些。就只说一个普遍的现象。
其实很多公司的运维基本上都是一把梭的。维护内容包括应用、服务器、数据库、网路等等。其实无论是测试环境还是生产环境再出现问题后排查的方法和思路基本上都大同小异:
1、检查前端。用 F12 去调试,可以看到应用接口的方法以及返回值。比如常见的 code 有 200、403、404、500等。一般前端会调取后端接口,就拿微信公众号页面来说,f12 可以看到一些有用的信息:
2、检查后端。后端就涉及到应用日志了,这个时候尽可能的让开发多打一些详细并且有用的日志信息出来,这样一旦在线上出现问题,排查问题能够方便一些,所以说日志有时候是很有用的。关键的时刻能够救命,也能够保命。
3、数据库。应用的数据流还是需要了解一些,比如客户或者公司让你查询一些数据,如果数据流不清楚就意味着不知道去数据库中的哪张表去查,也根本无从下手。当然,虽然说运维不像 DBA 那样要求对数据库那么精通详细掌握到每一个数据库的配置参数以及改变配置参数能够为数据库带来性能的变化等等,基本的还是要了解一些的。
4、环境信息。每一套环境信息也都是需要去了解的。要分得清楚哪些是测试环境,哪些是生产环境,哪些是开发环境等等。环境如果分不清楚的话,工作基本上是无从下手的。
5、其次,更细化一些,服务器的用户名和密码,应用程序的位置目录,权限等等。出问题了也好去排查。
运维工程师做得好了待遇各方面都是不错的,我有几个朋友基本上薪资在西安属于中上型薪酬了。当然,做运维也有不好的,比如说经常要 on call,要抗造,能够顶得住压力才行。
技术标杆 Fenng 曾经对技术有这么一段描述:
长期做一种事情的人容易形成一种观念:只有在我这个领域牛的人才是牛人,别的领域的牛人都是狗屎,都不行,看不上。写前端的和写后端的,搞微软的和搞开放技术的,写 C++ 的和写 Java 的,IT行业里的这种隔阂非常大,所以吵架在所难免。语言之争什么的毫无意义,市场的选择不是你争论出来的。
很多程序员过得没有希望是因为他们的视野太窄了,除了看技术,就是看科幻,我建议他们多看看人文历史类的书籍,这样的书可以引导他们理解别人的内心,看看小说什么的也可以很大程度上补充他们看问题的角度。程序员整天面对的就那么几个人,经理就是监工的、客户就是傻逼,每个人的角色都已经被自己设定好了,如果没有更多了解,圈子就会越来越窄。
除了技术,我们应该还需要学点别的,做点别的,不是吗?但学习是一件苦差事,吃得苦中苦方为人上人。不要干啥啥不行,吃饭第一名。