运维需要学哪些知识
运维工程师(DevOps/SRE)需要掌握的知识体系既广泛又深入,涵盖基础设施、自动化、监控、安全等多个领域。以下是系统化的知识框架和建议学习路径:
一、基础核心技能
操作系统
- Linux(核心重点):
- 文件系统、权限管理(chmod/chown)
- 进程管理(ps/top/kill)、服务管理(systemd/cron)
- 日志分析(/var/log、journalctl)
- 性能调优(vmstat/iostat/sar)
- Windows Server(可选):
网络基础
- TCP/IP协议栈、HTTP/HTTPS/DNS
- 防火墙配置(iptables/nftables)
- 抓包分析(tcpdump/Wireshark)
- 负载均衡(Nginx/HAProxy/LVS)
脚本编程
- Shell(Bash):自动化任务、日志处理
- Python(重点):Ansible/OpenStack等工具开发
- 可选:Go(云原生工具链开发)
二、运维核心技术栈
配置管理 & 自动化
- 工具:Ansible(无Agent)、SaltStack、Puppet
- 场景:批量部署、配置漂移检测
持续集成/交付(CI/CD)
- 工具链:GitLab CI/Jenkins/ArgoCD
- 流程设计:代码构建→测试→部署→回滚
监控与告警
- 基础监控:Prometheus(时序数据库)+ Grafana
- 日志系统:ELK(Elasticsearch+Logstash+Kibana)
- 全链路:OpenTelemetry + SkyWalking
容器化 & 编排
- Docker:镜像构建、私有仓库(Harbor)
- Kubernetes(核心):
- Pod/Deployment/Service设计
- Helm包管理、Operator开发
云平台
- AWS/Azure/GCP:IAM、VPC、ECK
- 国内云:阿里云(ACK、SLB)、腾讯云
三、进阶方向(按需选择)
基础设施即代码(IaC)
- Terraform(多云资源编排)
- Pulumi(代码化基础设施)
高可用架构
- 数据库集群(MySQL MGR/Redis Cluster)
- 消息队列(Kafka/RabbitMQ)高可用
安全运维(DevSecOps)
- 漏洞扫描(Nessus/OpenVAS)
- 零信任架构(SPIFFE/SPIRE)
性能优化
- Linux内核参数调优
- JVM/GC调优(Java应用场景)
四、软技能
- 故障排查
- 方法论:RED(Rate/Error/Duration)、USE(Utilization/Saturation/Errors)
- 文档能力
- 编写Runbook、故障复盘(Postmortem)
- 协作工具
学习路径建议
初级阶段(3-6个月)
- 掌握Linux基础 + Shell/Python脚本
- 部署LNMP/LAMP栈
- 学习Ansible自动化
中级阶段(6-12个月)
- 搭建K8s集群并部署应用
- 实现Prometheus+Alertmanager监控
- 设计CI/CD流水线
高级阶段(1年以上)
- 深入云原生生态(Service Mesh、Serverless)
- 参与开源项目(如CNCF项目贡献)
推荐资源
- 书籍:《Site Reliability Engineering》(Google SRE手册)
- 认证:AWS Certified DevOps Engineer、CKA(Kubernetes认证)
- 实验平台:Katacoda(已迁移到Killercoda)、自己的Homelab
运维领域技术迭代快,建议通过实际项目驱动学习,例如用Terraform部署一个高可用K8s集群并实现自动化监控。保持对新技术(如eBPF、Wasm)的关注,但优先夯实基础。