1. 为什么信息技术运维越来越“香”,但也越来越难
先说个我自己的体会。干了十来年运维,从最早装系统、拉网线、修打印机,到现在管容器集群、写自动化平台、设计高可用架构,最大的感受是:运维这个岗位,边界一直在变,但核心逻辑从来没变。
很多刚入行或者想转行的人问我:“运维到底是做什么的?是不是就是修电脑的?”我通常会反问一句:一个业务系统每天有几万人在用,你敢不敢让系统挂了以后靠运气恢复?敢不敢让数据丢了以后靠备份神仙显灵?运维工程师的价值,就是把“不敢”变成“敢”,把“赌运气”变成“确定性”。
信息技术运维的本质,是保障IT系统稳定、安全、高效地运行。听起来是一句话,做起来是一整套体系。从基础的Linux命令、网络排查、桌面终端维护,到中间层的监控告警、备份恢复、安全加固,再到上层的自动化运维、云原生基础设施、智能运维(AIOps),整个是一条纵深的技能线。而且这几年随着数字化转型深入,各种系统越来越多、越来越复杂,运维的角色已经从“后台救火队”变成了“业务可用性的第一责任人”。
这篇文章我就结合自己这些年的实际经验,把信息技术运维这个领域真正重要的东西拆开讲清楚。不管你是刚准备入行的小白,还是已经干了一两年想进阶的初级工程师,或者是想系统梳理知识体系的在职人员,这篇文章都能给你一个完整的参考框架。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 运维工作到底在做什么——先建立全景认知
2.1 运维的日常工作不是“修电脑”,而是保障业务连续性
很多外行对运维的印象停留在“电脑坏了找你”,实际上企业里的运维分很多方向。最常见的有桌面运维、系统运维、网络运维、数据库运维、应用运维、运维开发、云运维,还有现在很火的SRE和平台工程。每个方向做的事情不同,但最终目标一致:让业务系统跑得稳、跑得快、出了问题能快速恢复。
桌面运维偏终端侧,处理员工电脑、办公软件、打印机、会议室设备这些,问题通常直观、单点、高频。系统运维管的是服务器,Linux为主,包括系统安装、内核参数调整、用户权限、磁盘空间、计划任务、日志管理。网络运维管的是交换机、路由器、防火墙、DNS、负载均衡这些基础设施,核心是连通性和访问控制。应用运维负责业务系统的发布、配置、启停、日志排查、性能调优。运维开发则是写脚本、写平台,把重复性工作变成自动化工具。
我个人的建议是,无论你未来想往哪个方向走,第一年一定要先把“基础三件套”打牢:Linux、网络、Shell脚本。这三样东西是运维的通用语言,不会走不远的。
2.2 运维的“战场”从物理机到云原生,技能模型在迁移
以前做运维,最重要的资产是机房里的物理服务器。装系统要拿U盘去机房,硬盘坏了要备件更换,扩容要提前采购。现在不一样了,企业上云之后,虚拟机、容器、K8s集群成了主流形态。服务器的“采购”变成了一条命令或一个工单,扩容从“等物流”变成了“秒级完成”。
但这并不意味着运维变简单了。恰恰相反,底层资源可以弹性获取以后,业务的复杂性转移到了架构层和应用层。一个服务由十几个微服务组成,调用链横跨好几个集群,数据库、缓存、消息队列都是独立的中间件。系统出问题的时候,你面对的已经是整个分布式系统的问题,而不是单机问题。
所以我们看现在招聘运维工程师,要求里越来越多出现Kubernetes、Docker、CI/CD、Terraform、Ansible、Prometheus、Grafana这些关键词。这些工具解决的正是“基础设施如何以代码形式管理”“应用如何标准化发布”“故障如何快速定位”这么几个核心问题。
2.3 运维工程师的核心价值:可用性、效率、成本
评价一个运维工程师干得好不好,不能只看“忙不忙”。我见过有些同行,整天在群里处理告警,看起来很忙,实际上系统事故率居高不下。真正的运维高手,往往是不忙的——因为绝大多数问题在发生之前就被预防了。
可用性指标通常用“几个9”来衡量。99.9%的可用性意味着一年只能宕机8.76小时,99.99%意味着一年只能宕机52.56分钟。每提高一个9,对监控、容灾、变更管理、故障恢复的要求都会上一个台阶。效率指标看的是部署发布速度、故障恢复时长、资源利用率。成本指标则是在保障SLA的前提下,如何把云资源、硬件资源、人力成本控制到最合理。
这么一说你可能就明白了,运维的本质是“风险管理和效率工程”,而不是“打杂”。能想清楚这一层的人,职业天花板会高很多。
3. 运维工程师的核心基本功——Linux、网络与桌面运维
3.1 Linux常用命令:不是“会敲”,而是“会用”
Linux命令是运维的入场券,但很多人对“会用”有误解。会敲 ls、cd、cat 那不叫会用,真正的会用是知道排查问题时该用什么命令组合。
日常高频命令我分成几类:
- 系统资源排查:
top、free -h、df -h、iostat、vmstat、uptime - 进程管理:
ps aux、kill、systemctl、pstree - 日志分析:
tail -f、grep、awk、sed、journalctl - 文件处理:
find、tar、rsync、chmod、chown - 网络排查:
ping、telnet、curl、netstat、ss、tcpdump - 性能压测:
ab、wrk、sysbench
遇到负载飙高,我习惯先跑 uptime 看负载均值,再跑 top 看是CPU高还是内存高,配合 ps -eo pid,ppid,%cpu,%mem,cmd --sort=-%cpu | head -20 找到消耗最高的进程。如果是磁盘IO问题,iostat -x 1 能看到磁盘利用率、等待队列长度。如果是网络问题,ss -s 看连接状态分布,tcpdump -i eth0 port 80 抓包分析。
这些命令单独看都不难,难的是组合成一套排查思路。所以我不建议死记硬背命令参数,而是建议以“场景”为单位去学。比如“CPU飙高怎么排查”“磁盘满了怎么清理”“服务器卡顿怎么定位”,每个场景配一套命令组合,比零散记忆高效得多。
3.2 网络运维基础:连通性和访问控制是底线
网络这块,很多做应用运维的同事会忽略,觉得那是网络工程师的事。但实际工作中,应用慢、超时、连不上,很大概率是网络问题。不懂基础的网络排查,遇到问题只能干瞪眼等网络组的人。
网络运维的基础知识可以这么理解:底层是物理链路,上面是IP寻址和路由,再上层是TCP/UDP传输,最上面是各种应用协议。排查网络问题从底层往上层推:先确认链路通不通(ping),再确认端口通不通(telnet/nc/ss),再看协议交互正不正常(curl/tcpdump抓包),最后结合业务报错判断。
我记得有一次线上服务间歇性超时,应用日志没有任何报错,CPU内存都正常。后来用 tcpdump 抓包发现是TCP重传率很高,进一步排查发现是交换机某个端口有丢包。没有抓包这一步,这个问题可能得排查几天。所以我的建议是:tcpdump 和 Wireshark 这两个工具,再怎么忙也要抽时间学会基本用法。
3.3 桌面运维的常见问题清单
桌面运维虽然技术门槛相对低,但它是很多运维人入行的起点,也是企业里需求量最大的日常运维工作。常见的桌面问题其实高度重复,我整理了一个高频问题清单:
| 问题类型 | 常见原因 | 快速处理方案 |
|---|---|---|
| 电脑开机慢/卡顿 | 开机启动项过多、内存不足 | 清理启动项,关闭非必要后台程序,升级内存 |
| 网络连接不上 | IP冲突、DNS异常、网卡驱动问题 | 释放/续租IP,更换DNS(如223.5.5.5),更新驱动 |
| 蓝屏/死机 | 驱动不兼容、内存故障、系统文件损坏 | 查看崩溃dump文件,运行内存诊断工具,修复或重装系统 |
| 文件打不开 | 关联程序缺失、文件损坏 | 检查文件类型,安装对应软件,尝试备份恢复 |
| 打印机不打印 | 驱动异常、队列阻塞、端口错误 | 清空打印队列,重装驱动,检查端口设置 |
桌面运维的最高境界不是“会修”,而是“批量处理”。几十台甚至几百台电脑,一台一台手动处理是不现实的。这时候就要用到工具:批量装机用PXE、批量软件分发用组策略或第三方终端管理工具、远程协助用运维坐席工具。这也就是热搜词里“桌面运维助手”这类工具的用处所在——把重复性操作模板化、远程化、可追溯。
3.4 统信UOS运维工具箱与国产化替代
近几年国产操作系统在政企市场普及率越来越高,统信UOS是其中代表。很多做桌面运维的同行开始遇到统信UOS的维护需求,但发现以前Windows下的思路不通用。
统信提供了一款官方运维工具——livecd工具,系统出现引导问题、忘记密码、磁盘故障时可以进入livecd环境修复。我自己用下来的经验是,统信UOS的目录结构是基于Linux的,用户目录在/home下,软件包管理使用dpkg/apt体系,很多系统服务用systemd管理。做运维时把UOS当成“带图形界面的Debian系Linux”去处理,大部分问题都能用Linux的思路解决。而且国产化替换是大趋势,现在主动把统信、麒麟这些系统的运维学会,对职业发展是很有价值的储备。
4. 从零搭建一个生产系统——完整实操实录
4.1 先想清楚再动手:部署方案的5个关键决策
很多新人拿到“搭一套系统”的任务,第一反应是上手就开始装环境。我建议先忍一忍,花半天时间把方案理清楚。生产环境和测试环境最大的区别在于:生产环境一旦上线,稳定性要求立刻拉满,你后面所有的操作都要为“可维护”服务。
方案阶段要拍板的决策点包括:
- 操作系统选型:一般生产用CentOS(已经停止维护,建议选Rocky Linux或AlmaLinux)、Ubuntu LTS或国产系统。我的习惯是长期稳定性优先,选维护周期长的发行版。
- 数据库选型:MySQL还是PostgreSQL?如果有高并发、分布式需求,是否引入TiDB或OceanBase?能不用Oracle就尽量别用,授权和运维成本都是负担。
- 中间件选型:Nginx作为反向代理是标配;缓存用Redis;消息队列根据业务体量选RabbitMQ、Kafka或RocketMQ。
- 部署方式:物理机/虚拟机直接部署,还是Docker容器化?现在新项目我基本默认容器化,除非客户环境有特殊要求。
- 网络规划:开放哪些端口、如何划分网段、是否需要内网隔离、如何配置防火墙。
这套决策走完,后面部署会顺很多。方案没想清楚就开干,后面回头看大概率要返工。
4.2 沉淀一份“部署文档”比部署本身更重要
我给自己定了一条规矩:每搭一套环境,必须产出一份可复现的部署文档。文档内容包括基础环境信息、软件版本清单、核心配置文件示例、初始化SQL、常用运维命令、启停方式、备份恢复方案。等系统真正跑起来以后,这份文档的价值会远远超过当时的部署过程。
举个例子,一套典型的Nginx配置我会这样写:
nginx复制upstream backend {
server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;
server 192.168.1.11:8080 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
}
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
}
配置文件里每个参数都要能解释清楚为什么这么设。超时时间不是随便填的,要结合后端接口的平均响应时间合理设定。如果后端接口最慢需要40秒,你把 proxy_read_timeout 设成30秒,那必然会有用户请求被中断。
4.3 环境初始化:安全加固和监控必须前置
从裸机到一个能用的生产服务器,中间要做的事情远不止装个系统。这几年安全事件频发,勒索病毒、暴力破解、挖矿木马层出不穷,裸露在公网上的服务器是非常危险的。
经验上,新环境初始化我至少做这几件事:
- 更新系统源并打安全补丁:
yum update -y或apt update && apt upgrade -y - 创建普通运维用户,禁止root远程登录:修改
/etc/ssh/sshd_config,设置PermitRootLogin no,使用密钥登录 - 修改默认SSH端口(不建议用22默认端口),配置防火墙只放行必要端口
- 部署fail2ban防暴力破解
- 安装云监控或自建监控agent(如Prometheus node_exporter、Zabbix agent)
- 配置系统日志统一收集(rsyslog/logstash)
- 设置swap空间(如无特殊需求),优化内核参数(
/etc/sysctl.conf)
这些步骤看着简单,但很多小团队就是懒得做,结果服务器上线第二天就被入侵。被人种了挖矿程序,CPU跑到100%,业务全挂,那个滋味我经历一次就再也不想经历第二次了。
4.4 后续维护:监控告警、备份恢复、变更管理
系统搭好只是开始,真正的运维工作在日常维护。维护体系的三大支柱是:监控、备份、变更管理。
监控这块,我之前带团队时定的标准是“基础指标全覆盖”:CPU、内存、磁盘、网络、进程、端口、日志关键词,每台机器至少覆盖10+个监控项。告警阈值要精调,不能一告警就是一大片,也不能把关键问题漏掉。比如磁盘使用率,我一般设80%警告、90%严重,但像 / 根分区这种关键路径,阈值会放到75%就预警,因为很多备份任务临时要写大量数据。
告警处理要有“值班手册”,明确的响应流程:接到告警先确认影响范围,再按影响级别决定是否立即介入。我见过很多团队,告警群一天几百条,最后大家全静音了,真出事没人发现。告警渠道宁可“少而精准”,不要“多而无效”。
备份恢复这块,经验是“3-2-1原则”:至少3份数据副本,使用2种不同存储介质,其中1份在异地保存。有条件的用对象存储或云备份产品,没条件的也要坚持定时全备+增量备份,并且定期做恢复演练。这个场景我跟很多同行聊过,大家公认的问题是备份没坏的时候觉得没用,等真需要恢复的时候发现备份早就坏了或者不完整。所以恢复演练必须做,不做等于没备份。
变更管理是保障生产稳定最容易忽略的一环。我的原则是:生产环境的任何变更,必须走“申请-评估-审批-执行-验证-回滚预案”流程。哪怕只是修改一个配置文件,也要先备份原文件,准备好回滚方案。真实的教训是,大多数生产事故不是因为没做对,而是因为变更太随意、回滚无门。养成所有操作都留痕、都备份的习惯,会帮你挡住很多坑。
5. 云原生时代,运维的进化方向在哪里
5.1 Kubernetes与containerd:容器运行时到底是怎么回事
这几年云原生运维成了热词,很多传统运维同行感觉焦虑。但焦虑解决不了问题,关键是搞懂新体系下的核心逻辑。
Kubernetes(K8s)本质上是容器编排系统,解决的是“容器多了怎么管理”的问题。而K8s本身不直接运行容器,它需要调用容器运行时(Container Runtime)。老版本默认的运行时是Docker,后来K8s推出了CRI(Container Runtime Interface)标准,现在主流的运行时变成了containerd。
containerd和Docker的关系可以这样理解:Docker是一个“全家桶”,里面包含了build镜像、拉取镜像、运行容器、管理网络等一整套能力。而containerd只是一个轻量级的“容器运行引擎”,只负责干“把容器跑起来”这一件事。K8s通过CRI调用containerd,流程大致是:kubelet通过CRI插件和containerd通信,containerd收到请求后,通过runc(一个低层运行时工具)调用Linux内核的namespace和cgroup能力创建容器沙箱环境,最终启动容器进程。
对运维来说,理解这层调用关系的意义在于:当你排查Pod启动失败问题时,顺序应该是先看kubelet日志再看containerd日志,而不是上来就重启Docker。而且这层里的错误信息往往藏得很深,比如镜像拉取失败、权限不足、网络插件问题、本地存储挂载异常,哪个环节出问题,排查路径都不一样的。
我遇到过最典型的情况是节点上的containerd存储目录满了,导致所有Pod无法拉取新镜像。查命令 crictl ps、crictl images 能快速确认是否是容器运行时层面的问题。所以做K8s运维,至少要掌握 kubectl、crictl、ctr 这几套命令的基本用法。
5.2 云原生运维的技能栈:从容器到可观测性
K8s只是云原生生态的一角。完整的云原生运维技能栈,我梳理下来至少包括:
- 容器化:Dockerfile编写、镜像构建优化、私有镜像仓库(Harbor)搭建
- 容器编排:K8s核心概念、网络模型(CNI)、存储卷(CSI)、服务发现与负载均衡
- 发布交付:CI/CD流水线(Jenkins、GitLab CI、ArgoCD)、灰度发布、滚动更新、金丝雀发布
- 可观测性:Prometheus监控、Grafana可视化、Loki/ELK日志、SkyWalking/Jaeger链路追踪
- 基础设施即代码:Ansible自动化、Terraform管理基础设施、Helm管理K8s应用
- 持续运维:巡检、扩缩容、故障演练、成本优化、稳定性治理
这个技术栈看起来很多,但底层逻辑都是相通的:用代码管理基础设施,用标准化取代手工操作,用数据驱动决策而不是拍脑袋。
5.3 AI运维和智能运维:不是替代,而是辅助
“AI运维”这个词现在也很火,很多做运维的朋友担心被替代。我的看法是:AI在告警降噪、日志分析、异常检测、根因定位辅助这些方向,确实有实用价值,但它替代的是“重复性体力活”,替代不了“需要综合判断的决策”。
举个例子,传统监控面对海量告警时,值班人员往往需要花大量时间判断“哪些告警是同一故障引发的”“哪些告警是无关紧要的”。AI可以通过算法把关联告警聚合成一个事件,直接告诉你“可能是数据库主从延迟导致的一批应用超时告警”,这能把MTTR(平均修复时间)缩短不少。但最终的变更操作、风险决策、预案编写,还得靠人来完成。
所以我建议做运维的同行,不要看到AI就心慌,也不必看到AI就盲目追新。先把数据分析、Python脚本这些基本功补上,再尝试在告警降噪、日志分析这些场景用AI工具做辅助,逐步建立“人机协同”的工作模式,这就够了。
5.4 云基础设施运维与认证体系
如果公司在用公有云,云运维是另一个方向。阿里云、腾讯云、华为云的运维岗位需求都很大,尤其是混合云、多云的场景,对工程师的要求是能同时理解云产品和传统架构,能做成本分析和优化。
云认证方面,主流的包括阿里云ACP/ACE、腾讯云TCP、华为云HCIP等。国外有AWS的SAA、SysOps Administrator等认证。这些认证对找工作有帮助,但更重要的是通过备考系统梳理云服务的知识体系。我自己备考云认证时的经验是:不要把拿证当成目标,而是借考证把VPC网络、负载均衡、对象存储、数据库服务、安全组、日志服务这些模块之间的联动关系搞清楚,这才是真正的收获。
6. 自动化运维与常用效率工具
6.1 从Shell脚本到自动化平台:自动化的三个层次
自动化是现代运维效率提升最明显的手段。很多人一提自动化就想到K8s、想到平台,但真正的自动化是从小事做起的。
自动化的第一个层次是脚本化。把重复性的命令操作写成Shell/Python脚本,比如日志清理脚本、备份脚本、批量巡检脚本、上线发布脚本。这个层次的目的是“减少手工操作”。
第二个层次是编排化。用Ansible、SaltStack这类工具把一组操作组合成一个playbook,一次执行、结果一致。比如新服务器初始化,从创建用户、安装基础软件、修改系统配置到部署监控agent,可以全流程自动化完成。Ansible的原子性操作设计非常方便,幂等执行意味着重复跑不会出错。
第三个层次是平台化。把脚本、流程、权限、审批集成到一个Web平台上,让团队里所有人都能自助完成操作。也就是热搜词里提到的“运维开发”“IT运维效率工具”“私有化运维”这些方向的落点。平台化开发需要一点前后端能力,现在主流的方案是后端用Python/FastAPI或Java/Spring Boot,前端用Vue或React,很多中小团队甚至直接用开源平台改写。
6.2 运维的效率工具清单
做运维这些年,我用过的效率工具不少,分享几个真心觉得提升效率的:
- 终端工具:FinalShell、Tabby、Termius,支持本地脚本、多会话管理、SFTP图形化上传,比单纯用Xshell方便不少。
- 命令检索:Linux命令大全类工具(grep.help、cheat.sh),查参数快。
- 远程运维:向日葵、ToDesk、RustDesk(开源自建),跨平台远程桌面,尤其适合桌面运维场景。
- 笔记工具:强烈建议运维人养成写文档的习惯,Notion、语雀、Obsidian都可以,重点是建立自己的知识库,把踩过的坑沉淀下来。
- API调试:Apifox、Postman,排查接口问题必备。
- 数据库管理:Navicat、DBeaver、CloudBeaver(网页版),统一管理MySQL、PostgreSQL、Redis多种数据库。
- 内网穿透:如果需要在没有公网IP的环境下远程调试,frp、ngrok这类工具很管用。
- 压测工具:ab、wrk、JMeter,上线前做基础压测可以发现很多潜在性能瓶颈。
有很多做运维开发的朋友问我,MySQL、Redis、Nginx这些基础组件到底要不要自己搭建一套来练手。我的答案是:要,而且必须亲手装一遍。原因很简单,生产环境出问题时,如果你连这些组件是怎么装出来的、配置有哪些关联、启动流程是什么样都不知道,排查只能靠猜。先手动装,再用二进制包装,再用容器化部署一遍,每一步都理解清楚,基本功才算扎实。
6.3 统信livecd、网络运维工具箱与“离线运维”场景
安全环境下很多服务器是不能连外网的,离线和内网场景是运维工作的重要分支。没有网盘的软件安装包、依赖库,需要提前准备好离线包;没有“yum install”,你得提前把RPM包和依赖树理清楚;没有图形界面工具,你得熟练掌握命令行操作。
统信运维工具的livecd恰恰是典型的“离线运维”场景产物。系统挂掉后,用livecd启动到一个临时环境,挂载原系统根分区,修复引导、重置密码、修改配置故障的启动项,然后重启恢复正常。我在日常工作中也经常用类似思路处理Linux故障,比如单用户模式重置root密码、chroot修复损坏的系统环境。
网络运维工具箱这类产品则是把日常高频操作(Ping、Telnet、DNS查询、端口扫描、抓包、路由追踪)集成到一个界面上,适合网络工单快速处理。这类工具我建议每个人至少熟练使用一款,效率能提升不少。
6.4 自动化运维项目的落地案例
很多小团队的自动化改造,第一步做的是上线发布自动化。我见过太多团队还在用最原始的方式发布:开发打包 → 传给运维 → 运维用脚本拷贝到服务器 → 重启服务。一个人手动操作,速度慢还容易出错。后来我们用一个开源CI/CD工具,把整个流程串起来,代码推送到指定分支后自动触发构建、自动生成镜像、自动部署到测试环境,测试通过后一键发布到生产环境。以前一次发布半小时,现在全流程三分半钟搞定,而且每个环节都有日志记录,出了问题可以回滚到上一个版本。
这个案例能说明一个道理:自动化不是折腾“高大上”的技术,而是用最合适的手段,把流程里重复、易错、效率低的部分去掉。先把流程梳理清楚,再谈工具选型,顺序不要搞反。
7. 运维工程师的成长路径与面试准备
7.1 运维工程师需要具备的知识体系
运维工程师不是一个“越老越吃香”靠经验吃饭的简单工种,现代运维的知识体系已经很庞大了。我把运维工程师的成长分成四个阶段:
| 阶段 | 核心能力 | 关键词 |
|---|---|---|
| L1 基础操作 | Linux基础、网络基础、桌面支持、故障记录 | 命令、排查方法 |
| L2 专项运维 | 系统/网络/数据库/应用任选1-2个方向深入 | 集群、高可用、性能优化 |
| L3 自动化与平台 | 脚本开发、CI/CD、监控平台、配置管理 | Python、Ansible、Prometheus |
| L4 架构与治理 | 架构设计、稳定性保障、成本治理、团队管理 | SRE、云原生、AIOps |
每个阶段的核心考核点不一样。很多工作四五年的运维还停留在L2,是因为只在“操作层”重复,没有往“体系化”上走。比如同样是排查数据库慢查询,L2的做法是执行 show processlist 找到慢SQL,L3的做法是搭建慢查询日志分析系统,自动按天输出Top SQL清单,L4则进一步从索引设计、数据架构层面做优化。
7.2 运维面试题的高频方向与答题思路
运维面试题五花八门,但归纳下来就这几类:
平台+内核:常用Linux命令、系统负载分析思路、内存和文件系统机制——重点是能讲清楚排查的完整思路。
网络:TCP三次握手/四次挥手、HTTP状态码含义、DNS解析流程、网络故障定位步骤。
数据库:MySQL索引原理、事务隔离级别、主从复制原理、慢SQL优化。
中间件:Nginx配置与负载均衡策略、Redis的数据结构、缓存穿透/击穿/雪崩的解法。
云原生:Docker镜像原理、K8s核心组件(如kubelet、etcd、controller manager)作用、Pod生命周期、服务暴露方式。
异常场景:CPU飙升、内存泄漏、磁盘写满、数据库连接数打满、线上接口抖动——这类题最考验功底,答得好直接加分。
我面试候选人的时候,最看重的是思路是不是清晰、边界是不是了解。对于想冲击大厂运维岗位的朋友,建议准备一个“高可用架构”的完整方案问答,比如:如何设计一套支撑日均百万请求的Web应用架构?从负载均衡、反向代理、应用集群、缓存、数据库主从/分库分表、消息队列、监控告警、故障切换、数据备份,一条链路讲下来,会非常有竞争力。
7.3 运维项目怎么展示,简历和面试才有说服力
很多运维简历的问题是“平铺式”的罗列技术栈,比如“熟悉Linux、会部署MySQL、了解K8s”,这种写法毫无区分度。更有效的方式是“项目式”表达:背景-难点-动作-结果。
举个例子,简历里可以写“负责某业务系统K8s集群迁移,完成大版本升级;通过灰度发布与故障快速回滚,将发布对业务影响降到最低,实现零故障迁移”。面试时再展开细节,比如集群规模多少、迁移评估做了哪几件事、遇到的最大问题是什么、验证策略有哪些,这些才是面试官真正关心的。
7.4 运维的职业发展,不只有“技术专家”一条路
做运维还能走向哪里?这是很多从业者困惑的问题。我身边走出过几条不同的路子:有的深耕技术,成为K8s专家、数据库专家、SRE负责人;有的转型做运维开发,往DevOps、平台工程发展,薪资和技术含金量都很可观;有的转向云架构师或解决方案架构师,对接客户做云架构设计;还有的走向ITIL/ITSM流程管理方向,专注运维体系建设、服务管理、合规审计。
对于已经入行几年的人,我建议不要只埋头干活,定期抬头看看行业趋势。比如今年技术社区里“运维有个编辑器e”这样的热议,本质上就是对新一代运维工具、统一开发运维入口的关注。每个阶段都让自己学到能应对“下一个三年”的能力,这样职业路才会越走越宽。
8. 运维从入门到进阶的避坑清单
这些坑是我自己踩过,或者亲眼看到别人踩过的,整理出来供各位同行参考:
- 备份后不做恢复演练,等于没有备份。真到灾难恢复那天发现备份坏了,哭都来不及。至少每季度做一次恢复演练。
- 生产环境的变更不备份原文件、不写回滚预案。一次配置改错,可能要花数小时才能恢复现场。
- 拿到新服务器不第一时间做安全加固。裸奔在公网上,等下被入侵了再处理,损失往往已经很大了。
- 监控告警阈值设置太灵敏,导致告警疲劳。宁可少,但要准。
- 忽略了基础网络排查工具(tcpdump、ss等)的掌握。网络问题其实是运维日常工作里最常见的疑难杂症来源。
- 遇到问题不先看时间线、版本变更记录,上来就瞎猜。很多故障其实都是变更触发的,回看变更记录往往能立刻锁定方向。
- 自动化只做不维护,脚本跑两个月没人管,依赖变了就挂。写自动化脚本要留文档、留执行日志、留可观测性。
- 只关心业务功能,不关心性能容量。线上系统没有容量评估和限流保护,流量一来就是雪崩。
我自己入行早期就经历过因为变更没有留档,导致回滚时不知道该回滚哪个版本文件的尴尬场面。那之后再也不敢“随手改生产”了。
最后再分享一个我长期养成的习惯:每天留半小时整理当天的操作,写进自己的知识库,把踩过的坑和验证过的方案都沉淀下来。几年之后,这不仅是自己的财富,还能整理成团队文档、培训材料。运维这个岗位,经验值往往比代码量更值钱,会总结的人,成长速度会快很多。
