东至县住房和城乡建设网站太原 招聘 网站建设 技术经理
前言:作为一个过来人,我曾站在技术的门槛之外,连电脑运行内存和内存空间都傻傻分不清,完完全全的零基础。但如今,我已成长为一名资深的k8s云计算运维工程师。回顾这段历程,我深知踏上这条技术之路的艰辛与不易,也明白方向和方法的重要性。
想要在这个领域入行并拥有出类拔萃的技术,扎实的基础、对高级架构的理解,以及丰富的实战经验缺一不可。需要沿着基础、高级架构、实战进阶这三大板块所细分出的技术点,一步一个脚印地学习。初次看到这么多技术要点,心生畏惧是再正常不过的反应,我自己刚开始时也被唬住了。
好几年前,我独自一人奔赴北京,决心为梦想拼搏。为了专注学习技术,我戒掉了心爱的游戏。工作日里,我沉浸在技术的海洋中努力汲取知识;周末本应是休息放松的时光,我却选择泡在教室里,认真复习巩固一周所学,就这样日积月累,才打下了坚实的基础。
在接触这些技术之前,会觉得它们高不可攀,仿佛攀登陡峭的山峰,困难重重。但当你真正深入其中,随着知识和经验的积累,就会惊喜地发现,许多操作早已得心应手,无需刻意思索就能完成,这便是“知行合一”的境界。
这篇博客,是我为大家精心准备的入行技术线路图,希望能为你们指引方向。如果想更高效地掌握这些技术,我强烈建议像我当年一样,进行系统的学习。如今网络上的学习资料铺天盖地,看似丰富,实则零散。面对海量信息,你很难分辨哪些是重点,哪些内容需要深入钻研,这不仅会耗费大量时间,还可能因错误的引导而走弯路。
如果你渴望像我一样系统学习,少走弯路,欢迎随时联系我,或者也可以联系我的师姐,我们非常乐意帮助大家开启这段充满挑战与机遇的技术之旅。
基础课程
阶段一:系统管理基础篇
一、 行业介绍和计算机基础
- 中大规模互联网业务系统的典型组件与典型架构(硬件体系(数据中心:服务器、网络设备、存储设备)和软件体系(业务系统、中台系统和支撑系统)简介)
 - IT部门岗位分类(研发、测试和运维)及职责介绍,以及泛运维领域岗位职责分类
 - 一个互联网业务系统的运维能力发展典型阶段:人工运维、脚本和工具化运维、平台化运维、自运维系统
 - 数据中心:网络和网络设备、服务器设备、存储设备、供配电系统
 - 硬件系统:服务器和网络设备简介
 - 软件系统:系统软件和应用软件,操作系统和Linux
a.Ubuntu 2204–>Ubuntu 2404
b.国产化Linux(选一):麒麟、统信UOS、深度、OpenEular - 主机虚拟化程序和Linux系统安装
 - 云主机的基本使用(可基于私有云桌面版Ubuntu系统镜像):创建、启动和接入到终端等
 
二、Linux系统基础及常用命令
- Linux用户账号基础;
 - Linux系统访问接入:桌面和命令行简单介绍,以目录和文件管理为例对比演示说明:
a.在桌面环境(GNome或KDE)演示如何创建、移动、删除文件和目录
b.在命令行环境演示相关的功能,并对比演示命令执行结果 - 终端:
a.终端类型及当前系统终端
b.交互式接口及shell基础
c.shell内部外部和外部命令
d.命令别名 - 常见的系统命令,以及shell的常用特性:
 - 命令的使用帮助:善用帮助信息、搜案引擎和ChatGPT:
 
三、文件管理命令和IO重定向
- Linux的文件系统层级结构标准(FHS)及路径遍历
 - Linux系统上的文件类型及标识方式
 - 文件时间戳atime、ctime、mtime
 - glob通配符*、?及常用字符集合表示等特殊符号
 - 目录管理类命令:mkdir、rmdir、tree
 - 文件管理工具:cp,mv,rm及单源复制和多源复制
 - 链接文件的创建In[-s]及符号链接与硬链接区别
 - I/O重定向之输入重定向、输出重定向、错误输出重定向
 - tr命令、tee命令及特殊文件文件/dev/null和/dev/zerO
 - 多命令执行管道概念
 
四、用户管理、权限管理和文本处理工具基础
- Linux的用户、组、权限基础,进程安全上下文及用户和权限管理模型
 - 用户和组的配置文件/etc/{passwd,shadow,group,gshadow} 文件字段说明
 - 敏感文件操作命令 vipw、vigr、pwck、grpck和getent简介
 - 用户和组管理命令:
a.useradd,usermod、userdel、passwd,chage
b.grouadd、groupmod、groupdel
c.id、su - 文件权限管理 rwx权限体系介绍,文件属主属组操作命令chown和chgrp,以及权限修改命令chmod
 - umask 和默认权限
 - suid、sgid、stid 特殊权限,chattr、lsattr特殊属性
 - 访问控制列表ACL setfacl、getfacl命令
 - vim编辑器基础应用、可视化模式、文件查找、多窗口模式
 - 文件常用命令cat、more、less、head、tail等命令
 - 文本查看及处理工具wc、cut、sort、uniq、diff和patch等命令
 
五、正则表达式、文件查找和压缩
- 基本正则表达式及扩展正则表达式
 - 文本搜索工具:grep,egrep,fgrep
 - 文件查找非实时查找locate命令简介
 - 文件实时查找find命令
a.查找条件:-name、-iname、-regex、-user、-group、-type、-size、-perm
b.处理动作:-print、-ls、-delete、-fls、-ok、-exe - xargs命令及find组合
 - 文件压缩工具qzip、xz、zip、tar及各自的解压缩的使用
 - 流编辑器sed工作原理:模式空间、保持空间讲解
 - sed命令常用选项-n、-e、-f、-r、-i讲解与示例演示
 - sed命令地址定界:空地址、单地址、地址范围、步进表示法
 - sed命令常用的编辑命令d、p、a、i、c、w、r、=、!、s///讲解与示例分析
 
