很多人以为全栈工程师就是前端写得溜、后端玩得转,数据库也能搞两下,项目一上线就完事了。可现实是,代码跑在服务器上,网络不通、磁盘满了、服务崩了,没人管的话,再漂亮的代码也白搭。
上线之后才是真正的开始
你辛辛苦苦开发了一个应用,本地测试没问题,部署到服务器,结果打开页面显示 502 Bad Gateway。这时候找谁?如果团队有专职运维,当然可以甩锅过去。但现实中很多中小公司,尤其是创业团队,根本没有专门的运维岗位。这时候,全栈工程师就得自己上。
查日志、看 Nginx 配置、检查进程是否启动、确认防火墙端口有没有开——这些活儿听起来像运维干的,可当你一个人扛整个项目时,这些就是你的日常。
懂点运维,救得了命
曾经有个朋友在半夜被报警吵醒,线上服务挂了。他连 SSH 怎么登服务器都卡了半天,最后靠同事远程指导才恢复。这种尴尬,只要自己动手配过几次生产环境就能避免。
比如部署一个 Node.js 应用,你以为 npm start 就完事了?真到了服务器上,你得考虑进程守护。用 PM2 几行命令就能搞定:
pm2 start app.js --name \"my-web-app\"
再比如,你想让别人访问你的服务,还得配反向代理。Nginx 写个简单的配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
这些东西不算复杂,但如果你完全没碰过,出问题就得现学,线上事故等不了你慢慢查文档。
自动化部署也是运维的一部分
现在谁还手动上传代码?GitHub Actions、GitLab CI/CD、Jenkins 这些工具,早就是全栈开发的标配。写个 yml 文件,代码一合并,自动测试、打包、部署到服务器,一气呵成。
deploy:
stage: deploy
script:
- ssh user@server \"cd /var/www/app && git pull origin main && pm2 restart app\"
这种脚本看着像运维写的,但实际上往往是开发者自己维护。你不了解基本的 Linux 命令、SSH 认证、服务管理,根本写不出来。
不是要你成为运维专家
说全栈得会运维,并不是要求你精通 Kubernetes、玩转 Prometheus 监控、搭建高可用集群。而是要有基本的“服务思维”:你的代码不是孤立运行的,它依赖环境、网络、资源。
能看懂系统负载,知道怎么查磁盘空间,会看 nginx error.log,能在服务器上快速定位问题,这就够用了。就像你会修车不一定非得当 mechanic,但车子半路抛锚时,能自己换轮胎总比干等着强。
很多全栈工程师一开始也不懂这些,都是被线上问题逼出来的。项目越做越多,踩的坑多了,自然就懂了。运维知识不是额外负担,它是让你写的代码真正“活起来”的一部分。