做某一行最关键的是要入门,也就是从0到1。只有跨越过了1,后面再进步就快多了。很多人都是没有成功从0跨越到1,就放弃了,实在是太可惜了!
个人建议学习运维的路线如下:
第一阶段:初级入门
目标是入门,不要求太精太细,原理可以不懂,但要知道概念。
● Linux系统基本操作:Linux发行版、系统安装、网络配置、远程登录、文件和目录、用户、磁盘、编辑器vi、软件安装卸载、打包压缩、系统状态监测、系统服务、系统日志、防火墙等
● shell脚本入门:正则三剑客(grep,sed,awk)、shell脚本基础知识和语法等
● 基础服务搭建和配置:NFS、FTP、Nginx、PHP、Tomcat、Redis、MySQL、Docker、Zabbix
● 网络基础知识:OSI七层网络模型、TCP/IP等
● 知道公有云概念:常见公有云阿里云/腾讯云/亚马逊云/华为云等懂基本操作,知道常见的资源(云主机、云数据库、CDN、对象存储、网络存储、快照、镜像、安全组策略等等)
第二阶段:中级进阶
目标是扩大知识面,学会解决问题的方法论,积累经验
● 网络方面要达到CCNA水平
● Linux系统相关操作非常熟练,掌握内核参数调优,熟练解决系统层面问题(系统无法启动、文件系统损坏、系统性能瓶颈定位)
● 对常见服务配置优化以及故障处理非常熟悉(Httpd、Nginx、PHP、MySQL、Redis、Tomcat、JVM等)
● 常见服务的高级用法:Nginx、MySQL高可用以及集群、Redis高可用以及集群
● 有集群架构的思路(高可用、负载均衡、分布式)
● 扩展服务:MongoDB、RabbiMQ、Kafka、Zookeeper、Etcd、ElasticSearch、Prometheus等
● 堡垒机(Jumpserver)、虚拟化(KVM、Vmware、PVE)、自动化(cobbler、Ansible、Spug)
● DevOps思想和工具使用(Jenkins、GitLab、Pipline、CI/CD)、K8s搭建和基本的维护
● Shell脚本可以熟练编写需求
● 掌握一门编程语言Python/Go,不求写项目,但会用,能实现局部功能(如写脚本工具、简单的二次开发)
● 熟练操作公有云资源并解决故障
第三阶段:高级提升
目标是具备运维体系思维、平台思维,搞清楚原理,能解决深层次的问题
● 架构师能力(通过各种开源软件设计出复杂、稳定、高效的运维架构,如高可用、负载均衡、分布式、异地多活架构等)
● 平台设计能力(为企业落地运维体系平台:CMDB平台、监控平台、虚拟化平台、日志分析平台、自动化运维平台、DevOps落地系统、K8s周边等)
● 网络能力达到CCNP水平,熟悉TCP/IP协议,能够解决Linux系统底层(内核相关、TCP相关)故障
● 编码能力(Shell、Python、Go)二次开发工具、平台。
第四阶段:专家
目标是,朝一个方向发展,深入研究,能针对企业的应用针对开源软件二次开发实现新功能,或者提出可行的、可落地的具体方案。
总之,要想成为人上人,务必要时刻保持进步,持续学习,不断复盘和改进!