六、shell编程基础
- bash脚本规范及执行方式
 - 本地变量、环境变量、局部变量、位置参数变量
 - 逻辑组合与或非
 - 配置文件profile类、bashrc类、以及logout类文件详解
 - 算术运算let VAR=算术表达式、VAR= [ 算术表达式 ] 、 V A R = [算术表达式]、VAR= [算术表达式]、VAR=((算术表达式))、VAR=$(expr $ARG1 $OP $ARG2)
 - 算术运算
 - 状态返回值$?及参数传递$1、$2、$3…
 - 用户交互及read命令等
 - 条件判断三种方式:test EXPRESSION[EXPRESSION]
 - 测试类型:数值测试、字符串测试、文件测试、命令返回状态,以及组合条件(与、或、非)
 - 选择执行之if语句:单分支,多分支及示例
 - 选择执行之case语句
 
七、软件管理
- Linux程序包管理器基础及程序包的组成
 - rpm包管理器常用命令rpm命令的安装-i、升级-U、卸载-e、查询-q、校验-V等
 - rpm管理的前端工具yum介绍
 - 常见的yum仓库配置与使用
 - yum/dnf命令的用法安装install、升级update、卸载remove、缓存构建makecache、包组管理groupin-stall、groupupdate grouplist、groupremove 、groupinfo
 - 自建yum仓库,介绍createrepo工具的使用
 - ubuntu的dpkg包管理器管理deb包
 - deb包的管理工具apt/agt-get使用
 - deb仓库配置及加速
 - 程序包源码编译安装三步走:./configure、make、make install
 - 源码安装后的配置;环境变量等
 
八、 磁盘存储和文件系统
- linux磁盘管理之硬盘结构及分区基础
 - 磁盘分区管理命令fdisk,gdisk,parted的使用
 - 文件系统组织原理和常见的虚拟文件系统ext系列、xfs、iso9660、nfs、vfat、swap
 - 文件系统创建mkfs与管理工具fsck、blkid等
 - 挂载mount及挂载选项和umount、fuser、lsof命令的使用
 - swap分区的创建mkswap,启用swapon和禁用swapoff
 - 开机挂载及/etc/fstab文件及du、df命令
 - 常用级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD与相关概念详解
 - LVM2工作原理及相关概念详解
 - LVM2软件创建管理工具,以及卷的扩展与缩减
 
阶段二:系统管理进阶篇
一、网络协议和网络通信
- 计算机网络通信及OSl七层模型概述
 - OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
 - 网络设备概念MAC、网桥,交换机工作原理的讲解
 - 网络层:IP网络、子网、超网及报文路由
 - 透辑地址IPV4和IPV6,网络地址、子网及其功能
 - 路由设备及相关的路由协议简介
 - 路由分类:网络路由、主机路由、默认路由详解
 - VLAN及其工作机制简介
 - TCP/IP协议栈介绍和分层
 - 传输层:TCP协议进程通信原理及TCP的有限状态机及其特性
 - 进程通信方式:IPC及Socket介绍
 - IANA端口分配标准(特权端口:0-1023、注册端口:1024-49151动态端口:49152)
 - 应用层协议简介,介绍常用的http/https等
 - IP层、IP协议结构和分类
 - 网络地址规划和网络划分
 
二、Linux网络属性配置及相关工具的应用
- Linux网络配置文件子网掩码、网关、等参数详解
 - 网络管理相关命令ifconfiq、route、netstat命令讲解
 - iproute家族ip link、ip address、ip route、ss命令
 - nmtui及nmcli命令详解
 - bondinq和team技术
 - 网桥bridge实现
 - 常见的网络客户端工具ping,mtr,traceroute,tcpdump等
 - Ubuntu系统网络配置专用工具netplan用法介绍
 - Ubuntu实现bonding和网桥功能
 
三、shell编程进阶
- 循环执行之for语句详解与示例
 - 循环执行之until语句和while语句
 - bash脚本编程之break、continue、跳出循环实例
 - bash编程之while循环及for循环特殊用法示例
 - function及函数的生命周期详解
 - 函数的递归与返回return、传参
 - 数组定义、声明及引用方式的讲解
 - 非稀疏数组及关联数组相关概念及基础讲解
 - 字符串切片${var;offset:number}:基于模式取子串、查找替换、详解
 - 信号的相关基础列出trap -l、kill -l、man 7 signal
 - (选讲)信号的捕捉及应用:HUP、INT
 
四、进程管理和计划任务
- Linux进程和线程:父进程fork自身产生子进程
 - Linux内存和进程结构
 - 同一主机进程通信方式和不同主机通信方式
 - 进程的类型:守护进程和前台进程与状态:running、ready、sleeping、zombie、stopped及分类
 - Linux进程管理工具ps、uptime、top、htop、vmstat、lsof等命令
 - Linux作业控制jobs、fg、bg、kill及进程优先级nice值调整
 - Linux任务计划at命令和周期性任务执行crontab命令详解
 
五、Linux启动流程、配置内核参数和AWK
- Linux操作系统的组成部件:
a.静态Linux操作系统的组成部分:内核+根文件系统
b.运行中的llnux系统环境介绍:内核空间+用户空间 - 内核的设计流派及linux内核的特点:模块化、支持动态装卸载
 - Linux系统初始化基本流程,以及传统系统运行模型下的7种启动级别简介
 - grub2启动引导程序配置及命令行接口、单用户模式及救援模式修复grub2
 - 内核模块管理相关的命令lsmod、modprobe和insmode简要说明
 - 常见的内核参数讲解
 - 伪文件系统目录/proc和/syS
 - Systemd及其功用、Unit常见类型、系统服务管理命令systemctl
 - systemd运行级别管理:target unit格式、常用参数及编写要
 - systemctl命令的常见用法:级别查看、切换、关机重启
 - 文本格式化工具awk工作原理
 - awk命令用法示例讲解
 - awk内建变量F5、OFS、RS、ORS、NF、NR、FILENAME使用示例讲解
 - awk处理动作打印print与格式化打印printf命令详解
 - awk进阶之数组和函数示例及讲解
 
六、 域名解析和DNS服务
- 应用层协议DNS起源与发展
 - DNS服务选代与递归查询原理
 - DNS区域数据库文件资源记录A、AAAA、PTR、SOA、NS、CNAME和MX详解
 - 主从DNS股务器工作机制
 - bind程序的安装于使用
 - DNS正向区域、反向区域与缓存dns的配置演示
 - rndc、dig、host、nslookup工具使用
 - bind的从DNS服务器的配置子域授权
 - bind中的基础安全相关的配置
 - CDN工作原理
 - httpDNS简介
 - 在公有云中配置DNS解析
 
