对于一个不了解运维究竟是做什么的同学,可能或多或少的有听过相关话题的讨论和经过一番搜索所知有了短浅的认识。原来运维就是每天很苦逼的在机房工作,甚至可能干着一些搬服务器、上架服务器、整理网线、打标签、调试网络设备等一系列环节。
这么一听,肯定显得地位很低端,没有将自己大学所学专业应用到实际工作中,不仅技术没得到任何提升,工作也慢慢变的枯燥乏味,对自己今后跳槽也会受到影响,因此对这个行业感到迷茫,觉得没任何发展前途,很难发挥自己的价值。
在实际工作中 Linux 系统目前主要应用在企业服务器端,学习 Linux,是每一位程序员必备的技能,不管你是前端、后端、大数据、测试、算法等领域,Linux 是至关重要的。对于一名初学者来讲,前期可以先在 Windows 环境下安装个 Linux 虚拟机或者通过在线 Linux 环境并在这基础上进行实践。
学习 Linux 而更多的是向系统层面、运维工程师方向发展,其岗位主要包括:云计算系统工程师、大数据运维工程师、运维开发工程师、数据库运维工程师等等,其职位都是 Linux 运维工程师的进阶。那么作为一名运维工程师,怎么学习 Linux,以及 Linux 入门和学习的路线。
那么究竟这一话题,逐步展开来写一写关于 Linux 运维领域的学习路线,当然了,这也是我个人针对运维领域所需要接触的相关知识点,仅供大家参考,同时也欢迎大家补充。
互联网时代,人人都离不开网络。作为一名程序员来说,最起码不需要你过多的对网络有深入的研究,对于一些最基本的网络知识是必须要有的。那么在找运维岗位的时候,网络部分也是必不可少的,这里我也简单梳理了一下,具体部分如下:
计算机网络基础
:基本概念、网络功能和分类、网络发展史、网络协议和标准的区别、网络常见设备及其功能、网络拓扑结构、常用的数值转换方法;网络参考模型
: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;大家可以看看哔哩哔哩
上韩老师的视频,搜索韩老师
即可找到韩老师讲高校《计算机网络原理》
。
《计算机网络:自顶向下方法》
《TCP/IP详解》
系统安装及服务控制
:操作系统的安装方法、Linux 系统引导过程、控制 Linux 系统中的服务、优化 Linux 的启动任务;目录和文件管理
:常见的基本命令、查看文件内容方法、备份与恢复文档方法、VIM 文本编辑器的方法;安装及管理程序
:Linux 命令与应用程序的关系、Linux 应用程序的组成、软件包的封装类型、RPM 包管理工具(概述、格式、查看、安装、升级、卸载、维护等)、源码编译安装程序(编译安装的基本过程:解包、配置、安装、使用);账号和权限管理
:管理用户账号和组账号(用户账号、组账号、UID 和 GID 号)、用户账号/组账号管理(用户账号/组账号文件、添加 / 删除 / 修改用户账号)、查询账号、查看目录和文件的属性、设置目录和文件的权限、设置目录和文件的归属;磁盘和文件系统管理
:检查并确认新硬盘、规划硬盘分区、创建 / 挂载 / 卸载 文件系统、设置文件系统的自动挂载、查看磁盘使用情况、LVM 逻辑卷管理、LVM 管理命令、LVM 应用、设置磁盘配额(作用范围、限制对象、限制方法等)、磁盘配额管理;进程和计划任务管理
:查看和控制进程、crontab 周期性任务设置;分析和排查系统故障
:分析日志文件、排除系统启动类故障、排除文件系统类故障;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 命令行与 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性能优化实战》专栏)《Python Linux 系统管理与自动化运维》 《Python 编程从入门到实践》 《Docker 技术入门与实战》 《Kubernetes 进阶实战》
如果你想要往更高技术领域发展的话,同时也会有更多的选择。具体如下:
通过上述四个阶段大致介绍了一些运维方向及各阶段所需要具备的知识点,同时也大家能够明确自己今后职业规划发展方向的定位。学习是一个很漫长的过程,贵在坚持!不断输入自己的同时也希望大家多多能够进行输出,要学会分享,让更多的人知道。我们每个人都应当有自己的目标,朝着目标方向去发展,相信自己,你一定能行。