golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd 教程

3-6个月帮助学员掌握golang后端开发岗位必备技术点

教程时长: 150+小时

五大核心专栏,原理+源码+案例分析+项目实战直击工作岗位

golang:解决go语言编程问题

工程组件:解决golang工程化问题

分布式中间件:解决技术栈单一及分布式开发问题

云原生:解决云原生分布式部署及监控和运维的问题

场景化解决方案:项目实战、提供实际的分布式解决方案以及解决方案落地

一、Golang

下开发环境安装配置

  • golang 安装与配置
  • 编译与运行
  • go mod 依赖管理
  • goland 配置与 debug

golang基础

  • 语言结构与基础语法
  • 数据类型与变量
  • 变量作用域与函数.
  • 运算符与优先级
  • 流程控制语句
  • 如何使用golang标准库

golang特性

  • defer/recover异常捕获和处理
  • inter face隐式实现
  • 通过通信共享内存
  • 函数式编程与闭包
  • 文件的copy与文件的读写
  • cgo与C语言交互

并发编程

  • sync. WaitGroup等待一-组goroutine完成
  • sync. Cond根据条件等待goroutine完成
  • sync. Mutex与sync.RWMutex实现并发安全
  • sync. Map线程安全集合
  • sync. Pool实现对象的重复利用
  • sync.Once实现数据懒加载
  • atomic通过内存共享数据
  • context控制协程退出

网络编程

  • TCP编程
  • UDP编程
  • UDP可靠传输协议QUIC
  • Http编程
  • WebSocket编程

单元测试与性能分析

  • 功能测试
  • 基准测试
  • 模糊测试
  • http测试
  • pprof性能分析

常见数据结构

  • 切片(可变数组)
  • 集合(字典)
  • 链表
  • 队列

常见算法

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 快速排序
  • 哈希查找
  • 二叉查找树

设计模式

  • 单例模式
  • 工厂模式
  • 策略模式
  • 观察者模式
  • 适配器模式
  • 代理模式
  • 责任链模式

二、工程组件

微服务工具集go-kit

  • 三层结构与中间件编程
  • 限流与熔断
  • 请求链路追踪
  • 服务发现和负载均衡
  • api网关
  • prometheus监控指标

高性能RPC框架gRPC

  • 使用 protobuf 定义服务
  • 一元请求与流式请求
  • header与trailer元数据传输
  • TLS与双向TLS确保通讯安全
  • OAuth2 认证与拦截器
  • Keepalive 连接保活配置
  • Resolver 服务名称解析器
  • 多路复用与健康检查
  • Retry 与 LoadBalance
  • Client 连接池的实现

高性能web框架gin .

  • RESTful API 与 API 版本控制
  • Controller 模型绑定与参数验证
  • 中间件编程及 jwt 身份认证
  • Protobuf 消息传输

高性能消息传输协议protobuf

  • 类型的导入与消息格式的定义
  • protoc编译器与API读写消息

Api文档管理go-swagger

  • RESTful API设计 规范
  • swag与gin集成
  • swag与net/http集成

对象关系映射gorm

  • Model 的定义与tag的使用
  • 基于 orm 的 CRUD 与原生 SQL
  • 嵌套事务、SavePoint/RolIbackTo 事务
  • Hook 与 Session

轻量级认证机制jwt

  • jwt认证机制原理
  • HS、RS、ES、ED签名密钥生成
  • HS、RS、ES、ED签名与验证

字段验证器validator

  • 标签符号及单字段验证
  • struct绑定与多层级验证
  • 自定义字段、结构体补充及自定义验证
  • struct与map基于map规则验证
  • 根据locale本地化提示消息

结构化日志记录logrus .

  • 以 std、file、fileRotate 三种方式输出日志
  • 通过 Hooks 向多个位置发送日志

网关grpc-gateway

  • option 方式实现 gRPC 接口映射
  • 配置文件的方式实现 gRPC 接口映射
  • 实现以 HttpBody 响应请求
  • 将文件通过网关上传的 gRPC 服务端
  • swagger 接口文档输出
  • 自定义网关实现

命令行框架cobra

  • command及多级command
  • flags定义、配置绑定及flags检查
  • args内置验证器与自定义验证
  • Hook及Hook的继承

配置解决方案viper

  • 读取本地配置文件
  • 读取远程ETCD配置中心配置文件

轻量级访问控制框架casbin

  • 基于ACL访问控制模块流量过滤
  • 基于RBAC模型的访问控制
  • 基于ABAC模型的访问控制