七、通信安全和时间同步
- 网络通信中安全机制和各种攻击方式介绍
 - 对称加密、非对称加密算法及单向哈希算法介绍
 - PKI体系介绍,以及基于0penSSL等创建私有CA实现数字证书颁发
 - https通信流程详解
 - ssh协议介绍,0pensSH服务安装、配置和优化
 - sudo体系及实现权限委派案例
 
八、NFS、Rsync服务和rsyslog日志
- NFS协议及工作机制
 - NFS服务配置及应用
 - 利用Rsync和Inotify同步数据
 - 利用sersync实现实时数据同步
 - rsyslog及服务器配置
 - 日志转储

 
阶段三:HTTP与高性能Web应用
一、HTTP协议工作模型和httpd基础配置和应用
- 基于Web的服务架构介绍,以及常见的企业Web架构案例
 - 常见的网络I/O模型及同步/异步消息通知机制讲解,以及多路I/0复用select、pol和epoll对比说明
 - HTT协议基础、HTTP事务的处理流程,及超文本标记语言简介
 - Web服务中动态资源和静态资源,URL统一资源定位符标识资源的方式及资源间的reference
 - Request报文语法格式与Response报文语法格式
 - Request报文之请求方法GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS
 - Response状态响应吗1xx、2xx、3xx、4xx、5xx及常见得状态响应码
 - HTTP协议中的Cookie和Session
 - Apache httpd应用安装和配置说明
 - 配置和使用虚拟主机
 - 配置和使用https虚拟主机
 - 通用网关CGI标准、php编程语言、Zend Engine解释器、加速器相关概念介绍
 - 配置LAMP动态Web环境,并部署Wordpress示例

 
二、Nginx基础
- Nginx程序架构及工作机制
 - Nginx安装、配置文件语法格式及基本应用,以及平滑升级和回滚
 - Nginx全局配置段及关键配置参数
 - http块配置、Location、虚拟主机配置及应用,以及https虚拟主机
 - 基于域名的企业PC站点与移动站点
 - rewrite模块功能、配置参数及配置案例
 - Nginx防盗链及跨域资源调用(Cors)
 - 压力测试工具ab、及curl、elink、htpasswd命令
 
三、Nginx反向代理(http和fastcgi)和优化
- Web反向代理及其工作机制
 - 七层代理ngx_http_proxy_module模块、缓存服务及配置案例(Nginx–>httpd–>php module(word-press)–>MySOL)
 - 负载均衡机制(四层和七层)及其应用场景介绍
 - Nginx七层调度模块ngx_http_upstream module工作机制、调度算法及使用案例
 - nginx模块应用之ngx_http_headers_module
 - Nginx四层代理和调度模块ngx_stream_upstream工作机制及使用案例
 - LNMP:FastCGl协议、ngx_http_fastcgi_module模块工作机制及使用案例(Nginx–>php_fpm(word-press)–>MySQL)
 - Nginx的二开版OpenResty和Tengine简介
 
四、Java、JSP、Tomcat及应用运行案例
- lava编程语言及技术体系结构规范概述
 - Java 2SE (JDK)及企业级类库jsp、servlet简介
 - Web Container的开源实现Tomcat历史介绍
 - Tomcat的顶级组件、服务组件、连接器组件、容器类、被嵌套类组件、集群类组件等核心组件介绍
 - Tomcat的JDK环境安装及tomcat的安装部署:OpenJDK+Tomcat、OracleJDK+Tomcat
 - JSP WebAPP组织结构及webapp归档
 - manager及host-manager的配置及应用
 - Tomcat的配置定制:连接器、虚拟主机、Context及访问日志等
 - JSP Web应用程序的部署示例(JPress)及部署webapp的相关操作
 - 基于Nginx进行负载调度及动静资源分离分发方式
 
五、Tomcat集群和JVM
- Maven工程工具简介、安装配置及示例应用构建,并推送制品到Nexus中
 - 会话管理:session sticky、session cluster、session server
 - Tomcat 会话复制集群的配置解析及部署验证
 - Tomcat会话保持与会话服务器(msm)配置示例详解
 - JVM运行时内存区域、堆内存分段机制、常用的垃圾收集算法及垃圾收集器
 - 新生代及老代年的垃圾收集器搭配机制
 - JVM常用的优化思路及配置参数和常用的监控工具用法介绍
 - Tomcat自身常用的优化要点
 
阶段四:运维工具篇
一、Linux防火墙和iptables
- 防火墙功能及特性概述
 - iptables和netfilter特性及工作逻辑介绍
 - iptables四表(filter、mangle、nat、raw)五链(prerouting、input、forward、output 、postrouting)详解
 - iptables命令链管理、规则管理、规则查看基本用法
 - iptables基本匹配、扩展匹配、隐式扩展、显式扩展
 - iptables扩展模块应用:多端口匹配、连接追踪、报文状态匹配等企业级应用
 - iptables规则保存、重载、生效机制及安全体系工具
 - iptables之forward转发
 - iptables之SNAT、DNAT及端口地址转换
 - 新一代防火墙技术nft简介
 
二、Ansible和应用编排
- 自动化运维技术框架系统安装、程序发布、应用布局宏观介绍
 - Ansible工具特性及工作机制详解
 - Ansible多方式安装及简单应用
 - Ansible常用模块command、shell、copy、cron、fetch、file、service、user、setup等模块详解
 
三、Ansible应用进阶
- YAML语言介绍与语法
 - Ansible Playbook(剧本)核心元素Hosts、Tasks、Variables、Templaters、Handlers、Roles详解
 - Ansible Playbooks基础组件实际应用实例讲解
 - Ansible 创建角色roles实现代码重用详解
 - Role内各目录中可用的文件定义及角色调用实现
 - 案例:编写Role,自动编排部署Nginx、Tomcat、MySOL和JPress
 
四、OpenVPN和Jumpserver
- VPN基础及常见的实现方式
 - OpenVPN基础及远程服务器管理中的应用
 - OpenVPN服务构建
 - OpenVPN客户端
 - JumpServer 关键功能与特性
 - JumpServer安装、配置,以及资源管理、用户管理、账号管理和权限管理等快速入门

 
