零声教育 Golang云原生 第六代课程大纲
Golang/云原生/DevOps 分布式/微服务/服务网格 工程组件 云原生 场景化解决方案 Golang 分布式中间件 golang特性 并发编程 网络编程 常见数据结构和算法 设计模式 高性能web框架gin 高性能RPC框架gRPC 对象关系映射gorm 轻量级认证机制jwt 字段验证器validator 结构化日志记录logrus 网关grpc-gateway mysql redis mongodb ElasticSearch kafka etcd 高性能消息传输协议protobuf Docker容器 Kubernetes基础 git gitlab 持续交付Argo Prometheus 监控系统 分布式链路追踪OpenTelemetry Kubernetes声明式资源管理Kustomize defer/recover异常捕获和处理 interface隐式实现 通过通信共享内存 函数式编程与闭包 sync.WaitGroup等待一组goroutine完成 sync.Mutex与sync.RWMutex实现并发安全 sync.Pool实现对象的重复利用 sync.Once实现数据懒加载 sync.Map线程安全集合 sync.Cond根据条件等待goroutine完成 atomic通过内存共享数据 TCP编程 UDP编程 WebSocket编程 Http编程 UDP可靠传输协议QUIC 单元测试与性能分析 切片(可变数组) 集合(字典) 链表 队列 二叉查找树 单例模式 工厂模式 策略模式 观察者模式 适配器模式 代理模式 责任链模式 context控制协程退出 功能测试 基准测试 模糊测试 http测试 pprof性能分析 cgo与C语言交互 RESTful API与API版本控制 中间件编程及jwt身份认证 Controller模型绑定与参数验证 Protobuf消息传输 使用protobuf定义服务 一元请求与流式请求 header与trailer元数据传输 TLS与双向TLS确保通讯安全 OAuth2认证与拦截器 Keepalive连接保活配置 多路复用与健康检查 Resolver服务名称解析器 Client 连接池的实现 类型的导入与消息格式的定义 protoc编译器与API读写消息 Model的定义与tag的使用 基于orm的CRUD与原生SQL 嵌套事务、SavePoint/RollbackTo事务 Hook与Session jwt认证机制原理 HS、RS、ES、ED签名密钥生成 HS、RS、ES、ED签名与验证 标签符号及单字段验证 struct绑定与多层级验证 自定义字段、结构体补充及自定义验证 struct与map基于map规则验证 根据locale本地化提示消息 以std、file、fileRotate三种方式输出日志 通过Hooks向多个位置发送日志 网关插件以及网关的默认实现 配置文件定义HTTP规则以及网关上传文件 Http header转发到gRPC上下文 网关健康健康检查的配置 配置解决方案viper 配置格式与支持的数据源 应用配置与配置热更新 redis整体结构、存储结构 string 命令及内部存储原理 list 命令及内部存储原理 hash 命令及内部存储原理 set 命令及内部存储原理 zset 命令及内部存储原理 redigo 操作 OLTP、OLAP、体系结构 表创建删除、数据表操作(CRUD) 聚合查询、分组查询、联表查询 主键索引、唯一索引 索引实现-存储结构以及B+树 最左匹配原则以及覆盖索引 索引失效、索引优化、SQL优化 explain分析以及慢日志查询 事务控制语句 加锁流程、释放锁流程 读异常、死锁原理以及案例分析 mongodb bson解析 mongodb crud 操作 mongodb 复合索引查询、聚合查询 mongodb 文档管理 mongodb go driver操作 mongodb 连接池实现 etcd v2与v3 比较 etcd 数据版本号机制 etcd 索引以及B+树 etcd 读写机制以及事务 ACID 特性分析 Raft共识算法与leader选举和日志复制 etcd go 驱动包操作 etcd 服务发现 kafka 体系结构以及读写机制 kafka 驱动包 生产者消息生产策略 kafka 异步处理 倒排索引、lucene es 集群健康值检查 es 中文分词、聚合查询 es go驱动包操作、索引以及文档操作 otel项目概述与关键概念 OTLP/jaeger/zipkin等导出器实现trace导出 git的工作流程 代码管理 分支管理 代码共享与项目更新 代码检查与对比 gitlab CI/CD 标准流程 基于gitlab的代码评审 变量和安全文件 CI/CD 配置文件详解 基于Docker安装gitlab runner 基于docker out docker 构建docker镜像 生成资源 设置贯穿性字段 组织和制定资源 Docker安装配置 Linux Namespace隔离 Docker 命令行操作 镜像分层机制 Volume数据存储持久化与数据共享 bridge、host、overlay网络驱动 Docker Compose项目部署 Swarm 集群高可用 kubeadm集群安装和升级 kubectl命令行操作 string 对象存储应用 list 栈应用 zset 排行榜 mvcc原理,当前读以及快照读 option定义http规则以及HttpBody响应 string 累加器应用 string 分布式锁 string 位运算应用 list 队列、异步队列、阻塞队列 list 固定窗口记录 hash 对象存储应用 set 唯一无序应用 set 关系应用 zset 延迟队列 zset 时间窗口限流 redigo 管道和事务 redigo 订阅发布、stream mysql网络模块:连接池与事务 普通索引、组合索引 索引与约束 事务的acid特性 事务的隔离级别 kafka 系统解耦 kafka 流量削峰 kafka 日志处理 kafka 驱动包 生产者 ack 策略 kafka 驱动包 消费者组 rebalance 机制 etcd 体系结构 etcd CURD etcd 监听、事务、租约 Raft 运行机理详解 etcd leader选举 etcd 分布式锁 es-head和kibana es 索引操作以及文档操作 es 读写机制 es 匹配查询、范围查询、多条件查询 es 高级查询:term、match、aggregation 容器health check 容器重启策略 容器资源配额 容器命名空间隔离 Cgroup资源配额限制 RootFs环境依赖 容器写时复制机制 容器联合挂载机制 镜像内容寻址机制 镜像共享 私有注册中心构建 自定义容器启动命令或入口程序 基于Swarm集群的分布式部署 基于Swarm集群的灰度发布 Swarm集群 deploy stack flannel网络插件的安装 CRI与cri-dockerd api server 组件 controller manager 组件 Scheduler 组件 kubelet 组件 proxy 组件 pod的定义与基本用法 pod 生命周期与重启策略 容器镜像拉取策略 容器资源配额 容器健康检查与服务可用性 init Container NodeSelector定向调度 Node亲和性调度 NodeAffinity Pod 亲和度与互斥调度 PodAffinity pod Taints 和 Tolerations Deployment部署 Deployment 升级和回滚 Deployment 暂停与恢复 Deployment 手动与自动伸缩 service的定义与基本用法 service 4种发布类型 service 无选择符service service HeadLess Service service 环境变量与DNS服务发现 service TLS ingress http 7层路由机制 ingress Controller 安装 ingress 转发策略配置 ingress TLS 配置 Volume与PersistentVolume Volume 与 configMap Volume 与 secret StorageClass动态制备 PersistentVolumeClaim磁盘申领 部署cephfs分布式存储文件系统 资源的基准与覆盖 使用kustomize操作资源 Argo 安装配置 Argo CD持续交付 Argo Canary和BlueGreen 部署 Kubernetes Pod Kubernetes Service Kubernetes Volume Kubernetes二开 metrics server 监控node和pod 通过client-go管理集群资源 通过自定义k8s资源扩展k8s功能 容器声明周期处理函数 Kubernetes Pod 无状态部署 Kubernetes Pod 调度 静态pod DaemonSet 部署 StatefulSet部署ETCD集群 Operator部署Redis企业版集群 Kubernetes Pod 有状态部署 Operator Lifecycle Manager OLM 部署MySQL NDB集群 镜像构建 Docker项目部署 Docker基础 Docker镜像 数据模型:Metric、Time Series、Sample、Label 指标类型:Counter、Gauge、Histogram、Summary Prometheus 组件与体系结构 常见配置以及配置项的使用场景 Prometheus 容器化运行 PromQL 语法与常见函数 零声服务 适宜工程师人群 参考书籍 学习方法大6点 学习方法小5点 3~5年后端开发工作经验想学go语言的工程师 想进入云原生云计算方向的golang工程师 计算机专业本科学历应届毕业生 有一定基础的情况,可根据实际情况侧重学习某个板块 多想,遇到任何问题,深入思考找到真正的问题 多练,通过练习将知识点融汇贯通 多问,通过自己思考和尝试仍不理解的问题,多找老师沟通 多讨论,找身边的同时朋友讨论技术问题 每节课程先预习课件,提出一些疑问,再看视频学习,看完一遍视频 之后再练习 课后总结:学到什么,可以在哪些场景应用,没学懂的内容有哪些, 反复学习练习 将学到的内容以文档、博客或其他形式向外输出,通过这种方式整理 知识点之间逻辑关系,加强学习效果 如果可以,建议参加零声学院的费曼学习计划,巩固所学知识 通过自己努力搞不懂的问题,积极与老师沟通 《Go 语言底层原理剖析》 《Docker 实践》 《Docker 容器与容器云 第2版》 《Kubernetes 权威指南 第4版》 《云原生应用框架》 目标岗位 golang高级开发工程师 运维开发工程师 云计算开发工程师 golang服务端开发工程师 中后台开发工程师 3~5年golang开发工作经验没有形成自己技术体系的工程师 5大课程板块 golang:解决go语言编程问题 工程组件:解决golang工程化问题 分布式中间件:解决技术栈单一及分布式开发问题 云原生:云原生分布式部署、监控及运维问题 场景化解决放案:巩固基础、项目实战以及提供分布式解决放案 一般情况下课根据大纲从前往后学习,层层递进 《Prometheus 云原生监控》 《云原生服务网格Istio》 课程服务 老师在线答疑 面试简历梳理 面试总结复盘 课程数据 文件的copy与文件的读写 prometheus/OTLP等导出器实现metric导出 otel-collector数据采集与导出 golang基础 golang安装与配置 数据类型与变量 变量作用域与函数 运算符与优先级 go mod依赖管理 流程控制语句 语言结构与基础语法 golang: 5个关键特性、8个并发编程操作、5类网络编程、 4种单元测试方法、6种数据结构、6种常见算法、 7种设计模式、1种性能测试方法 工程组件: 10个,可构建完整的项目工程(http/rpc), 包括:web框架、rpc框架、网关、链路追踪、 字段验证、权限校验、日志记录、消息传输、 配置解析、数据入库等各个方面 分布式中间件: 6个,包括关系数据库、文档型数据库、键值对缓存、 消息队列、服务发现、弹性搜索和分析等, 可满足绝大部分分布式应用场景 云原生工具: 8个,包括 代码管理、持续集成、持续部署、 服务容器化、监控、服务网格等一整套devops工具链 场景化解决方案: 2个,包括 企业级ChatGPT微服务项目的开发与落地 零声图床(mediahub)等 课程时长:预计200+小时 课程收获 熟练掌握golang编程特性 熟悉常见的数据结构和算法 掌握一套完整的项目工程体系 掌握一套完整的DevOps流程及工具链 掌握下一代微服务解决方案服务网格 掌握大量的场景化解决方案和项目实战经验 如何使用golang标准库 编译与运行 goland配置与debug 开发环境安装配置 泛型编程 课程大纲仅供参考,具体内容以上课为主 冒泡、选择、插入、快速排序 线性、二分、哈希查找 私有化SaaS的AIGC ai-chat 项目实战 基于NVIDIA 的cuda的声音克隆中英文翻译项目 内网应用公网部署的映射工具Tunnel 通过开源项目与模拟OpenAI流式输出快速验证可行性 Keyword filter 解决信息脱敏与关键词提取 Protobuf 与 grpc 流式服务的定义与实现 Redis实现ai-chat上下文管理以及携带上下文发送请求 自动化域名解析与Swarm集群Tunnel服务部署 Docker Stack 同时部署多个分布式应用 AI声音克隆模型容器化部署与FFmpeg音视频处理 Kafka Producer Pool 与 Consumer Group web站文件直传与静态站点托管 AI基础产品ASR根据音频生产srt字幕文件 项目背景、需求、系统设计以及frp开源项目 应用管理与应用配置 go客户端实现Swarm集群应用的部署与更新 vit/vue/elementUI 实现前端页面 全球化访问图片存储Mediahub Mediahub 项目背景以及文件存储 短链编码算法与grpc短链服务的实现 grpc客户端连接池以及服务鉴权 Redis缓存穿透处理与短链代理的实现 微信公众号扫码授权注册与登录 Prometheus 记录配置与警告配置文件 Prometheus系统监控与监控指标 Node、Redis、MySQL、Kafka 数据导出 为可伸缩集群部署Node Exporter Docker TLS 端点配置 Swarm SD 自动发现节点数据采集点 PromQL 查询并计算系统关键指标 为关键指标配置警告规则和记录规则 Prometheus 应用程序监控 client_golang 编程导出4类指标数据 Prometheus 官方Http服务中间件的使用 短时任务数据采集方案 Push Gateway 结合应用程序特点开发应用程序指标数据导出器 Swarm 集群部署应用程序 Swarm SD自动 发现应用程序数据导出端点 Nginx反向代理实现数据采集点的定位 时序数据库VictoriaMetric 持久化存储数据样本信息 Prometheus 警告通知与可视化面板 Alertmanager 分组去重、抑制、静音等概念 QQ邮箱配置第三方服务调用 Alertmanager 分组、路由、抑制、邮件通知配置 Grafana Prometheus数据源的配置 Grafana 开源可视化面板的导入 自定义Grafana可视化面板 gitlab授权登录与OAuth2授权认证 需求分析与项目背景 数据库设计与系统设计 COS对象存储与CDN加速域名配置 服务器转存文件到COS 工厂模式解决文件存储介质多样化的问题 gin web 静态站点的托管 短链算法的分析与选择 自定义短链编码算法的编解码 短链编解码单元测试 Redis缓存设计与实现 Protobuf 与 gRPC 实现短链接微服务 grpc 客户端连接池的实现 数据缓存与数据持久化 grpc请求拦截器 短链服务缓存穿透分析 Crontab 定时任务服务按天刷新过滤因子 Redis特定场景下缓存穿透过滤 短链转长链Proxy实现 为什么使用第三方授权登录 微信公众平台测试号申请 微信公众号回调函数配置与消息验签 公众号关注事件与扫码事件处理 随机昵称与随机头像的补充 通过轮询完成扫码授权回调 gitlab授权应用的创建与配置 OAuth2授权登录标准接口 如何快速实现OAuth2 授权认证 通过Cookie 实现同一根域名下的单点登录 User服务的部署与Web联调 需求分析与项目背景 数据库设计与系统设计 快速利用开源项目获取项目效果 tokenizer Python 项目的运行与打包 octet-stream 字节Luis实现OpenAI流式输出 Reverse Proxy 部署到境外服务器用于请求转发 Protobuf 定义keywords服务 使用开源的Sensitive项目用于星系脱敏与关键词提取 根据开源项目的特性初始化脱敏关键词与关键词提取关键词 按不同的配置启动为不同的服务 golang基准测试 根据go-openai 定义grpc 服务的消息 Protobuf 指定message JSONName grpc 服务端流接口定义与流式响应 MySQL 数据持久化 Redis 常见的六中数据结构 Redis string 构建链表结构存储数据 Tokenizer 服务计算上下文tokens 向量数据库日常AI场景最简单的解决方案 Dockerfile 打包ai-chat 相关微服务 Docker Compose 单机编排 Compose yaml 文件配置详解 Docker Stack 编排多个分布式服务 AI基础产品机器翻译与参考音频截取 go协程池的应用与AI音频推理 FFmpeg 音视频处理生成最终视频结果 需求分析与项目背景 NVIDIA 显卡的选择 CUDA 版本与驱动安装 NVIDIA Container Toolkit 支持Docker使用GPU 数据库设计与系统设计 声音克隆AI项目以及模型的容器化部署 FFmpeg 7个视频处理的相关指令详解 Kafka Producer 与 Consumer Kafka Topic的作用与应用 Kafka分布式集群的部署 Kafka 访问控制配置 代码层面抽象Kafka Producer pool 代码层面首相Kafka Consumer Group Cos 预签名机制实现文件的直传 web站业务接口的实现 gin 启动静态文件服务器 Kafka 生产者消息推送 下载网络文件到存储 FFmpeg 提取AAC音频与MP4视频 COS音频文件上传并通过AI识别文字 ASR识别结果转标准srt字幕文件 字幕内容正则匹配额去噪音字符 AI 机器翻译字幕文件 FFmpeg 截取音频作为参考音频 ASR 识别参考音频的文本内容并保存到存储 为声音克隆AI项目外挂参考音频处理服务支持音频推理 裁剪超长字幕以适应AI推理程序的限制 go协程防止AI推理程序被并发调用 AI根据字幕推理音频 保存音频到存储 FFmpeg 空白音频确保音频时长 FFmpeg 根据字幕时间对音频进行延迟播放 FFmpeg 分组合并多个音频 FFmpeg 音视频合并与字幕添加 Docker Swarm 部署应用程序 项目背景与需求分析 系统设计与数据库设计 frp TCPMUX代理与httpconnect 复用器 frp ssh、http、https 内网穿透 frp AuthServerConfig token 鉴权 ssh、http、https 等类型的应用维护 应用程序端口分配以及配置生成 导出应用配置为yaml格式的配置文件 Docker 启用TLS客户端访问 go客户端更具时间戳创建服务配置 go客户端检查并创建Overlay网络 go客户端设置私有Registry 权限 go客户端创建并更新应用服务 Vue组件化开发与ElementUI Typescript的interface 的应用 Axios 实例与拦截器 Get与Post请求封装 配置文件与API调用 自动化域名解析与域名备注 服务的部署与客户端配置的返回 Tunnel服务的容器部署与更新 根据Tunnel客户端配置部署Tunnel客户端程序 Certbot 生成通配符证书用于Tunnel应用 微服务间链路关联与baggage数据传递 微服务场景下traces与metrics中间件编程 Deepseek私有化部署与AnythingLLM知识库部署 Deepseek 几种私有化部署 API对接Deepseek实现互动 知识库部署与向量数据库 云原生部署Deepseek与AnythingLLM知识库 ollama 本地部署轻量级模型 大模型知识引擎 LKE私有化部署 高性能应用服务 HAI私有化部署 几种私有化部署的优劣分析 知识库外挂基本逻辑说明 知识库的构建与数据收集 文档的切分与向量化 数据导入与索引构建 检索结果与Deepseek模型的结合 基于开源项目搭建与Deepseek交互界面 结合前端项目开发设计后端API接口 数据的流式响应 Docker打包Deepseek模型 NVIDIA Container Toolkit 支持Docker使用GPU Kubernetes NVIDIA设备插件安装 CSI动态存储卷提供大模型共享存储支持 AnythingLLM知识库服务的部署 LLM 结合企业业务实现企业Agent(智能体) 混元生图大模型实现文生图Agent 大模型理解图像内容 ASR语言识别与大模型语言合成实现语言人机交互 大模型绘画师不一样的绘画创作 图片风格化将现实照进动漫 大模型美图秀秀一键P图 淘宝商城商品背景图生成 混元大模型视频创作Agent 动漫、3D动画风格化抖音短视频 照片加舞蹈动作秒变舞蹈艺术生 照片加音频唱功提升20年 实现剪映相同的音视频字幕智能识别 腾讯会议字幕实时上屏与录音转写 大模型合成超自然语音响应实现人机语音交互 车辆、商品以及宠物等图像识别 自建库中快速检索相似图片集 识别图片中出现的各种物体场景标签