分布式链路追踪0penTelemetry

  • jaeger 与 zipkin 集成
  • oteI-collector 集成
  • prometheus 集成
  • 收集器数据采集

三、分布式中间件

redis

  • redis 整体结构、存储结构
  • string 命令及内部存储原理
  • string 对象存储应用
  • string 累加器应用
  • string分布式锁
  • string 位运算应用
  • list 命令及内部存储原理
  • list 栈应用
  • list 队列、异步队列、阻塞队列
  • list 固定窗口记录
  • hash 命令及内部存储原理
  • hash对象存储应用
  • set 命令及内部存储原理
  • set 唯一无序应用
  • set 关系应用
  • zset 命令及内部存储原理.
  • zset 排行榜
  • zset 延迟队列
  • zset 时间窗口限流
  • redigo 操作
  • redigo 管道和事务
  • redigo 订阅发布、stream

mysql

  • OLTP、OLAP、体系结构
  • mysql 网络模块:连接池与事务
  • 表创建删除、数据表操作(CRUD)
  • 聚合查询、分组查询、联表查询
  • 主键索引、唯一索引
  • 普通索引、组合索引
  • 索引与约束
  • 索引实现-存储结构以及B+树
  • 最左匹配原则以及覆盖索引
  • 索引失效、索引优化、SQL优化
  • explain 分析以及慢日志查询
  • 事务控制语句
  • 事务的acid特性
  • 事务的隔离级别
  • 加锁流程、释放锁流程
  • mvcc 原理,当 前读以及快照读
  • 读异常、死锁原理以及案例分析

mongodb

  • mongodb bson 解析
  • mongodb crud 操作
  • mongodb 复合索引查询、聚合查询
  • mongodb 文档管理
  • mongodb go driver 操作
  • mongodb 连接池实现

etcd

  • etcd v2与v3比较
  • etcd 体系结构
  • etcd 数据版本号机制
  • etcd CURD
  • etcd 监听、事务、租约
  • etcd 索引以及B+树
  • etcd 读写机制以及事务 ACID 特性分析
  • Raft 共识算法与leader选举和日志复制
  • Raft 运行机理详解
  • etcd go 驱动包操作
  • etcd服务发现
  • etcd leader 选 举
  • etcd 分布式锁

kafka

  • kafka 体系结构以及读写机制
  • kafka 异步处理
  • kafka 系统解耦
  • kafka 流量削峰
  • kafka 日志处理
  • kafka 驱动包生产者消息生产策略
  • kafka 驱动包生产者 ack 策略
  • kafka 驱动包消费者组 rebalance 机制

ElasticSearch

  • 倒排索引、lucene
  • es-head和k ibana
  • es 集群健康值检查
  • es 索引操作以及文档操作
  • es 读写机制
  • es 匹配查询、范围查询、多条件查询
  • es 中文分词、聚合查询
  • es go 驱动包操作、索引以及文档操作
  • es 高级查询: term、match、aggregation

四、云原生

git

  • git 的工作流程
  • 代码管理
  • 分支管理
  • 代码共享与项目更新
  • 代码检查与对比

gitlab

  • 基于 Docker 安装 gitlab runner
  • gitlab CI/CD 标准流程
  • 基于 gitlab 的代码评审
  • 变量和安全文件
  • CI/CD 配置文件详解
  • 基于 docker out docker 构建 docker 镜像
  • 基于 k8s 安装 gitlab runner
  • 基于 k8s kaniko 构建 docker 镜像

Docker基础

  • Docker 安装配置
  • RootFs 环境依赖
  • Linux Namespace 隔离
  • Cgroup 资源配额限制

Docker容器

  • Docker 命令行操作
  • 自定义容器启动命令或入口程序
  • 容器heaIth check
  • 容器重启策略
  • 容器资源配额
  • 容器命名空间隔离
  • Volume 数据存储持久化与数据共享
  • bridge、host、overlay 网络驱动

Docker镜像

  • 镜像分层机制
  • 容器写时复制机制
  • 容器联合挂载机制
  • 镜像内容寻址机制
  • 镜像构建
  • 镜像共享
  • 私有注册中心构建

Docker项目部署

  • Docker Compose 项目部署
  • Swarm 集群高可用
  • 基于 Swarm 集群的分布式部署
  • 基于 Swarm 集群的灰度发布
  • Swarm 集群 deploy stack