阶段五:关系型数据库
一、MySQL基础
- 数据库概念和类型:SQL和NoSOL
 - 关系型数据库管理系统介绍
 - 关系型数据库的关系运算和设计范式
 - 关系型数据库表、索引、视图及三层模型讲解
 - MySQL安装与安全配置
 - MySQL的客户端程序mysql、mysqladmin工具介绍
 - MySQL数据类型:字符型、数值型、日期时间型简介
 - MySQL服务端和客户端命令使用
 - SQL语句之DDL、DML语句用法详解
 - 表的创建、修改、删除及表的状态信息查看
 - 视图,函数,存储过程和事件管理
 - 用户和权限管理
 - MySQL的图形化的远程管理工具Navicat和SQLyog
 
二、MySQL性能优化和日志管理
- MySQL速辑架构
 - MySQL存储引擎之InnoDB、MyISAM引整详解
 - MySQL服务器全局变量,会话变量,及状态变量详解
 - 常见的索引:聚集索引、主键索引、稀疏索引、B树索引的介绍
 - 索引的管理:查看、创建、及删除
 - MySQL基于读/写锁实现并发访问控制
 - MySQL事务之ACID测试、及事务的隔离级别READ UNCOMMITTED、READ COMMITTED、REPEATABLE
READ、SERIALIZABLE详解 - 事务日志相关命令及变量详解
 - 慢查询日志相关变量及优化查询
 - 错误日志分析
 
三、MySQL备份还原和主从复制
- 二进制日志相关的变量设定及查看
 - mysqlbinlog命令的用法
 - 常见的数据库备份类型:完全备份、增量备份、差异备份热备份、温备份、冷备份物理备份、逻辑备份
 - 常用的备份策略及方案设计:完全+增量
 - 常用的备份工具mysqldump、cp、tar等复制归档工具
 - 备份的数据快速恢复及注意事项
 - 冷备份,温备份及热备份实现
 - 逻辑备份工具:mysqldump使用实例讲解
 
四、MySQL读写分离和高可用
- MySQL常见的扩展方式Scale Up、Scale Out
 - MySQL复制特点及复制架构详解
 - MySQL主从复制中主节点、从节点配置实例详解
 - MySQL复制架构中的数据一致性及事务安全性保持
 - MySQL主主复制配置原理及案例演示
 - MySQL半同步复制原理及案例演示
 - MySQL复制过滤器配置原理及实现指定数据库(表)的快速备份案例演示
 - MySQL复制过程中的日志清理与监控备令详解
 - MySQL主从复制中数据不一致的解决方案
 - MySQL复制中数据损坏或丢失、混合使用存储引擎、serverid的不唯一、及复制延迟中出现的问题及解决方案
 - MySQL数据库的切分:重直切分:分库、水平切分:分表
 - MySQL读写分离及常见的解决方案MYCAT
 - MySQL集群Cluster实现PXC
 
实战项目(1):Java单体应用JPress
实战案例–基于Tomcat的]ava应用
- JPress/Wordpress

 
目标
- 各组件尽量以面向生产环境的方式部署
 - NFS、Nginx、Tomcat、MySQL和MyCAT
 - Ansible进行部署和新版本发布
 - 用上JumpServer,模拟进行远程管理接入
 - Shell脚本和Xtrabackup/mysqldump:MySQL数据库备份和远程存储
 
验证
- Ansible进行版本发布过程中,服务不会中断
 - MYCAT和MySQL实现的读写分离架构中,数据能够正常读写
 - Memcached用作Session server,确保会话保持的功能
 - 模拟数据丢失,确保数据库的备份文件能够用于进行恢复
 
阶段六:接入层及高可用
一、 LVS
- Linux集群及系统扩展的方式概述
 - Linux集群类型及调度方法详解
 - lvs工作原理及专用术语介绍
 - lvs常见的四种集群lvs-nat、Ivs-dr、Ivs-tun、lvs-fullnat优点及使用场景
 - LVS 调度方案RR、WRR、SH、DH、LC、WLC、SED、NQ、LBLC、LBLCR详解及应用场景
 - 负裁均衡集群中会话保持方式:源地址hash、会话集群、会话服务器
 - ipvsadm集群服务管理工具使用
 - LV5-NAT的配置以及负裁应用
 - LV5-DR的配置以及负载应用
 - LVS-FW方式实现LVS的affinity应用
 - LV5 FWM 持久性连接应用环境理论及实现
 
二、Keepalived
- HA Cluster高可用相关原理介绍
 - vrrp协议与专业术语介绍
 - keepalived相关工作原理介绍
 - keepalived软件安装与配置
 - keepalived主备、双主互备、多主多备vrrp实例配置及实现
 - 实战案例:高可用ipvs调度器及对RealServer进行健康状态检测
 - 自定义监控脚本
 - vrrp script及其应用示例
 - keepalived基于vrrp script高可用nginx及haproxy调度器
 
阶段七:监控系统
一、Zabbix
- 监控系统概述
 - zabbix组件介绍及zabbix监控基础、工作机制及监控实现方式
 - zabbix server、agent安装、配置详解及监控数据采集流程
 - 通过脚本一键自动批量安装zabbix agent
 - 数据采集工具引用标识(key)与监控项配置
 - 触发器,触发器表达式与触发器事件
 - Action的工作机制及Operations应用:远程命令、告警及告警升级
 - 高级配置:宏、自定义key及监控模板
 - SNMP协议基础及基于SNMP协议的监控配置
 - 聚合图形、dashboard展示
 - 部署主动模式代理+主动模式agent客户端
 - 监控TCP连接数(主动模板和被动模板)
 - 监控redis及自定义模板
 - 监控mysql脚本及自定义模板
 - zabbix 故障自治愈功能简介与实现案例
 - URL和自定义脚本及模板监控端口和进程
 - grafana结合zabbix显示绚丽图形
 - 用户和组管理
 - 自定义系统基础监控模板
 - 实现及邮件通知机制,微信报警、短信报警等
 - zabbix proxy分布式监控及主被动模式详解及监控案例
 - 网络发现及自动注册
 - zabbix API使用基础及通过API快速添加监控服务器案例
 - zabbix性能优化
 - zabbix的高可用
 
