游客发表
凌晨三点,手机响了。值班同事说某台服务器磁盘使用率冲到98%,业务随时可能写不进去数据。我打开电脑,连上VPN,先看监控面板,再登机器查日志,发现是一个临时文件目录没配清理策略,堆积了上百G的垃圾。删掉,加个定时任务,前后不到二十分钟。这就是运维的日常——不出事的时候没人想起你,出事的时候第一个找你。
很多人以为运维就是修电脑、拉网线、装系统。不完全是。修电脑那是IT支持,运维管的是服务器、网络、数据库、中间件、云平台这一整条链路。用户打开一个网页,背后要经过CDN、负载均衡、网关、应用服务器、缓存、数据库,任何一环卡住,页面就转圈。运维要保证这一整条链路活着,还得跑得快、扛得住。
具体点说,运维的工作分几块。一是部署和发布。开发写完代码,得有人把它弄到服务器上跑起来。以前是手工传包、重启服务,现在多用CI/CD流水线,代码一提交自动构建、测试、上线。但流水线本身也是运维在维护。二是监控和告警。服务器CPU、内存、磁盘、网络,应用的响应时间、错误率、队列积压,全要盯着。监控工具一屏一屏的曲线图,报警规则设得不好,半夜能给你打几十个电话。三是故障处理。磁盘满了、内存泄漏、数据库死锁、证书过期、被DDoS打了,都得快速定位和恢复。四是容量规划。业务涨了,要不要加机器?数据库要不要分库分表?带宽够不够?这些得提前算。五是安全补丁和备份。系统漏洞要修,数据要定时备份,还得定期演练恢复,不然真出事的时候备份是坏的,哭都来不及。
我干过一件事:给一台老数据库做迁移。业务不能停,数据量两个T。方案是主从复制加切换,提前一周每天同步增量,切换那天凌晨停写五分钟,改VIP,验证,再放开。听起来简单,中间踩了坑——从库的磁盘IO跟不上,延迟一直涨。临时换了SSD才压住。切完那天早上,业务同事说“感觉没停啊”,这就是运维想要的效果。
这行有个特点:干得好,别人感觉不到你存在;干得不好,所有人都能感觉到。系统稳如老狗的时候,没人夸你。一旦宕机,群里立马炸锅。所以运维得有点强迫症,看到磁盘70%就想清,看到内存涨了就想查,看到日志里有error就想追。还得会写脚本,Python、Shell至少熟一个,不然重复劳动能累死。现在云原生火了,K8s、Docker、Terraform这些也得会,不然连工作都找不到。
有人问运维和SRE有什么区别。简单说,SRE是运维的一种进化版,用软件工程的方法解决运维问题。比如用代码定义基础设施,用自动化代替手工操作,用错误预算来平衡稳定性和迭代速度。但本质没变——让系统可靠运行。
干这行累吗?累。值班、on-call、半夜爬起来处理故障,都是常事。但也有成就感。你搭的监控提前发现了问题,你写的脚本省了同事半天时间,你设计的架构扛住了流量高峰。这些东西实实在在。运维不是主角,但没它,戏演不下去。
友情链接