Kubernetes基础

  • kubeadm 集群安装和升级
  • flannel 网络插件的安装
  • CRI 与 cri-dockerd
  • api server 组件
  • controller manager 组件
  • Scheduler 组件
  • kubelet 组件
  • proxy 组件
  • kubectI 命令行操作
  • metrics server 监控 node 和 pod

Kubernetes Pod

  • pod 的定义与基本用法
  • pod 生命周期与重启策略
  • 容器镜像拉取策略
  • init Container
  • 容器资源配额
  • 容器声明周期处理函数
  • 容器健康检查与服务可用性

Kubernetes Pod 无状态部署

  • 静态 pod
  • Dep|oyment 部署
  • Dep|oyment 升级和回滚
  • Deployment 暂停与恢复
  • Deployment 手动与自动伸缩
  • DaemonSet 部署
  • Job 批处理
  • Crontab 定时任务

Kubernetes Pod调度

  • NodeSelector 定向调度
  • Node 亲和性调度 NodeAffinity
  • Pod 亲和度与互斥调度 PodAffinity
  • pod Taints 和 Tolerations
  • pod Priority 优先级调度

Kubernetes Service

  • service 的定义与基本用法
  • service 4种发布类型
  • service 无选择符 service
  • service HeadLess Service
  • service 环境变量与DNS服务发现
  • service TLS
  • ingress http 7层路由机制
  • ingress Controller 安装
  • ingress 转发策略配置
  • ingress TLS 配置

Kube rnetes Vol ume

  • Volume 与 configMap
  • Volume 与 secret
  • Volume 与 PersistentVolume
  • 部署 cephfs 分布式存储文件系统
  • PersistentVolume 静态制备
  • Stor ageClass 动态制备
  • PersistentVoIumeClaim 磁盘申领

Kubernetes Pod 有状态部署

  • StatefulSet 部署 MongoDB 集群
  • StatefulSet 部署 Redis 集群
  • StatefulSet 部署 ES 集群
  • StatefulSet 部署 ETCD 集群
  • StatefulSet 部署 Kafka 集群
  • StatefulSet 部署 Mysql 集群

Kubernetes 集群管理

  • Node 的隔离与恢复
  • Node 的扩容
  • Namespace 与 Context 集群环境共享与隔离
  • 基于节点资源的 pod 驱逐机制

Kubernetes 集群安全

  • ABAC 授权模式
  • Webhook 授权模式
  • RBAC 授权模式
  • Pod 的安全策略配置

Kubernetes 二开

  • 通过 client-go 管理集群资源
  • 通过聚合 apiserver 扩展 k8s 功能
  • 通过自定义 k8s 资源扩展 k8s功能

Kubernetes 声明式资源管理 Kustomize

  • 生成资源
  • 设置贯穿性字段
  • 组织和制定资源
  • 资源的基准与覆盖
  • 使用 kustomize 操作资源

持续交付 Argo

  • Argo安装配置
  • Argo CD 持续交付
  • Argo Canary 和 BlueGreen 部署

监控解决方案 Prometheus

  • 记录规则配置
  • 报警规则配置
  • PromQL 查询语句
  • influxdb 远程数据中心配置
  • 报警信息配置管理
  • 自定义应用程序指标

服务网格 istio

  • 在 Kubernetes 上部署 istio
  • istio 流量管理实践
  • istio 安全配置实践
  • 使用 Prometheus 进行生产规模的监控

五、场景化解决方案

ChatGPT 企业级项目实战-环境准备

  • ChatGPT 企业级项目实战特别说明
  • 功能需求与项目设计思路
  • 项目部署环境准备
  • Linux 下编译并运行开源项目
  • Windows 下编译并运行开源项目

ChatGPT 企业级项目实战-tokenizer 计数服务

  • 为什么选择 Docker
  • Docker 镜像原理以及镜像构建流程
  • 容器的 NameSpace 隔离与 Cgroup 控制组
  • Docker 运行 token 计数容器

ChatGPT 企业级项目实战-GPT Proxy 境外代理

  • 项目部署架构调整及细化
  • Golang 反向代理与 ChatGPT API
  • gin 框架中间件编程与鉴权
  • logrus 与 lumber jack 日志滚动记录
  • ChatGPT API 参数释义与使用
  • testing 测试框架之功能测试
  • testing 测试框架之性能测试与并发测试
  • pprof 性能分析与服务限流
  • docker 镜像多阶段构建与 Docker Service 的部署策略