实战项目(2):增强Java单体应用站点可靠性
实战案例 --完善基于Tomcat的]ava系统环境
- jPress/Wordpress

 
目标
- 各组件尽量以面向生产环境的方式部署
 - NFS、Nginx、Tomcat、MySQL和MyCAT
 - Ansible进行部署和新版本发布
 - 用上JumpServer,模拟进行远程管理接入
 - Shell脚本和Xtrabackup/mysqldump:MySQL数据库备份和远程存储
 - Nginx模拟做业务网关,耦合请求至业务请求路径中,LVS做接入层流量网关
 - (可选)基于Keepalived高可用LVS;若该组件可选,则需要使用keepalived高可用nginx
 - 使用Zabbix监控以上系统中的每个组件,规划好存储空间,并制订合理的告警策略
LVS集群
Nginx集群
Tomcat和JVM
Memcached
NFS及同步状态
MySQL主从复制集群
JumpServer
Zabbix Server监控系统自身 
验证
- Ansible进行版本发布过程中,服务不会中断
 - MyCAT和MySQL实现的读写分离架构中,数据能够正常读写
 - Memcached用作Session Server,确保会话保持的功能;
 - 模拟数据丢失,确保数据库的备份文件能够用于进行恢复
 - Nginx某一实例故障,不会大面积影响业务访问;
 - LVS某一实例故障,不会大面积影响业务访问;
 - Zabbix能够及时发现问题,并进行及时告警

 
高级架构课程
课程框架:
 
 
阶段八:虚拟化和容器
一、KVM虚拟化和OpenStack简介
- 虚拟化技术基础
 - 虚拟化技术分三类:主机虚拟化(模拟、半虚拟、完全虚拟化)、容器、程序级虚拟化等
 - 主机级虚拟化中cpu、memory、I/O虚拟化方式及网络虚拟化机制
 - KVM虚拟化基础KVM虚拟化技术实现原理
 - KVM模块载入后的模式:内核模式、用户模式、来宾式、及kvm hypervisor详解>kvm的特性与局限性详解
 - KVM的工具栈:qemu、libvirt的使用
 - 构建KVM环境:KVM的安装、配置及应用
 - 管理KVM虚拟机(virsh,virt-manager及qemu-kvm)
 - kvm常用的虚拟网络模型详解:桥接模型、NAT模型、路由模型、离模型概念及实现
 - 磁盘镜像文件管理制作虚拟机模板镜像,并批量创建虚拟机
 - 基于kvm运行windows server服务器系统
 - 概述KVM虚拟化的其它管理工具:0penStack、oVirt、Proxmox等
 
二、Docker
- Linux容器技术及其关键组件CGroups及Namespaces
 - 低级容器运行时与高级容器运行时、OCI
 - 现代应用容器技术Docker的特性及分层组件
 - Docker架构及工作模型
 - Docker对比虚拟机优缺点,以及其它常见的容器引擎
 - Docker存储引擎对比及选择
 - Docker CE安装与初始化
 - Container和Image管理相关的常用操作
 - Dockerfile制作、Docker镜像分层制作精讲及案例
 - 镜像优化与镜像漏洞扫描
 - Docker的存储管理机制、数据卷和数据卷容器
 - Docker网络模型与跨主机的容器间通信
 - Docker资源限制介绍、CPU与内存资源限制实现
 
三、Containerd和Harbor
- docker-compose命令详解及单机容器编排企业案例
 - Docker Registry 介绍
 - Harbor镜像仓库单机
 - Harbor镜像仓高可用实现、镜像扫描、镜像加速
 - Containerd基础、部署与快速入门
 
阶段九:NOSQL存储系统
一、Redis基础
- 存储系统上的ACID、BASE及CAP理论
 - NOSQL的常见技术流派及相关的常用实现方案
 - Redis特性及功能
 - 数据管理接口:各种数据类型的基础管理操作
 - Redis配置详解
 - RDB及AOF持久化机制对比介绍及其配置
 - Redis数据类型介绍
 
二、Redis进阶
- Redis消息服务的实现
 - 主从复制工作机制、配置方式,以及主从复制集群的部署
 - Redis Sentinel功能、部署方式及部署案例
 - Redis Cluster集群基础概念及工作机制
 - Redis Cluster部署案例及集群服务器上下线
 - Redis数据跨服务器迁移
 - Redis其他横向扩展实现方式
 
三、MongoDB
- MongoDB数据库关键特性
 - MongoDB数据模型:document、collection和database等
 - MongoDB安装并连接到服务端
 - MongoDB的CRUD操作:datadabase和document的基础管理
 - MongoDB复制集工作原理和实战
 - MongODB分片集群工作原理和实战
 - MongoDB备份和还原
 
阶段十:CICD和DevOps
一、Git和GitLab
- CI/CD、敏捷开发、DevOps概述
 - 持续集成与持续部署工具链
 - 常见的代码部署方式介绍,如蓝绿部署、灰度发布、金丝雀部署、滚动部署、A/B测试
 - 分布式版本控制工具的工作模型、git基础概念及基本应用
 - 分支管理、常见的分支模型及各自的协作流程
 - 远程仓库与GitLab
 - Gitlab简介、安装、账户与权限管理、项目管理
 - Gitlab分支管理、分支合并、代码clone、数据备份、数据恢复
 
二、Jenkins自由风格流水线
- Jenkins简介、安装、插件管理
 - 作业类型及各自的特性
 - Jenkins凭据管理
 - 常用类型的触发器,以及基于GitLab的自动触发机制
 - 参数化构建
 - 结合Ansible实现自动化部署
 - 构建通知
 
###三、Jenkins Pipeline
- jenkins分布式架构概念与实现
 - 声明式Pipeline语法结构
 - 声明式Pipline快速入门
 - 参数化Pipeline及高级应用
 - 基于spring-boot-helloworld的声明式Pipeline完整示例
 - jenkins通知机制,在声明式Pipeline中使用post{}
 - Jenkins视图简介与应用场景
 - 代码质量测试工具sonarqube简介
 - Sonarqube部署、插件管理、实现代码手动扫描
 - Jenkins集合sonarqube实现代码自动扫描
 
实战项目(3)
实战案例–自动化构建SpringBoot和Vue应用项目案例
在线小说网:novel和novel-front-web
- novel:前后端分离的在线小说项目,此为后端,基于Spring Boot3开发
 - novel-front-web:novel的前端,基于Vue 3开发
 
