上周帮表弟装完 Jenkins,他盯着屏幕发了三分钟呆,突然来一句:‘哥,这玩意儿真能自己学会?’我端起泡面喝了一口汤——这话我当年也问过。
难在哪?不是技术,是路子
很多人卡在第一步:打开浏览器搜‘DevOps教程’,结果跳出 27 个‘从零到架构师’‘30 天速成’‘年薪百万路线图’。点进去一看,前两章讲 Linux 基础,中间插 Docker 编排,后半截突然跳到 GitLab CI YAML 写法,最后还附赠一段 Kubernetes Operator 开发……这不是学 DevOps,是闯关打 Boss。
真实场景哪有那么规整?你可能今天要修一台跑崩的 Nginx,明天被拉去配个灰度发布脚本,后天发现 Ansible 模板里变量写错了导致 5 台服务器全掉线。DevOps 的‘难’,不在命令记不全,而在你不知道该先救火,还是先搭流水线。
自学能不能行?看你怎么用‘错’
我见过最有效的自学方式,是拿自己正在用的东西开刀。比如你用 WordPress 博客,就别急着啃《SRE 实践指南》,先干这三件事:
- 把博客备份脚本改成每天凌晨自动推到 GitHub(用 crontab + git);
- 用 Docker 把 PHP+MySQL 环境跑起来,再改改 nginx.conf 让它能访问本地域名;
- 最后加个简单的 shell 脚本,一键拉取最新代码、重启容器、检查 200 响应。
这三步做完,你已经踩过了版本控制、容器化、自动化部署三个坑——比照着文档抄十遍都强。
一个血泪小例子
有次我写了个 deploy.sh,本地测试好好的,扔到服务器上就报:
./deploy.sh: line 12: syntax error near unexpected token `&'查了半小时,发现是 Windows 下写的脚本,换行符是 CRLF。用
dos2unix deploy.sh 一敲,立马跑通。这种错,文档不会写,视频课也不讲,但你一旦撞过,下次看到 ‘unexpected token’ 就知道先 file deploy.sh 看编码类型。别追‘完整知识图谱’,先让一件事闭环
DevOps 不是考试,没有标准答案。你不需要搞懂 Prometheus 所有指标含义,只要能让 Grafana 显示出 CPU 使用率告警就行;你不用背熟 Helm 所有参数,只要能把公司那个老旧的 Java 应用包成 chart 部署成功,就算赢了一局。
难的是坚持每天改一行配置、试一次命令、修一个失败的 pipeline。容易的是——这些事,你现在就能做,不用等‘准备好’。