DevOps:
Operator 技能
Linux Basis
基本命令操作
Linux FHS(Filesystem Hierarchy Standard 文件系统层次结构标准)
Linux 系统(差异、历史、标准、发展)
脚本
Bash / Python
基础服务
DHCP / NTP / DNS / SSH / iptables / LDAP / CMDB
自动化工具
Fabric / Saltstack / Chef / Ansible
基础监控工具
Zabbix / Nagios / Cacti
虚拟化
KVM 管理 / XEN 管理 / vSphere 管理 / Docker
容器编排 / Mesos / Kubernetes
服务
Nginx / F5 / HAProxy / LVS 负载均衡
常见中间件 Operate(启动、关闭、重启、扩容)
Dev
语言
Python
Go(可选)
Java(了解部署)
流程和理论
Application Life Cycle
12 Factor
微服务概念、部署、生命周期
CI 持续集成 / Jenkins / Pipeline / Git Repo Web Hook
CD 持续发布系统
基础设施
Git Repo / Gitlab / Github
Logstash / Flume 日志收集
配置文件管理(应用、中间件等)
Nexus / JFrog / Pypi 包依赖管理
面向 开发 / QA 开发环境管理系统
线上权限分配系统
监控报警系统
基于 Fabric / Saltstack / Chef / Ansible 自动化工具开发
SRE:
语言和工程实现
深入理解开发语言(假设是 Java)
业务部门使用开发框架
并发、多线程和锁
资源模型理解:网络、内存、CPU
故障处理能力(分析瓶颈、熟悉相关工具、还原现场、提供方案)
常见业务设计方案和陷阱(比如 Business Modeling,N+1、远程调用、不合理 DB 结构)
MySQL / Mongo OLTP 类型查询优化
多种并发模型,以及相关 Scalable 设计
问题定位工具
容量管理
Tracing 链路追踪
Metrics 度量工具
Logging 日志系统
运维架构能力
Linux 精通,理解 Linux 负载模型,资源模型
熟悉常规中间件(MySQL Nginx Redis Mongo ZooKeeper 等),能够调优
Linux 网络调优,网络 IO 模型以及在语言里面实现
资源编排系统(Mesos / Kubernetes)
理论
容量规划方案
熟悉分布式理论(Paxos / Raft / BigTable / MapReduce / Spanner 等),能够为场景决策合适方案
性能模型(比如 Pxx 理解、Metrics、Dapper)
资源模型(比如 Queuing Theory、负载方案、雪崩问题)
资源编排系统(Mesos / Kurbernetes)