依赖的后端服务包括MySQL8.0、Redis 7.0、ElasticSeach 8.x(可选)RabbitMQ 3.x(可选)和XXL-Job(可选)
- 三个可选项默认均为关闭状态,该示例中,此三者也将基于默认配置,不予部署和使用

 
目标
- 简述SpringBoot MVC及相关的框架体系
 - 容器化运行novel和novel-front-web相关的项目
 - 部署高可用Harbor系统,以及分布式的Jenkins系统
 - 基于Jenkins自动化构建novel并推送镜像至Harbor中
 - 持续交付:自动化更新线上实例,并运行为容器实例(ansible或docker)
 - 制订用于novel和novel-front-web更新的灰度策略,并实施相关的策略
 - Zabbix监控整个系统环境
 
阶段十一:消息队列
一、Zookeeper和Kafka
- ZooKeeper架构组件和典型应用场景(发布/订、负载均衡、分布式协调/通知、…)
 - Zookeeper数据模型、选举机制和节点类型
 - Zookeeper单机部署、配置及常见命令的用法
 - Zookeeper集群部署、扩缩容及运维管理
 - 发布与消息订阅系统简介
 - 消息、消息队列和Broker的基础概念
 - Kafka特性、设计理念和系统组件
 - 生产者、消费者及消息收发的工作逻辑
 - Kafka部署模式、单实例部署和基础配置
 
二、Kafka和其它消息队列
- Kafka主颖配置、复制系数和分区机制
 - Kafka的再均衡与分区分配策略
 - Kafka的日志存储与事务机制
 - Spark和Kafka Streaming简介
 - RabbitMQ快速入门:系统组件、工作机制、集群部署和基础管理操作
 - (选讲)RocketMQ快速入门:系统组件、工作机制、主从复制集群和基础管理操作
 - 项目案例(3)扩展:为实战项目(3)升级Redis主从架构,并添加RabbitMO集群

 
阶段十二:搜索引擎和日志中心
一、ElasticSearch及集群管理和优化
- 搜索引擎及功能组件概述
 - 索引组件Lucene及搜索组件ElasticSearch和Solr简介
 - ElasticStack及小、中及大型规模下的日志采集、存储、展示及搜索平台的架构体系
 - Lucene的多样化查询:域、范围、字符串、模糊查询简介
 - ES集群组件及工作机制
 - ES集群部署及API接口基础使用
 - ElasticSeache插件管理,部署中文分词插件analysis-ik和analysis-pinyin
 - ES的常用ETL工具栈及LoqStash和Beats组件
 - LogStash Aqent部署及基础应用
 - LogStash常用的input、filter和output插件体系与常用插件,如grok和geoip等
 
二、日志中心:filebeat、LogStash和Kibana
- LogStash Server部署及运行
 - Kibana基础概念、部署、认证及其展示接口的配置
 - Logstash多类型服务访问日志及系统日志收集
 - Java日志合并、Nginx访问日志及TCP日志
 - Syslog日志收集,以及基于RedisList收集Nginx访问日志
 - Kibana Dashboard使用及自定义图形
 - Logstash和Filebeat结合Kafka实现企业级日志收集案例
 - 日志写入数据库及地图显示客户端城市
 - Kibana日志分析,Nginx日志(pv、ip、地理位置等)
 - (选讲)项目案例(3)扩展:为实战项目(3)添加ElasticSearch搜索引擎和ELK日志中心

 
阶段十三:微服务和对象存储
一、Springcloud微服务框架和Nacos
- SpringBoot MVC和SpringCloud微服务框架相关的概念
 - 国内主流的微服务治理生态全景
 - Nacos系统组件及工作机制
 - Nacos 部署模式、单机部署和控制台功能介绍
 - Nacos 的关键配置参数和鉴权体系
 - Nacos 集群模式部署和多集群模式介绍
 - 基于 Docker部署和运行Nacos

 
二、API网关、SpringCloud Gateway和APISIX
- API管理(API Management)与API网关(API Gateway)介绍
 - API网关的类型:流量网关与业务网关各自的功能
 - 主流的API网关项目及功能对比(例如SpringCloud Gateway、Zuul、Kong、APISIX等)
 - SpringCloud Gateway特性、核心概念与工作流程
 - SpringCloud Gateway断言(Predicate)、动态路由配置和过滤器
 - APISIX架构组件和插件体系介绍,APISIX Dashboard
 - 部署、运行APISIX和APISIX Dashboard
 - APISIX的关键术语(Route、Service、Consumer、Upstream和Plugin等)及工作机制
 - APISIX的基础管理操作:发布API和保护API
 - APISIX高可用部署方案

 
三、Sentinel(流量治理)和Seata(分布式事务)
- 流量治理的基本概念:流量控制、熔断降级和过载保护等
 - Sentinel的功能和设计理念:流量控制、熔断降级和过载保护在Sentinel中的实现机制
 - Sentinel的组成(核心库和控制台),以及部署和启动控制台
 - Sentinel规则类型及基于控制台规则管理接口介绍
 - 流量控制规则、流量控制机制、集群流量控制和网关流量控制
 - 熔断降级规则和熔断策略
 - 过载保护规则及工作原理
 - 热点参数规则和热点参数限流策略,以及访问控制规则和来源访问控制(黑白名单)
 - 控制台鉴权机制,以及关键的配置参数说明
 - 分布式事务与Seata介绍
 - (选讲)Seata事务模式:AT、TCC、SAGA和XA模式
 
四、对象存储、Minio和华为云OBS(或阿里云OSS)
- 对象存储的基础概念、特性和适用场景
 - 对象存储的关键术语:对象(0bject)、存储桶(Bucket)、地域(Region)和端点(Endpoint)
 - 公用云的对象存储(阿里云OSS、华为云OBS、Amazon S3和Google Cloud Storage等)简介
 - 开源对象存储方案(Minio、ceph RGW、Zenko和Triton等)简介
 - Minio架构组件、功能特性和数据组织格式
 - Minio核心概念和部署架构:分布式架构和复制架构
 - Minio 基于纠删码和部署架构的数据冗余
 - Minio 分布式集群部署和配置
 - Minio 控制台:集群配置、对象管理和数据安全
 - Minio 客户端程序mc及常用的管理命令
 - (选讲)Minio SDK及使用示例
 
##实战案例(4)
实战案例 --部署微服务化应用
项目案例(二选一)
- mall-microservice
 - novel-cloud

 
