版本号 | 更新时间 | 备注 |
---|---|---|
V1.0 | 2019-1-20 | 首次发布 |
V1.0.1 | 2019-4-26 | 增加了相关的知识点 |
V2.0 | 2019-05-13 | 增加知识点,进一步完善 |
V3.0 | 2021-04-20 | 补充整个知识体系 |
Linux 运维工程师进阶升级之路由公众号【民工哥技术之路】作者【民工哥】编写、整理发布而成,我的故事: 民工哥的十年故事:杭漂十年,今撤霸都!。回头看看,写公众号也有快六年的时间了,做一件事很容易,但坚持做一件事情六年应该不是件容易的事。一路走来,收获了众多读者的肯定与支持,同时在自己的知识体系建立、建全上也取得了不小的成就。在这期间,我写的书:Linux系统运维指南 出版(2020年4月),同年10月,我拿到了2020年人民邮电出版社/异步社区《最具影响力作者》。除了感谢这个伟大的时代、家人、朋友,还要感谢无数支持我的读者们,谢谢你们。
其实,很多熟悉我的老读者都知道,我也算是 0 基础起步自学至今的,所以,对于自学,我也总结了一些方法,或者说分享一下我的经验:民工哥自学方法。对于需了解整个运维知识体系学的过程可以参考:运维工程师进阶升级之路思维导图。
现目前整个系列文章统一入口也在公众号上,后期更多增加、完善进去的内容也会统一同步发布到公众号中,欢迎大家关注(可扫文末二维码加关注哦)!!
运维工程师这个岗位不同于后端开发岗位,到底运维工程师平时做什么?老司机告诉你:正规的运维工作是什么的?。而且这个岗位对技能要求是越来越高,不仅仅要求需要知识的深度,还要求要有一定的广度,深度就是需要不断学习运维知识体系的知识,广度就是运维岗位上下游(测试与开发)岗位的一些知识体系,至少是需要做到了解基础的掌握程度。
因此,这就对运维工程师们提出了更高的要求,首先得有一颗不断学习的心,其次坚持的毅力是必须的,然后就是不断和实践、操作与总结,重复再重复, 时间久了才能形成自己的一套知识体系。
正因为这些原因,才有了上面的《运维工程师打怪升级进阶成神之路》的出现,初衷很简单,就是将我的所学与所总结的学习路线分享给大家,希望对后面的爱好者、学习 Linux 运维的朋友们有所帮助、有所借鉴。以便你们更好的学习与掌握其中的知识点,然后也能更轻松的运用到企业的实际工作中去。
这是每一个IT从业者必备的基础中的基础,比如:TCP/IP协议、路由基础这些必备的 6 大计算机网络基础知识点!是一定要熟悉与掌握的,否则无法展开后面的系统学习的。下面一张比较全的计算网络基础的学习思维导图:
如果你是有此方面基础的可不必学习了,如果是没有网络基础的,建议你去看一看我公众号上很早之前写过的一些关于网络方面的文章,这样也可以很快的熟悉这方面的知识点。
首先就是系统的安装与基础配置:Centos7安装教程,有需求的可以参考这个教程,安装其实是非常简单的。
对于系统目录、文件系统、权限等内容。前面的版本也介绍的非常清楚,这里不再一一赘述。也可以参考这里:Linux 系统基础入门知识点
这一块的知识点,在入门阶段是非常重要的一块,掌握的好坏直接影响到后面的具体操作与学习,而且,这里列举的这些常用管理命令,也是我们日常工作中要用到的(属于重点掌握内容之一)。
这部分详细介绍系统运维常用命令及其参数说明,并且配有应用案例详解,基础必备!
这部分介绍Shell脚本编程的基础入门与进阶知识,包括编写方法分享、案例分享。虽然说现在Python在运维工作中已经使用很普遍,但是很多企业实际工作中的时候还是会用到 shell 脚本,它有助于你在工作环境中自动完成很多任务。在减少重复工作量的同时,也会提高不少工作效率!因此,Shell脚本编程也是运维工程师必备的工作技能之一!
更多详细内容可以查阅专栏:Shell 脚本编程
基础的服务安装、配置文件介绍、虚拟主机配置实践、Nginx优化配置详解、LNMP架构Nginx反向代理负载均衡配置、Nginx+Tomcat多实例及负载均衡配置、高可用、Nginx 版本的平滑升级与回滚、Nginx限流配置、Nginx日志生产实战、Nginx配置文件在线生成工具介绍等。
详细内容可以查阅专栏:Nginx 学习专栏
无论你是开发、运维,还是测试,数据库是必备的技能之一。在正式学习相关具体的数据库服务之前,我们还需要了解一下一些基础知识:可以查看:数据库基础知识专栏)。
整个知识体系包括以下几个部分。MySQL 数据库的基础知识,如:数据类型、存储引擎、性能优化(软、硬及sql语句),MySQL 数据库的高可用架构的部分,如:主从同步、读写分离的原理与实践、跨城容灾、数据的备份与恢复等,然后介绍了 MySQL 的管理命令、数据库语言的命令、库与表的管理工具、性能分析与工具的使用、MySQL 数据库服务器的硬件选型、性能监控、开发设计规范等知识。
死磕数据库系列(七):MySQL 性能优化(硬件/系统配置/表结构/SQL语句)
死磕数据库系列(十一):MySQL 日志文件解析(类型、作用)
死磕数据库系列(十二):MySQL 分库分表(何时分?怎么分?)
死磕数据库系列(十四):MySQL 锁机制详解(表级锁、页级锁、行级锁)
死磕数据库系列(十五):MySQL 存储过程、自定义函数、事务、流程控制的语法、创建和使用
死磕数据库系列(十九):MySQL 视图、触发器的原理与实战
死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)
死磕数据库系列(二十一):MySQL 多版本并发控制 MVCC 原理及实现
死磕数据库系列(二十二):MySQL 数据库机房架构与跨城容灾
死磕数据库系列(二十四):MySQL 级联复制与双主双从配置实战
死磕数据库系列(二十五):MySQL 高可用之组复制(MGR)详解
死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践
死磕数据库系列(二十八):MySQL InnoDB Cluster 多节点高可用部署实战
死磕数据库系列(二十九):MySQL Router 实现数据库读写分离配置实践
死磕数据库系列(三十):MySQL 针对 Swap 分区的运维管理
死磕数据库系列(三十一):MySQL 服务器 CPU、磁盘、内存等硬件选型
死磕数据库系列(三十二):MySQL 数据库、数据表管理工具介绍
死磕数据库系列(三十三):MySQL 性能分析与相关工具的使用
死磕数据库系列(三十四):MySQL 性能测试工具 sysbench 详解
死磕数据库系列(三十六):MySQL 开发设计规范、SQL 编写规范及安全规范
PostgreSQL 是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix和Windows。
进阶数据库系列(二):PostgreSQL 目录结构与配置文件 postgresql.conf 详解
进阶数据库系列(四):PostgreSQL 访问控制与认证管理
进阶数据库系列(六):PostgreSQL 数据类型与运算符
进阶数据库系列(十四):PostgreSQL 事务与并发控制
进阶数据库系列(十五):PostgreSQL 主从同步原理与实践
进阶数据库系列(十六):PostgreSQL 数据库高可用方案
进阶数据库系列(十七):PostgreSQL 基于 Patroni 高可用架构部署及故障切换
进阶数据库系列(十八):PostgreSQL 基于 repmgr 高可用架构实践
进阶数据库系列(十九):PostgreSQL 基于 Pgpool 实现读写分离
进阶数据库系列(二十):PostgreSQL 数据库备份与恢复
进阶数据库系列(二十一):PostgreSQL 数据目录同步工具 pg_rewind
进阶数据库系列(二十二):PostgreSQL 数据库作业调度工具 pgAgent
进阶数据库系列(二十四):PostgreSQL 数据库日志与日常巡检
进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理
进阶数据库系列(二十六):PostgreSQL 数据库监控管理
Nosql 数据库是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。专注于key-value查询的redis、memcached、ttserver。
我们这里会重点介绍:Redis、MongoDB、ElasticSearch。
Redis 是一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型,如:String、list、set、zset、hash。
详细内容可查阅专栏:
MongoDB 是面向文档的 NoSQL 数据库,用于大量数据存储。MongoDB 是一个在 2000 年代中期问世的数据库。属于 NoSQL 数据库的类别。
详细内容可查阅专栏:
ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎;它是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合。
详细内容可查阅专栏:
Tomcat 隶属于 Apache 基金会,是开源的轻量级 Web 应用服务器,使用非常广泛。客户端用户点击浏览器服务连接,浏览器通过客户端底层服务通过路由传送报文,目标服务器获取解析报文,Tomcat监听程序触发处理请求。
Tomcat 相关知识点在面试中出现的几率并不高,所以,很多人忽略了对 Tomcat 相关技能的掌握,其实它也是非常重要的知识点之一。详细内容可查阅专栏:Tomcat web 技术实践。
一个中小企业生产环境项目实践(将之前的知识连贯运用的实践):
- Linux 系统集群架构线上项目配置实战(一)
- Linux 系统集群架构线上项目配置实战(二)
- Linux 系统集群架构线上项目配置实战(三)
- Linux 系统集群架构线上项目配置实战(四)
- Linux 系统集群架构线上项目配置实战(五)
介绍常用中间件服务(Kafka\Rabbitmq\Zookeeper等)相关的日常运维所需知识体系。
Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目,该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
关于消息中间件 Kafka 系列的学习文章,请参阅:
RabbitMQ是由erlang语言开发,基于AMQP协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。
RabbitMQ 是一个消息中间件:它接受并转发消息。更多关于消息中间件 RabbitMQ 系列的学习文章,请参阅:
zooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
更多关于 Zookeeper 系列的学习文章,请参阅:
介绍 docker入门、安装、常用的命令、三剑客、私有仓库搭建以及容器监控等方面的总结。
详细内容可查阅专栏:Docker
介绍 Kubernetes 技术实践知识体系。从原理、部署开始,逐步深入去学各个知识点,比如:Pod 的实现原理、YAML语法、Kubectl使用指南、资源控制、数据存储、Harbor仓库、资源清单、服务发现、Ingress 服务、集群调度、集群管理工具、面试题、生产实践等。
详细内容可查阅专栏:k8s 技术实践
大数据(big data),指的是在一定时间范围内不能以常规软件工具处理(存储和计算)的大而复杂的数据集。说白了大数据就是使用单台计算机没法在规定时间内处理完,或者压根就没法处理的数据集。
大量 (Volume)
:大数据的“大”首先体现在数据量上。在实际应用中,大数据的数据量通常高达数十 TB,甚至数百 PB。高速 (Velocity)
:大数据的“高速”指高速接收乃至处理数据 — 数据通常直接流入内存而非写入磁盘。多样化 (Variety)
:多样化是指数据类型众多。
Hadoop 是用于处理大数据的工具之一。Hadoop 和其他软件产品通过特定的专有算法和方法来解释或解析大数据搜索的结果。
在大数据处理上,Hadoop并非是唯一的分布式处理架构,但是对于大部分的企业来说,基于Hadoop已经能够满足绝大部分的数据需求,因此才会成为现在的主流选择。
分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS/ceph/MinIO 。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景/问题时,具有借鉴意义。
详细内容可查阅专栏:分布式存储技术实践
作为目前世界上最先进的分布式版本控制系统(没有之一),Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。随着时间的推移,Git 发展到今天,已经成为了众多开发者必备的开发工具。
详细内容可查阅专栏:Git 技术
介绍日志平台相关的日常运维所需知识体系,日志管理也是日常工作中非常重要的一项内容。比较主流的是ELK stack和Graylog。ELK目前很多公司都在使用,是一种很不错的分布式日志解决方案。详细内容可查阅专栏:日志平台。
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。企业生产环境监控系统介绍,包括但不限于各类工具(Zabbix、Prometheus 等)安装、配置、优化与实践经验总以及排错等,详细的监控工具使用可查阅专栏:监控系统。
更多关于企业级监控平台的建设与运维管理,可以参阅专栏:
介绍企业自动化体系建设(DevOps)相关的日常运维所需知识学习。比如:Jenkins、CI/CD等。
介绍常用工具(命令工具、其它工具)相关的日常运维所需知识体系。
介绍企业面试经验、各类面试题详解等(面试题与面试经验总结分享),下面给大家列举了一些常见的面试题,更多关于企业面试题相关的知识学习,可以参考专栏:企业面试题集合。
学完这些内容这后,可以这么说,还是仅仅是开始,更多的还是要将所学的知识结合实际的生产环境,然后通过不断的实践去总结,慢慢的一点点去补充自己的整个知识体系的高墙,从而使之更坚固、更持久、更强大。