前不久,有一些读者朋友跟我聊到关于 Linux 运维方向的问题,不知道自己该学什么?怎么学?甚至对自己今后的职业规划发展方向,都没有明确。这也就充分说明了自己适合做什么方向,这个领域究竟适不适合自己去做?
对于一个不了解运维究竟是做什么的同学,可能或多或少的有听过相关话题的讨论和经过一番搜索所知有了短浅的认识。原来运维就是每天很苦逼的在机房工作,甚至可能干着一些搬服务器、上架服务器、整理网线、打标签、调试网络设备等一系列环节。
这么一听,肯定显得地位很低端,没有将自己大学所学专业应用到实际工作中,不仅技术没得到任何提升,工作也慢慢变的枯燥乏味,对自己今后跳槽也会受到影响,因此对这个行业感到迷茫,觉得没任何发展前途,很难发挥自己的价值。
在实际工作中 Linux 系统目前主要应用在企业服务器端,学习 Linux,是每一位程序员必备的技能,不管你是前端、后端、大数据、测试、算法等领域,Linux 是至关重要的。对于一名初学者来讲,前期可以先在 Windows 环境下安装个 Linux 虚拟机或者通过在线 Linux 环境并在这基础上进行实践。
学习 Linux 而更多的是向系统层面、运维工程师方向发展,其岗位主要包括:云计算系统工程师、大数据运维工程师、运维开发工程师、数据库运维工程师等等,其职位都是 Linux 运维工程师的进阶。那么作为一名运维工程师,怎么学习 Linux,以及 Linux 入门和学习的路线。
那么究竟这一话题,逐步展开来写一写关于 Linux 运维领域的学习路线,当然了,这也是我个人针对运维领域所需要接触的相关知识点,仅供大家参考,同时也欢迎大家补充。
初级运维工程师
互联网时代,人人都离不开网络。作为一名程序员来说,最起码不需要你过多的对网络有深入的研究,对于一些最基本的网络知识是必须要有的。那么在找运维岗位的时候,网络部分也是必不可少的,这里我也简单梳理了一下,具体部分如下:
1、网络技术与应用
计算机网络基础
:基本概念、网络功能和分类、网络发展史、网络协议和标准的区别、网络常见设备及其功能、网络拓扑结构、常用的数值转换方法;网络参考模型
:OSI 和 TCP/IP 分层模型的结构、OSI 各层功能、数据传输过程、设备与各层之间的关系;网络传输介质
:制作双绞线跳线、打接信息模块、连接各种网络设备、光纤的特点分类和应用、测试网络连通性;网络布线
:综合布线常识与材料、布设网络线缆、网络布线的测试与验收、布线设计图纸;交换机 / 路由器的基本原理与配置
:(常见的品牌:Cisco、HUAWEI、H3C等)、MAC 地址理论、以太网帧结构、交换机转发原理及基本配置等;IP 地址理论及应用
:IP 地址和子网掩码概念及分类、配置 IP 地址、实现路由器间互通;网络层协议及应用
:数据包格式、ARP/ICMP 协议原理;静态路由
:路由的基本原理、配置静态/默认路由、排查路由的故障问题;网络接入
:网络接入方式、配置宽带路由器及处理常见故障;WLAN 的部署与安全
:无线 AP、WLAN 基本常识;设备管理
:硬件组成、路由器的启动过程、恢复设备密码、交换机的 IOS 备份、恢复、升级方法、路由器交换机的产品体系ARP 攻击与欺骗
:防御攻击及欺骗、ARP 防火墙、攻击和欺骗报文、抓包软件;虚拟局域网 VLAN
:VLAN 原理、TRUNK 原理、配置 VLAN 和 TRUNK单臂路由和 VTP
:单臂路由的通信过程、配置单臂路由和 VTP;
计算机网络部分原创相关文章推荐阅读(点击下方文字即可跳转)
计算机常用端口号汇总
计算机网络基础知识总结
H3C交换机如何配置SNMP协议?
TCP/IP协议及三次握手、四次断开详解
推荐视频
大家可以看看哔哩哔哩
上韩老师的视频,搜索韩老师
即可找到韩老师讲高校《计算机网络原理》
。
推荐书籍
《计算机网络:自顶向下方法》
《TCP/IP详解》
2、Linux 基础系统安装及服务控制
:操作系统的安装方法、Linux 系统引导过程、控制 Linux 系统中的服务、优化 Linux 的启动任务;目录和文件管理
:常见的基本命令、查看文件内容方法、备份与恢复文档方法、VIM 文本编辑器的方法;安装及管理程序
:Linux 命令与应用程序的关系、Linux 应用程序的组成、软件包的封装类型、RPM 包管理工具(概述、格式、查看、安装、升级、卸载、维护等)、源码编译安装程序(编译安装的基本过程:解包、配置、安装、使用);账号和权限管理
:管理用户账号和组账号(用户账号、组账号、UID 和 GID 号)、用户账号/组账号管理(用户账号/组账号文件、添加 / 删除 / 修改用户账号)、查询账号、查看目录和文件的属性、设置目录和文件的权限、设置目录和文件的归属;磁盘和文件系统管理
:检查并确认新硬盘、规划硬盘分区、创建 / 挂载 / 卸载 文件系统、设置文件系统的自动挂载、查看磁盘使用情况、LVM 逻辑卷管理、LVM 管理命令、LVM 应用、设置磁盘配额(作用范围、限制对象、限制方法等)、磁盘配额管理;进程和计划任务管理
:查看和控制进程、crontab 周期性任务设置;分析和排查系统故障
:分析日志文件、排除系统启动类故障、排除文件系统类故障;Linux 基础网络设置
:查看并测试网络、设置网络地址参数;
Linux 基础部分原创相关文章推荐阅读(点击下方文字即可跳转)
Linux 环境搭建 | 手把手教你如何安装 CentOS 7 虚拟机
99% 的 Linux 运维工程师必须要掌握的命令及运用
Linux 环境下 vi/vim 编辑器常用命令
Linux 环境下安装及管理程序(软件包封装、RPM命令、源代码编译安装的基本过程)
Linux 环境下账号和权限管理
Linux 环境下磁盘和文件系统管理
Linux 环境下进程和计划任务管理
Linux 环境下分析和排查系统故障
如何在线上环境挂载 LVM 磁盘?
神奇,原来 Linux 终端下居然还有进程记帐功能…
5 种方法查看当前系统登录的用户信息
5 种方法排查 Linux 系统运行速度慢的现象
你不得不知的 top 命令技巧
详解 Linux 环境下进程管理工具 Supervisor
那些有趣却无用的 Linux 彩蛋
Linux 图形化终端下截图与快捷键实用技巧!
推荐视频
初学者:推荐老男孩的视频
Linux 有基础的读者:推荐马哥的视频
推荐书籍
《鸟哥的 Linux 私房菜》
中级运维工程师
基本服务
:DHCP(动态配置主机地址服务)、Samba(文件共享服务)FTP(文件传输服务)、DNS(域名解析服务)Web(网站服务)
:LAMP、LNMP、TomCat数据库
:MYSQL、Oracle、Redis、SQL Server、MongoDB 等;Shell 脚本
:if、for、while、case 语句、文本处理三剑客:grep、sed、awk 等;系统安全及应用
:账号安全控制、系统引导及登录控制、弱口令检测及端口扫描;远程访问及控制
:SSH 远程管理、访问控制;防火墙
:表、链结构、数据包过滤的匹配流程、编写防火墙规则、SNAT / DNAT 策略及应用、规则的导出 / 导入、防火墙脚本;YUM 仓库
:部署 YUM 软件仓库、YUM 工具管理软件包;PXE + Kickstart
:远程安装服务 + 无人值守安装;Rsync + inotify
:远程同步备份工具 + 实时同步;
相关文章推荐阅读(点击下方文字即可跳转)
Linux 之 Yum 仓库的配置及使用
Linux 环境下防毒软件 ClamAV
Linux 环境下端口扫描工具
Shell 编程-条件测试 | 基础篇
Shell 编程-控制结构 | 基础篇
Shell 编程 | 脚本参数与交互及常见问题
Shell 脚本中 '$' 符号的多种用法
Linux 基础网络设置及搭建 DHCP 服务
Linux 环境下 Samba 文件共享服务
Linux 环境下 FTP 文件传输服务
Linux 环境下 DNS 域名解析服务
详解 Linux 环境下部署 HTTPD 服务
如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点?
一文读懂 HTTPD 服务的访问控制
MySQL | MySQL 数据库系统(一)
MySQL | MySQL 数据库系统(二)- SQL语句的基本操作
MySQL | MySQL 数据库系统(三)- 数据库的用户授权
MySQL | MySQL 数据库系统(四)- 数据库的备份与恢复
架构篇 | 带你轻松玩转 LAMP 网站架构平台(一)
架构篇 | LAMP 架构应用案例 - 部署 PHPMyAdmin 系统(二)
iptables 防火墙(一)- 四表/五链、数据包匹配流程、编写 iptables 规则
iptables 防火墙(二)- SNAT / DNAT 策略及应用 |(附体系思维导图)
iptables 防火墙(三)- 规则的导出 / 导入、使用防火墙脚本程序 |(附体系思维导图)
推荐书籍
《Linux 命令行与 shell 脚本编程大全》
《高性能 MySQL》
高级运维工程师
Web 缓存代理
:Squid 代理(传统代理、透明代理、ACL 访问控制)虚拟化技术
:KVM + OpenStack集群
:LVS + Keepalived(负载均衡 + 双机热备)、Haproxy + Nginx 搭建 Web 集群;MySQL 主从复制与读写分离
运维监控软件
:Cacti、Nagios、Zabbix(主流)、Prometheus、Grafana自动化
:Ansible、SaltStack、Jenkins、Puppet容器技术
:Docker、Kubernetes日志分析系统
:ELK编程语言
:Shell、Python 等性能优化
:是最大化提升服务承载量,也是比较难的,可从硬件层、操作系统层、软件层和架构层维度展开思考进行优化(这里我推荐极客时间的《Linux性能优化实战》专栏,后台回复:性能优化)除此之外,还有一些其他的专栏和视频,有需要的读者可以加我微信或者扫描文末的二维码即可;
相关文章推荐阅读(点击下方文字即可跳转)
Linux 环境下虚拟化之 KVM 常用命令
Saltstack 系列 | Saltstack 集中化管理平台安装(一)
Saltstack 系列 | 利用 Saltstack 远程执行命令(二)
Saltstack 系列 | 修改 salt-minion 的 ID 后报错解决方法(三)
Saltstack 系列 | 跟我学 Saltstack 常用模块及 API(四)
Saltstack 系列 | 如何在 Saltstack 组件下收集被控主机的信息?(五)
Saltstack 系列 | 如何通过 Saltstack pillar组件定义与被控主机相关的任何数据?(六)
推荐书籍
《Python Linux 系统管理与自动化运维》
《Python 编程从入门到实践》
《Docker 技术入门与实战》
《Kubernetes 进阶实战》
资深方向
如果你想要往更高技术领域发展的话,同时也会有更多的选择。具体如下:
运维开发方向:主要是 Python 运维开发;
自动化运维方向:主要是在原来的自动化运维领域进行深入研究;
云计算方向:主要是针对现在比较流行的容器技术:Docker、Kubernetes 以及虚拟化技术等;
架构师方向:架构师的话,需要覆盖的技术领域就比较广了,而且需要的工作经验在 5 年工作以上;
大数据方向:主要针对开源大数据系统需要有深入的研究;
总结
通过上述四个阶段大致介绍了一些运维方向及各阶段所需要具备的知识点,同时也大家能够明确自己今后职业规划发展方向的定位。学习是一个很漫长的过程,贵在坚持!不断输入自己的同时也希望大家多多能够进行输出,要学会分享,让更多的人知道。我们每个人都应当有自己的目标,朝着目标方向去发展,相信自己,你一定能行。
简介
洪地基,基哥,在互联网圈混迹15年,目前专注运维架构学习,DevOps的落地实践。欢迎添加我的微信号(hongdiji)一起学习交流。
长按扫码关注
一个点亮在看,小编会开心一整天...