(一)运维,从字面意思很容易理解,就是运营、维护。有很多朋友认为,在互联网公司中Linux系统运维的工作就是安装系统,部署服务处理紧急故障,为公司里的开发人员及其他部门提供支持服务。同时,还可能负责公司办公内部和IDC外网的网络业务稳定。
以上的工作的确是运维的一部分,但并不是全部,只是中小公司低级的运维劳动,在我看来,除了上面的角色外,运维人员还是管理、制度、规范、流程的制定、推行、监督角色。运维的核心是运维思想,而非运维技术本身,上百台以上的服务器的规模如果没有好的管理流程、规范、制度策略是无法协调工作的,上千台、上万台更时如此。
运维流程、运维规范、运维制度、自动化、智能化、批量部署、批量管理、网站架构优化、监控预警、流量及日志分析统计、权限、安全优化管理、账户统一认证等。这才是真正的运维人员需要做的。如何推进并完善上面的工作,提升工作效率,提升团队以一当十的战斗力才是最核心的内容。
运维的宗旨:7*24小时网络稳定、用户体验良好(包括内网的员工、外网的网站用户),所以我们做什么都不要离开运维的宗旨,否则你的工作可能就是徒劳的无用功。有经验的运维会先思考再动作,经验不足的运维只会做一步想一步,遇到问题再思考,这是完全不同的层次境界。所以别轻易说自己精通什么服务,会多少软件,那只是几块砖头、几袋水泥而已。盖好大楼,这些仅仅是基本的元素,运维同样如此。
对运维工作的理解_第1张图片
(二)有人说运维的本质是“可视化”,这个观点是不客观的,在我看来,运维的本事是“可控”运维本身是一个复杂的体系,它除了技术之外,经验积累、视野、大局观、甚至是心胸都有可能决定成败。优秀的开发者比比皆是,但是优秀的运维少之又少。
第一点:稳定性“可控”。运维不是维护一两台机器,发布代码就好,而是要做成千上万,甚至几十万台的服务器和各种网络设备、存储设备等专有设备维护,这些服务器包含webserver、DB、cache、CDN、computing多种类型,如何让这些大量的服务器稳定的跑在生产环境中,不因为硬件损坏、发布变更、系统升级而引发的业务系统故障。没有东西是不会坏的,没有系统是没有bug的。硬件要坏,系统升级,发布变更,这些都没有关系,但是最重要的,一旦发生这些之后,运维人员知道,这些业务影响多大,需要多少时间和工作量恢复。
第二点:性能“可控”。对于系统DBA来说,最痛苦的地方不在于“慢”,而在于时快时慢,这样对于DBA在维护是无异于自杀,很多云计算厂商做设计的时候,往往也会忽略这一点,其实性能的问题,比最高性能,来的更重要的多!非常漂亮的数字不能解决问题,但是出现一次性能不足,可能就引发故障。
第三点:安全“可控”。有没有绝对的安全呢?理论上没有,所以运维的同学,总要花很多精力在系统安全上,比如控制哪些用户可以登录系统环境?哪些用户是可以进行变更?哪些用户甚至可以拿到最高权限?测试和开发隔离,公司内外隔离,都是因此而生。只要能够控制权限的面积,范围,就能知道风险,这便是所谓的安全“可控”。重要如上所示,但是正如一开头所说,运维的内容相当繁杂,交付“可控”,变更内容“可控”,效率“可控”都是可以值得深究的东西,因此,无论是“可视化”、“大数据”、“运维自动化”等等,都是在为“运维可控”服务的。数据可视化,带来的是规模可控;运维自动化,带来的是效率可控风险可控,如是而已。每一个点的提升,都是运维的提升,希望所有从事运维的同学,都能感受到,做什么可以让“可控力”提升,不要再半夜的时候处理故障,不要和女朋友看电影的时候回公司处理故障,也许我们再次遇到这些问题的时候,可以拿起一杯茶,做一个优雅的运维。
对运维工作的理解_第2张图片