目标
- 部署基础服务:mysql、redis、nacos、elasticsearch、mongodb和minio等
面向生产环境部署:提供主从复制或者集群服务
容器化部署,或Ansible编排部署
关键数据备份策略和灾难恢复策略 - 部署mall-microservice/novel-cloud的各组件
容器化部署,或Ansible编排部署 - 高可用Nginx反代接入,或者使用APISIX接入
 - 配置监控整个系统,并制订合理的告警策略
 - 微服务业务前后端应用经Jenkins自动构建为Image后推送至Harbor
 - 收集系统日志至ElasticStack中
 
阶段十四:Kubernetes快速入门
一、基础概念、架构组件、工作机制及集群部署
- 容器编排与Kubernetes编排系统概述
 - Kubernetes系统组件与核心术语
 - Kubernetes网络模型简介
 - 各类部署工具对比介绍,以及kubeadm部署Kubernetes集群的要点及步骤
 - 使用ansible和ansible playbook,快速部署基于containerd的Kubernetes集群
 - Kubernetes应用编排快速入门:Pod、Service和Deployment
 - 资源API和kubectl命令行客户端详解
 - 使用Namespace隔离不同的租户、项目或环境
 
二、Pod、存储卷和配置
- Kubernetes集群组件、工作机制回顾与增强
 - Pod的设计理念、配置格式和使用案例
 - 定制容器运行方式:命令、参数和环境变量,以MySQL和Wordpress为例,迁移尝试迁移传统应用至Kubernetes平台
 - 配置Pod:探针、资源需求、资源限制、安全上下文及使用案例
 - 基于容器的设计模式:Sidecar容器、Ambassador容器、Adapter容器和Init容器,以及Init容器使用案例
 - Pod状态及常见的异常问题及其排查问题的思路
 - 存储卷类型、插件、配置规范和使用案例
 
三、持久卷、存储类、及应用配置
- 持久卷(PV)和持久卷声明(PVC)的功能、工作逻辑、配置规范及使用案例
 - 存储类的功能、配置规范及使用案例
 - Kubernetes存储架构、CSI以及基于CSI的NFS-CSI-Driver
 - Kubernetes的CAS存储,0penEBS部署,以MSQL和Wordpress为例,为迁移到Kubernetes集群上的应用提供持久化存储的
 - ConfigMap、Secret功能、配置规范,以MySQL和Wordpress为例,为迁移到Kubernetes集群上的应用提供Kubernetes原生方式的应用配置功能
 - DownwardAP1、Proiectd卷功能、配置规范和使用案例
 - Service的功用、模式及工作机制快速入门
 - 标签、标签选择器和注解
 
四、Service和应用编排
- Service类型、资源规范及各类型使用案例
 - Service资源名称、名称解析和CoreDNS
 - 配置Pod上的名称解析策略
 - CoreDNS插件体系、查询路由、配置格式、查询重写和常用场景下的配置案例
 - Kubernetes声明式API与控制器模式的基本工作逻辑
 - 无状态应用编排控制器Deployment:应用部署、更新、扩缩容、金丝雀部署、卸载及使用案例
 - 有状态应用编排控制器StatefulSet:应用部署、更新、扩缩容、分区部署、卸载及使用案例(MySQL主从复制集群)
 
五、应用编排与Ingress应用发布
- 有状态应用编排Operator工作机制及案例(ECK Operator)
 - 系统级应用编排控制器DaemonSet:应用部署、更新、扩缩容、分区部署、卸载及使用案例(Prometheus Node Exporter)
 - 作业类编排控制器Job、Cronob配置规范及使用案例
 - Ingress资源的功用、类型及同Ingress Controller的关系
 - Ingress Controller的常见实现、部署模式和IngressNginx部署示例
 - Ingress资源类型、配置规范和示例,以及通过Ingress发布应用的实际案例
 - 基于Ingress的灰度发布案例:canary-by-header、canary-by-cookie和canary-by-weight
 - Helm的核心概念、工作逻辑、以及Artifact Hub介绍;
 - Helm案例:部署Wordpress和Harbor;
 
阶段十五:云原生监控系统
一、Prometheus监控系统入门
- 监控系统和监控体系回顾,以及四个黄金信号、USE方法和RED方法等监控理论;
 - Prometheus生态组件与工作机制、数据模型和数据采集快速入门;
 - 部署、启动Prometheus Server和Node Exporter
 - 实战案例:监控Prometheus Server、Node、MySQL、Nginx、ElasticSearch和Tomcat,以及使用Black-box Exporter进行黑盒监控:
 - Prometheus数据模型、向量选择器和指标类型;
 - PromOL聚合函数、聚合表达式和向量匹配;
 - Prometheus服务发现工作机制、常见的发现服务及配置案例:基于文件、Consul和Kubernetes AP Server的服务发现;
 
二、Prometheus监控系统进阶
- Promehteus重新打标(relabel_configs和metric_relabel_configs)机制及使用案例;
 - 使用记录规则持久保存查询结果,以及基于Grafana展示查询结果;
 - Prometheus告警逻辑、AlertManager告警路由框架及工作机制;
 - 告警规则格式、告警模板字串及相关的配置案例
 - 部署、启动AlertManager,配置邮件告警、钉钉告警等多种告警机制;
 - 告警路由、告警抑制配置案例;
 - Prometheus存储引擎简介,以及配置Prometheus使用远端存储的方法,
 - Prometheus的各类高可用方案介绍;
 - (选讲)VictoriaMetrics系统架构、工作机制,以及部署VictoricMetrics作为Prometheus的远端存储;
 
阶段十六:Kubernetes实战进阶
一、认证、鉴权及网络插件基础
- Kubernetes APl Server的访问控制体系及工作机制:认证、鉴权与准入控制
 - 身份认证策略介绍、静态令牌认证、X509数字证书认证及使用案例
 - kubeconfig配置文件格式、管理命令及使用案例
 - ServiceAccount功能、工作机制、配置规范及使用案例
 - 鉴权策略介绍和RBAC鉴权工作原理
 - RBAC鉴权体系中Role/ClusterRole/RoleBinding/ClusterRoleBinding资源规范及案例
 - CNI技术体系及Pod网络基础
 