ChatGPT 企业级项目实战-ChatGPT Data 数据服务

  • 数据库的选择以及数据设计
  • gRPC 环境的安装与使用流程
  • protobuf 协议以及服务的定义
  • gRPC 服务端的实现以及依赖注入
  • gRPC Server 端单元测试
  • Keepalive 服务端保活策略与客户端强制策略
  • gRPC 微服务通讯安全策略
  • gRPC 健康检查与单 tcp 连接多路复用

ChatGPT 企业级项目实战-敏感问题识别服务

  • 二叉搜索数与词库重排
  • 敏感词识别服务的实现
  • 敏感词识别服务的打包与部署

ChatGPT 企业级项目实战-关键词提取服务

  • 关键词提取服务的具体实现
  • 关键词提取服务打包与部署

ChatGPT 企业级项目实战-ChatGPT 业务服务

  • gRPC 微服务项目脚手架搭建,
  • 服务设计思路与响应数据协议解析
  • 服务端基本请求流程的实现
  • Redis 连接池与 ChatGPT 上下文管理
  • ChatGPT 携带上下文发送请求
  • gRPC 客户端连接池与 gRPC 服务的接入
  • Docker Service 服务部署

ChatGPT 企业级项目实战-Web 端协议解析

  • ChatGPT Web 端协议解析
  • ChatGPT Web 端的参数化构建与部署

ChatGPT 企业级项目实战-QQ 端协议解析

  • OneBot 聊天机器人应用接口标准.
  • OneBot 实现的正向 Websocket
  • OneBot 实现的反向 WebSocket
  • QQ 端消息类型处理与服务部署

ChatGPT 企业级项目实战-Crontab 定时任务服务

  • docker 注册中心与微服务的部署
  • 公众号、企微开发流程与 Crontab 定时任务
  • Crontab 定时获取微信接口调用凭据
  • Crontab 服务的具体实现

ChatGPT 企业级项目实战-微信公众号协议解析

  • 公众号消息回调接口配置
  • 公众号被动回复与客服消息发送
  • Crontab 服务与 ChatGPT 业务服务的接入

ChatGPT 企业级项目实战-企业微信协议解析

  • 企业微信微信客服开发流程与配置
  • ChatGPT 的接入与消息的加解密

ChatGPT 企业级项目实战一个人微信接入

  • 个人微信群聊与私聊的接入
  • 个人微信 ChatGPT 的接入

ChatGPT 企业级项目实战一项目运营问题的解决

  • 一个更显专业的 Web 前端
  • ChatGPT 每分钟限流问题如何解决

ChatGPT企业级项目实战-微服务的运维

  • Docker Swarm 集群管理和节点管理
  • Docker Swarm 集群如何接入私有注册中心
  • Compose file 与 Docker Stack 部署
  • Docker Stack 部署服务到云服务器
  • Nginx 反向代理 WebSocket 与服务端流程
  • gitlab 与gitlab runner 环境的安装与升级
  • gitlab CI/CD ChatGPT 项 目
  • Web 前后端分离与 gitlab CI/CD

基于 gin 框架的 web 开发脚手架

  • 中间件统一实现 Oauth2 身份验证
  • 路由分组实现 api 版本控制
  • jwt 实现客户端令牌
  • logurs 日志组件封装
  • 分布式日志链路追踪设计
  • EFK 统一日志采集
  • viper 配置文件读取
  • etcd 应用配置中心
  • redis 数据缓存
  • mysq| 数据存储

基于 grpc 的微服务开发脚手架

  • 服务与服务之间采用 TLS 加密通信
  • etcd 服务注册和服务发现
  • etcd 应用配置中心
  • EFK 统一日志采集
  • viper 配置文件读取
  • logurs 日志组件封装
  • 分布式日志链路追踪设计
  • redis 数据缓存
  • mysql 数据存储

golang零基础/云原生/Docker/DevOps/K8S/持续集成/分布式/etcd/ipfs 教程

相关推荐
牛角上的男孩14 分钟前
Istio Gateway发布服务
云原生·gateway·istio
tyler_download1 小时前
golang 实现比特币内核:处理椭圆曲线中的天文数字
golang·blockchain·bitcoin
JuiceFS2 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生
景天科技苑2 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
疯狂的程需猿2 小时前
一个百度、必应搜索引擎图片获取下载的工具包
golang·图搜索
wclass-zhengge3 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇3 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
明月看潮生4 小时前
青少年编程与数学 02-003 Go语言网络编程 09课题、Cookie
青少年编程·golang·网络编程·编程与数学
明月看潮生4 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
明月看潮生4 小时前
青少年编程与数学 02-003 Go语言网络编程 14课题、Go语言Udp编程
青少年编程·golang·网络编程·编程与数学