1. 十年,一个职业的底色重绘
2015年入行做系统工程师的人,大概率是这么一幅画像:机房里推着满载服务器的滚轮车,手里攥着一串机房门禁卡,电脑桌面上开着一排PuTTY窗口。那时候面试官问得最多的问题,是“会不会装RHEL”“Iptables熟不熟”“能不能熬夜割接”。工作核心围绕“不宕机”三个字展开,备份、监控、巡检、变更,像齿轮一样周而复始地转。
2025年再看这几个字,含义已经完全不同。一个成熟的SE(System Engineer)通常对着的是云厂商控制台、IaC代码仓库、CI/CD流水线,聊的是SLO、成本优化、容量预测、FinOps。日常工作里有一半时间在写代码或者审代码,另一半时间在跟研发、架构师、业务方讨论设计。机房里的设备变成了云端的一行行Terraform资源定义,割接变成了流水线里的一次自动发布。
这个转变不是某一天突然发生的,而是被2015到2025这十年的技术浪潮一波一波推着走的。从OpenStack的兴起、Docker和K8s的爆发、微服务和Service Mesh的热潮,到现在的AI Infra和大模型平台,每一波浪潮都重塑了SE的技能栈、工作方式和生存法则。
这篇文章我想以从业者的视角,把这十年的演进轨迹梳理出来——不只是技术栈的替换,更是思维模式和工作重心的迁移。给还在这个岗位上的同行一个参照系,给想入行的新人一个全景视角,也给那些正在招SE的团队一份历史坐标。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术栈的代际更替:从物理机到平台工程
2.1 2015年:传统SE的黄金时代尾声
2015年的互联网公司,尤其是二线以下规模的公司,大部分业务还是跑在物理机或者简单虚拟化之上。我印象很深刻的是当时一家电商公司的生产环境:两百多台物理机,用PXE批量装系统,Kickstart脚本写好分区和软件包列表,装完一台机器需要二十分钟,然后手工加到Zabbix监控里,再加到SaltStack配置管理里。
当时SE的核心竞争力在于对底层硬件的熟悉程度。磁盘阵列的RAID级别选择、内存插槽的布线方式、网卡绑定模式、BIOS参数调优,这些都是实打实的硬功夫。做一次存储扩容,要提前跟硬件厂商约时间,晚上十点进机房,带上防静电手环,逐台机器插硬盘、扩RAID。扩容八台机器通常要折腾到凌晨三点。
那时候的监控体系是Zabbix加Nagios的组合,告警靠短信网关,电话叫醒是常事。配置管理用SaltStack或Puppet,发布代码靠rsync。自动化程度很低,但系统相对简单,出问题的面窄,排查路径也清晰。一个老练的SE闭着眼睛都能画出网络拓扑和依赖关系。
我当时所在团队有一句话叫“变更必出事”,所以每次变更都需要风险评审会,邮件审批、多人确认、变更窗口期,流程冗长而严格。这套流程的确稳住了系统的可用性,但代价是极其缓慢的迭代速度。一个新业务要上线,买机器、装系统、配置网络、部署环境,整个链路走完至少两周。
现在回头看,那段时期是传统SE的黄金时代尾声,也是整个行业走向自动化的前夜。你熟练掌握的那些硬件知识、运维动作,正在被一种新的技术范式快速替代。
2.2 2017-2019年:容器化与编排风暴
Docker在2013年发布,但真正进入生产环境是2016年前后的事。2017年,Kubernetes已经在技术社区里口碑爆棚,而大量传统SE还在观望,但是浪潮不会等人。我所在的公司在2017年启动了容器化改造,那是我职业生涯里最艰难也最重要的项目之一。
容器化意味着什么?最直观的变化是SE不再需要关心操作系统装的是CentOS 7还是Ubuntu 16.04,因为应用运行在一个标准化的镜像里,底层是什么系统都不重要了。其次是环境的一致性——开发环境和生产环境不再有差异,镜像就是唯一的交付物。
但技术栈的变化带来的是认知体系的崩塌和重建。以前排障的思路是“看系统日志、看进程状态、看网络连通”,现在变成了“查Pod状态、查镜像版本、查Service和Ingress配置”。以前扩容是“准备几台机器,CentOS装好,应用部署上去”,现在只需要修改replicas字段执行apply,Pod就可以自动扩容。
这个阶段最痛苦的是排障难度的指数级上升。一个请求从客户端发出到返回,中间可能经过SLB、Ingress、Service、Pod、容器网络、分布式存储等多个环节。任何一个环节出问题,都需要SE具备全链路排查的能力。我印象很深的一起故障是,K8s集群里的CoreDNS解析超时,导致所有服务的调用链路变慢,而现象看起来却像应用本身出了问题。当时排查了将近四个小时,才定位到DNS层的瓶颈,本质上是kube-dns的副本数不够。这种跨层定位的难度,是传统运维时代很少遇到的。
容器化改造也给SE团队带来了一个棘手问题:研发和运维的边界变模糊了。以前研发把代码扔给运维,运维负责部署和保活,边界清晰。现在研发自己写Dockerfile、K8s YAML,代码提交后通过CI/CD流水线自动部署,SE的角色从“操作者”变成了“平台建设者”——你不再负责部署每一个应用,而是负责让研发可以自助、安全、高效地部署自己的应用。这个转变是很多SE在2018年前后经历的“身份危机”。
2.3 2020-2022年:云原生全线落地
疫情加速了整个社会的数字化进程,也让云原生技术栈真正成为行业标准。到2020年底,如果一家互联网公司生产环境还是传统的虚拟机加手工部署,基本可以断定技术处于落后状态。Kubernetes已经是公认的“数据中心操作系统”,API、控制器、声明式管理这些概念变成了SE的日常术语。
这个阶段有几个标志性的变化。首先是可观测性体系的成熟。以前是Zabbix、Nagios打天下,现在Prometheus加Grafana成为标配,日志收集全面转向ELK/EFK,链路追踪用Jaeger或SkyWalking。SE的技能要求从“会配监控”升级为“会设计观测体系”——哪些指标需要采集、日志如何结构化、告警规则如何避免噪音、SLO/SLI如何定义,这些都属于现代SE的必修课。
其次是多集群和多云管理的需求爆发。业务规模大了以后,单集群的容量和故障域都不够用,SE需要应对跨集群的流量调度、配置同步和容灾设计。在这个层面,在集群之上做了一层联邦层,把多个K8s集群抽象成一个逻辑平面,上层应用不感知物理集群边界。这套架构后来为业务提供了很好的弹性——当某个集群因为云厂商故障不可用时,流量自动迁移到其他集群,用户无感。
再看看云成本的问题。疫情之后各家公司都在关注钱的问题了,云账单成为SE绕不开的话题。以前是“确保系统可用就好,钱不是SE考虑的事情”,现在不行了。在大规模容器化之后,资源碎片化严重,一台物理机上混跑几十个Pod,每个Pod申请的request和limit如果写得随意,一个集群可能浪费百分之三四十的资源。这个阶段SE开始研究HPA、VPA、Spot实例、资源装箱算法,成本优化从一个边缘话题变成了核心KPI之一。
这里面有一个很重要的思维转变:稳定性和成本不再是对立关系,而是需要一起优化的联合目标。一个优秀的SE能通过合理的设计同时改善两者,而不是靠堆资源换稳定性。
3. 核心能力边界的重构:从操作者到架构者
3.1 摆脱“手工作坊”,进入“代码定义一切”
如果说2015年的SE是靠双手在干活,那么2025年的SE是靠代码在干活。这个转变不是形容词层面的,而是工作内容的本质性变化。
2015年的日常:登录堡垒机,手动执行命令,修改配置文件,重启服务,验证结果。每个操作都是手工的,都可记录、可追溯,但问题是慢,而且严重依赖个人经验的积累。一个人对系统的了解深度,决定了他操作的正确性和速度。一旦这个人离职,知识就带走了。
2025年的日常:打开Git仓库,修改Terraform或者Pulumi代码,提交PR,经过review之后合并,通过GitOps流水线自动应用到集群。整个流程的每一个环节都可以追溯,团队里任何一个人都能通过代码了解系统的全貌。基础设施变成了“代码”,而代码是可以review、可以测试、可以回滚的。
这个转变对SE个人能力的挑战是巨大的。一个纯操作型的SE,放到2025年的语境下基本没有立足之地。你必须掌握至少一门编程语言(Go或者Python是主流选择),必须理解CI/CD的原理和最佳实践,必须能读懂研发写的代码来判断性能瓶颈和故障根因。
我个人建议所有年轻SE都去系统地学一下Go语言。不是因为Go是一门时髦的语言,而是Kubernetes、Prometheus、Terraform这些基础设施领域的核心工具全是Go写的。读懂这些工具的源码,意味着你对系统的理解能下沉到实现的深层,而不仅仅停留在API调用的表层。这种“源码级理解力”在排障的时候能救你的命。
3.2 从“保证可用性”到“定义可用性”
传统SE的使命是保证可用性——系统不能挂,指标写在SLA里,你可以通过各种手段去守住那条线。但现代SE的使命上升了一层:你需要定义什么是可用性。
这就引入了SLO(Service Level Objective)和SLI(Service Level Indicator)的概念。过去我们说的可用性是一个模糊的词,比如“全年99.95%”,但这个数字对用户来说意味着什么?对不同的业务来说,可用的定义也不同——交易系统可用,意味着下单、支付链路是通的;视频网站可用,意味着播放成功率达标;搜索系统可用,意味着查询延迟在可接受范围内。
你只有把模糊的“可用性”这个目标拆成可量化的SLI指标,并且设定合理的SLO阈值,才能知道系统的真实健康度。比如一个订单服务,99%的请求延迟低于200ms,错误率低于0.1%,这才叫“健康”。如果这两个指标达标,即便基础设施层面有一些小抖动,用户的体验也不会受影响,SE不需要草率告警;反过来,如果这两个指标不达标,即便所有机器都运行正常,SE也必须在第一时间介入。
这套方法论在2015年几乎没人讨论。那时候做的是“黑盒监控”——从外部探测端口通不通,进程活着没有,CPU高不高。现在做的是“白盒监控”——从应用指标反推系统健康度,从用户视角定义SLO,从告警噪音管理到值班轮换制度,所有设计都围绕SLO展开。
对我个人而言,这个变化最大的影响是“告警减负”。以前一个夜班能收到上百条告警,其中一半是噪音,另一半是“看起来很重要但不知道是什么”的指标报警。引入SLO体系之后,我们把告警规则聚焦到有限的几个关键指标上,值班人员的精力从“疲于奔命”转变为“聚焦关键”,夜晚的睡眠质量显著改善。
3.3 平台工程:SE的下一个进化方向
2023年开始,业界的讨论热度逐渐从SRE转向了Platform Engineering(平台工程)。这两个概念不是对立的,而是一脉相承的进化关系。SRE强调的是用软件工程的方法解决运维问题,而平台工程更进一步,把运维能力产品化,变成一个内部的开发者平台(IDP,Internal Developer Platform)。
这个转变对SE的影响在于:你不只是解决问题的人,而是造工具的人。你的用户不再是外部客户,而是公司内部的研发团队。你要思考的不是“这个系统怎么部署”,而是“研发怎样才能自助地部署系统”。
平台工程的核心是抽象和自助服务。研发不需要关心底层基础设施的细节——他不知道也不应该知道K8s集群怎么搭建,Ingress怎么配置,存储怎么申请。他只需要在一个平台门户上提交一个请求,比如“我要一个带PostgreSQL的Java应用环境,测试环境,三天后要”,平台自动创建所有资源,并在完成后返回访问地址。
这个模式在大型组织里非常有用,因为它解放了SE,也解放了研发。研发不再被阻塞在等待环境审批的流程里,SE不再深陷重复性的环境搭建工作,两个团队的目标就可以真正对齐了。
但平台工程的落地并不容易。它对SE提出了非常高的产品思维要求——你要理解用户(研发)的真实需求,要设计友好易用的交互界面,要规划合理的权限模型和资源配额,还要保持底层技术栈的灵活性和可扩展性。很多SE是技术出身,天然缺乏产品思维,把平台做成了一个“能用的工具”,而不是“好用的产品”。这两者之间差距很大。
我记得做过一次内部调研,研发反馈最多的是“环境申请流程太慢”,但实际上我们的自动化平台创建环境的时间已经压缩到三分钟以内了。后来的深入访谈发现,问题不在平台本身的创建速度,而在“用户根本不知道平台有什么能力”。这让我意识到,平台工程的三驾马车——文档体系、交互设计、自助引导——跟底层技术配置一样重要。
4. 实操视角:一个现代SE的生存工具箱
4.1 必备技术栈全景图
如果你在2025年还想以SE的身份在行业里立足,下面这些技术栈至少要在“理解原理+上手实操”两个层面都过关:
容器与编排:Docker是基础,Kubernetes是必须。不需要你从零实现一个调度器,但要理解Pod、Deployment、Service、Ingress、ConfigMap、Secret等核心对象的设计意图,能独立完成一个生产级集群的规划、部署和排障。
基础设施即代码:Terraform是目前绝对的主流,尤其适合多云和混合云的场景。如果是纯AWS环境,CloudFormation也值得掌握。总之,目标是做到“基础设施的创建和变更必须通过代码完成,而不是控制台点击”。
配置管理与自动化:Ansible适合轻量级配置管理,Helm是K8s生态的事实标准。如果一个系统是跑在K8s之外的(比如自建中间件、遗留老系统),Ansible依然是自动化的最优解。
观测体系:Prometheus和Grafana做指标,Loki或ELK做日志,OpenTelemetry做链路追踪。核心能力不是“会搭工具”,而是“会设计指标”——知道什么指标值得关注,什么告警规则合理,什么SLO合理。
CI/CD流水线:GitLab CI、GitHub Actions、Jenkins,至少熟练使用一个。理解流水线是SE与研发协作的接口,代码从提交到上线的全链路都应该在流水线里体现。
编程能力:Python和Go二选一必精,另一个至少能读能改。写一个K8s operator、写一个Prometheus exporter、写一个命令行的运维工具,都要求实打实的编程功力。
云平台能力:AWS、Azure、GCP、阿里云,至少深度掌握一家。理解VPC、IAM、负载均衡、存储、数据库托管服务这些核心组件的原理和最佳实践。云平台的认证只是一个起点,真正的能力体现在你能基于云产品设计出高可用、高弹性的架构。
4.2 如何规划一条十年的学习路径
如果你是一个刚入行或者入行不到两年的SE,可以按照下面这个路径来规划自己的成长:
第一年到第二年:夯实基本功。操作系统原理、网络基础、Linux常用命令、Shell脚本、数据库基础,这些是任何时候都不过时的地基。熟练使用Docker,尝试写Dockerfile,跑一个本地K8s集群(Minikube或Kind),把Pod、Service的基本概念弄明白。这个阶段的重点是“广度”,把所有的核心概念都过一遍,知道自己不知道什么。
第三年到第四年:深入一个方向。选择一个垂直领域深耕,可以是K8s本身,可以是某个主流云平台,可以是可观测性,可以是中间件运维(比如Kafka集群、MySQL集群)。这个阶段的重点是“深度”——深入了解一个方向,达到能独立负责生产环境的水平,处理过真实故障,解决过真实问题。有了深度的积累,再横向拓展其他领域会事半功倍。
第五年以后:架构能力与产品思维。这个阶段技术深度已经不是最重要的区分因素了,更重要的是你能否架构整个系统——从底层基础设施到上层业务逻辑,从稳定性到成本,你都需要有全局视野。同时,平台工程的方法论要求你开始具备产品思维,能够从用户(研发)的视角思考和设计系统。
4.3 三个值得养成的实操习惯
在多年的实践中,我总结出三个对职业发展帮助极大的习惯。
一是写文档。不是应付流程的那种文档,而是认真梳理记录的系统设计文档、故障复盘文档、操作指南。文档的受益者首先是未来的自己和你的同事。好记性不如烂笔头,半年以前解决的问题,现在可能已经完全忘记了处理细节。一份高质量的系统故障复盘文档,可以帮整个团队少踩好几次坑。
二是做复盘。每次重大故障或者变更之后,并不需要着急辩解“谁对谁错”,而要把“发生了什么、为什么发生、怎么避免再次发生”讲清楚。故障不可怕,可怕的是同样的故障反复出现。
三是提交代码到开源社区,或者至少认真读开源项目的源码。你不用成为某个大项目的核心贡献者,但通过阅读Kubernetes或Prometheus的源码,你对运行原理的理解会远超通过文档学习获得的水平。遇到性能问题或者诡异故障时,读源码往往能一针见血地找到答案。
5. 常见问题与认知纠偏:关于SE职业的五个迷思
5.1 迷思一:SE就是修电脑装系统的
这可能是大众对这个职业最大的误解。即使是2015年的SE,工作内容也远超“修电脑”的范畴——他们要管理的是支撑千万级用户访问的生产系统,涉及的是分布式架构、高可用设计、性能调优、成本管理等复杂工程问题。到了2025年的语境下,SE已经是平台工程师或者SRE的代名词,跟“修电脑”的距离相去甚远,工作重心在架构设计、自动化平台、稳定性工程这些方向上。
5.2 迷思二:AI会取代SE
2023年以来大模型的能力确实突飞猛进,很多SE产生了职业焦虑:AI都能写代码了,还要SE干什么?我的观点是——AI取代的是“劳动密集型”的SE工作,而不是“知识密集型”的SE工作。
写一个简单的Dockerfile、生成一段Terraform配置、排错时给一个排查建议清单,这些事情AI确实能做得很好,甚至会做得比初级SE更快。但是理解业务对可靠性的真实需求、设计跨系统的容灾架构、在重大故障中快速判断和决断、平衡成本和稳定性之间的矛盾,这些复杂决策需要深厚的领域知识和系统工程思维,AI在短期内无法取代。
实际上,我看到更多的趋势是AI成为SE的重要辅助工具,帮助SE更快地分析海量日志、自动生成监控面板、甚至参与故障根因分析。SE把AI当成一个强大的助手,竞争力会大幅提升;把AI当成威胁而焦虑,反而会被更快地淘汰。
5.3 迷思三:SE没有发展前景,天花板低
这个迷思的根源在于把SE等同于传统运维。在金字塔底层的、纯执行操作的岗位确实有天花板,但这个岗位在2025年的市场上已经越来越少。往上走的SE,职业路径非常清晰——技术专家路线可以做到首席系统架构师或者SRE总监;管理路线可以做到基础架构部负责人、技术VP。更不用说,SE转SRE、转DevOps、转平台工程的路径本身就非常顺畅。
十年间,技术变革的加速度越来越快,一个愿意持续学习的SE,在一个组织里能够贡献的价值远不止“保证系统不挂”,而是“定义系统的上限”。如果SE能把基础架构的成本降下来、把发布效率提上去、把故障时间压到最低,这个价值贡献比大多数软件工程师都要大。
5.4 迷思四:云原生时代不需要懂底层了
这是我在面试中经常要纠正的一个错误认知。很多候选人说“现在都用云,底层硬件的事情交给云厂商了”,但事实上,越是上层的自动化和抽象,越需要理解底层原理来做正确的技术判断。
比如用K8s管理有状态应用,你得理解存储的IOPS和吞吐差异,知道什么状态应用适合用网络存储,什么场景适合用本地盘。再比如设计一个跨可用区的高可用架构,你得理解RTT和带宽限制,才能设计出合理的同步复制机制。云厂商提供了无限的可能性,但选择哪个方案、如何在模棱两可的约束下做出合理决策,依然要靠深厚的底层功力和判断力。
5.5 迷思五:SE不需要懂业务
我见过太多SE只关注技术细节,从不关心业务逻辑。做一个电商系统的SE,不知道大促的流量峰值是多少;做一个支付系统的SE,不清楚交易链路的SLA目标;做一个人工智能平台的SE,不了解大模型的训练和推理模式。这样的SE会逐渐和业务脱节,变成“只会执行命令的机器人”。
一个优秀的SE,会主动了解业务的核心诉求和关键链路——什么是业务的生命线?哪个环节的故障最致命?业务的增长对基础设施的压力是什么样的?只有理解了业务,才能在技术决策中分清优先级,才能让基础设施真正为业务提供最大的支撑力。
以我所在的AI Infra方向为例,SE需要了解大模型训练的关键瓶颈是GPU通信效率,而推理阶段的核心矛盾是延迟和吞吐的权衡。如果不了解这些业务视角的参数,你是没办法做好GPU集群的调度策略、网络拓扑设计和存储架构选型的。
6. 写在2025年的路口:十年沉淀下来的一点思考
从2015年到2025年,刚好十年。回望这十年,系统工程师这个职业的变化可以概括为:从操作到代码,从单体到分布式,从关注机器到关注平台,从被动响应到主动设计。每个阶段的进化都充满痛苦,但回头看看,都是值得的。
我见过很多人在容器化浪潮中转型失败,因为不愿意放弃已经熟练的技能,不愿意进入“新手区”。也见过很多人成功抓住每一次技术迭代的机会,不断扩展自己的能力边界,职业生涯越走越宽。两者之间的差距,不在于天赋,而在于学习意愿和学习方法。
如果你现在正准备入行或正处于职业转型期,我的建议是:不要被技术的表象所迷惑——Kubernetes、Terraform、Prometheus都只是载体,底层的方法论才是核心。现代SE需要具备的,是系统思维(从全局视角理解系统的运作)、工程思维(用软件工程的方法解决运维问题)、产品思维(从用户角度设计平台和服务)三者的结合。
这十年间,技术栈快速更迭,但“让系统稳定、高效地支撑业务”这个核心目标从未改变。技术是工具,思维才是根本。未来的十年,AI技术可能会持续重塑工作方式,但掌握了系统化思维与学习能力的SE,怎么都能找到自己的生态位。
最后分享一个我这些年踩过坑后总结的小技巧:持续记录自己的技术决策和复盘,形成个人知识库。无论是故障排查记录、架构设计文档还是调研笔记,用自己习惯的方式整理归档。因为技术的知识量是海量的,人脑负责思考而不是存储——十年前我靠记忆力工作,现在靠系统化文档工作,效率高出很多倍。
愿你在这个不断变化的行业里,找到自己的节奏,持续成长。