二、Kubernetes网络
- Kubernetes的网络模型及组件间的通信链路
 - CNI插件体系、NetPlugin和IPAM插件类各自的功能和常见的实现、以及容器网络接口的主流实现机制
 - Pod网络解决方案中的Overlay网络和Underlay网络模型,以及各自常见的实现机制
 - 主流网络插件的功能、特性、性能,以及选择插件的评判原则
 - Flannel网络的vxlan、vxlan directrouting、host-gw的工作机制、配置方法和模型验证
 - ProjectCalico网络工作机制、架构组件及支持的网络模型
 - 部署ProjectCalico,配置其使用BGP和IPIP网络,并验证其通信模型
 
三、Kubernetes集群运维
- Kubernetes调度相关的概念、经典调度器的调度流程、预选策略、优选策略和新式调度框架
 - Kubernetes的亲调度机制:节点亲和、Pod亲和、Pod反亲和及Pod拓扑分散约束
 - Kubernetes基于污点和容忍度的调度策略
 - Kubernetes节点状态和节点维护
 - Kubernetes高可用架构模型,以及部署高可用的Kubernetes集群示例
 - 集群版本升级注意事项和实践准则,以及升级高可用的Kubernetes集群的案例
 - Velero程序组件及备份、恢复的工作机制
 - Velero备份恢复Kubernetes资源及数据卷的案例
 
项目案例(二选一)
- mall-microservice
 - novel-cloud

 
目标
- 将实战案例4的环境全线迁上Kubernetes平台
 - 监控系统切换为Prometheus
 - 接入层切换为基于Ingress Controller的Ingress资源
 
阶段十七:SRE工程理念
一、SRE工程模型
- SRE的起源、岗位职责、工作原则和适用范围
 - SRE的核心理念、方法论和稳定性的衡量机制
 - 服务质量SLI、SLO和SLA的制订与落地原则
 - 应用事件处理:紧急事件响应、紧急事故管理、故障排查、事后总结和0n-Call机制建设
 - 稳定性建设的方法:基于"主备"的冗余、基于"负载均衡"的冗余、基于平台自愈机制的设计,基于业务架构的设计
 - 灾备建设简介:同机房灾备、同城双活灾备、异地数据灾备、两地三中心和分布式多活
 
实战进阶
阶段十九:Kubernetes实战进阶
一、基于kubeasz部署高可用Kubernetes集群
- Kubernetes集群组件架构及服务器硬件选型
 - 准备本地部署环境,并基于kubeasz初始化Kubernetes集群部署过程
 - kubeasz部署Kubernetes集群的配置文件详细介绍
 - 基于ansible-playbook,定制要部署的Kubernetes集群环境
 - Kubernetes集群更新注意事项及更新过程演示
 - 部署常用的附件,例如Kuboard等,并介绍kubesphere系统
 - etcd存储系统介绍及集群管理
 - Kubernetes原生名称解析服务CoreDNS功能、特性及常用配置
 
二、Kubernetes实战话题
- Calico网络插件的eBPF模式及应用,以及在Kubernetes部署使用eBPF模式的网络插件
 - Pod的特性伸缩机制、VPA/HPA的工作机制,以及基于Promteheus的应用自动伸缩案例
 - 公有云SLB结合Ingress实现客户端IP透传
 - eBPF介绍、Cilium网络插件系统组件、工作机制及部署Kubernetes集群使用Cilium网络插件
 - Cilium网络插件的虚拟网络接口、Pod网络模式及通信验证,以及Cilium内置的可观测组件Hubble
 - Cilium内置的Ingress Controller与应用,以及Cilium的高级特性介绍
 
三、Kubernetes上部署微服务电子商城项目
- 云原生的概念、服务网格、微服务治理体系介绍
 - 开源微服务电子商城mall-microservice项目架构介绍
 - 部署mall-microservice依赖的各后端服务:MySQL、Nacos、EFK、Redis、MongoDB、RabbitMQ、Minio并它们纳入Promtheus的监控体系
 - 部署Skywalking及相关的UI
 - 部署商城后台组件:mall-gateway、mall-portal、mall-search等
 - 部署商城的商家管理端mall-admin-web,并测试进行测试访问
 - 在Prometheus/Grafana中验证指标采集、在EFK中验证日志采集和检索,在Skywalking中验证请求链路跟踪
 
阶段二十:分布式消息系统Kafka
一、Kafka及应用案例
- 单体应用与微服务简介、进化历史、服务注册机发现机制、实现微服务的几个要素
 - 消息分发系统发展历史及对比、消息分发机制
 - Kafka简介及优缺点、Kafka逻辑架构详解
 - Kafka配置详解、基于Zookeeper和Kraft实现Kafka集群部署简介;
 - Kafka命令行及图形客户端使用、验证消息的写入Kafka并从Kafka集群消费
 - Kafka集群成员间关系、复制及物理存储机制
 - Kafka的可靠性保证、复制以及broker配置
 - 管理Kafka-Topic操作、消费者群组、动态配置变更及分区管理
 - 在Kubernetes集群上,基于Strimzi Operator部署面向生产环境的Kafka集群
 
阶段二十一:列式数据库ClickHouse
一、CilckHouse入门与实践
- 关系型数据库与非关系型数据库简介、行式数据库与列式数据库简介、ClickHouse使用场景特性及功能介绍
 - ClickHouse服务器选型、安装配置及优化配置、数据导入
 - Clickhouse安装、ClickHouse查询语句简介及常用函数的使用
 - Clickhouse-Client及DBeaver等客户端工具使用、用户管理
 - ClickHouse数据格式简介,JSON、TabSeparated、TSKV、CSV、Parquet、ORC等数据格式
 - ClickHouse存储引擎简介,MergeTree系列引擎简介及Log系列存储引擎简介
 - Clickhouse用户profile、quota配额及多用户管理
 
二、ClickHouse生态整合
- ClickHouse与MySQL及Kafka等整合使用;
 - ClickHouse分布式集群部署简介及集群部署,
 - ClickHouse查询语句简介及常用函数的使用;
 - Prometheus基于ClickHouse实现数据的远程读写案例;
 - 基于Prometheus监控ClickHouse并通过Grafana实现监控数据可视化;
 - 将ClickHouse部署并运行于Kubernetes之上,使用基于Ceph rbd的PVC存储数据,并由Prometheus自动完成ClickHouse的监控和告警:

 
师姐的号(可撩!):Evelyn-lin717
结语:
无人扶我青云志,我自踏雪至山巅。
 若是命中无此运,亦可孤身登昆仑。
