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