零声教育Go云原生课程大纲-第三代大纲
golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd Go编程基础与核心技能 Go后台中间件编程 语法基础 Go项目实战开发(解决方案) Go云原生 公有云项目实战 错误处理 包定义以及导入 结构体定义 反射原理 闭包 值传递,引用传递,defer函数 并发编程 网络编程 http编程 对象池 goroutine 锁(读写锁、互斥锁) 通道 channel runtime 包解析 context 使用原则 tcp 编程 udp 编程 http 实现 websocket post、get、head请求处理 简单web模板 原理分析 应用和性能测试 redis mysql mongodb kafka etcd elasticsearch grpc http gin gorm redis整体结构、存储结构 string 命令及存储原理,对象存储、累加器、分布式锁、位运算应用 list 命令及存储原理,栈、队列、异步队列、阻塞队列、固定窗口记录应用 hash 命令及存储原理,对象存储应用 zset 命令及存储原理,排行榜、延迟队列、时间窗口限流应用 redigo基本操作,管道和事务,发布订阅、stream set 命令及存储原理,唯一无序应用、关系应用 OLTP、OLAP、体系结构、连接池、事务介绍 基本操作:表创建删除、数据表操作(CRUD) 表查询及案例:基础查询、聚合查询、分组查询、联表查询 索引:主键索引、唯一索引、普通索引、组合索引 索引与约束 索引实现-存储结构以及B+树 最左匹配原则以及覆盖索引 索引失效、索引优化、SQL优化 explain分析以及慢日志查询 事务控制语句,事务的acid特性,事务隔离级别 锁以及mvcc原理:加锁流程、释放锁流程,当前读以及快照读 读异常、死锁原理以及案例分析 mongodb bson解析 mongodb crud 操作 mongodb 索引操作、复合索引查询、聚合查询 mongodb 文档管理 mongodb go driver操作 mongodb 连接池实现 kafka 介绍 kafka 体系结构以及读写机制 kafka典型应用场景:异步处理、系统解耦、流量削峰、日志处理 kafka 驱动包操作:生产者消息生产策略、生产者 ack 策略、消费者组 rebalance 机制 etcd v2与v3 比较,etcd 体系结构 etcd APIs:数据版本号机制、CURD、 监听、事务、租约 etcd 索引以及B+树 etcd 读写机制以及事务 ACID 特性分析 Raft共识算法:leader选举和日志复制,Raft 运行机理详解 etcd go驱动包操作 etcd 典型应用:服务发现、负载均衡、leader选举、分布式锁 es 介绍:倒排索引、lucene、es-head以及kibana es 集群以及原理:集群健康值检查、es 索引操作以及文档操作、es 读写机制 es 查询:匹配查询、范围查询、多条件查询、中文分词、聚合查询 es 应用:es go驱动包操作、索引以及文档操作、es 高级查询:term、match、 aggregation grpc 体系结构,grpc 典型应用,protobuffer 语法、生成编译、模板接口 grpc 关键特性:拦截器、超时控制,重试 unary API 细节处理以及应用场景 client stream API 细节处理以及应用场景 server stream API 细节处理以及应用场景 bidirectional stream API 细节处理以及应用场景 gin框架分析 RESTful API实践 URL参数查询 query接收数组和Map 表单参数处理 上传文件 分组路由 中间件鉴权 json、xml、yaml、protobuf序列化 数据库连接 创建表 增删改查 事务 微信后台公众号实战 流媒体网站开发 OAuth2.0 Admin后台管理系统 分布式日志系统 goim千万级高并发推送 公众号开发逻辑 注册、权限处理、消息回复 http get方法token认证 http post方法处理消息回复 微信公众号签名验证方法 XML解析、CDATA解析 交换协议、接收消息协议、被动回复消息协议 流媒体直播框架分析 前后端分离设计 RESET API设计,包括用户、视频、评论处理 用户、评论、会话、待删除视频数据库设计 meddleware handler机制 登录注册 视频上传 视频评论 流控算法 OAuth2.0 协议流程分析 授权码、隐藏式、密码式、客户端凭证流程分析以及应用场景 授权码详细流程分析以及restful api 详解 go OAuth2.0 第三方登录应用 Go Admin工程安装 架构分析和各模块精讲 cobra命令行实战 casbin权限管理 RBAC实践、多租户实践 添加新应用 添加新模块 自动生成代码 配置权限 swagger api 传统 elk 解决方案及其弊端 日志收集服务开发 etcd 管理主要信息收集 配置文件热更新 kafka 日志收集 elasticsearch 日志分析 支持单个、多个、广播消息推送 心跳检测(应用心跳和tcp、keepalive、http log pulling) 接入层支持多协议(websocket,tcp,http) 可拓扑的架构(job、logic模块可动态无限扩展) 基于Kafka做异步消息推送 注册发现服务 消息协议设计(基于protobuf) goim推送服务架构分析 grpc客户端服务端编程 Docker k8s 基本架构、涉及概念、隔离机制 操作命令及案例:生命周期管理、容器运维操作、镜像及镜像仓库,负载均衡案例 Docker镜像:镜像构建,Dockerfile 存储:数据共享、数据备份和还原 Docker Compose:操作命令、配置文件 容器监控与CI/CD:监控命令、监控工具,gitlab持续集成案例 基本概念和术语、安装与升级 kubectl 命令操作:基本语法、基础操作、应用部署、集群管理、故障排除和调试 命令 Pod定义语法 Service定义语法 Pod中容器健康检查:存活检查、就绪检查、启动检查 Pod的部署:Deployment部署Pod、DaemonSet部署Pod、静态Pod Service的四种发布类型:ClusterIP、NodePort、ExternalName、LoadBalancer Pod中运行容器、Init容器、Pod中容器生命周期函数 无选择符Service 无头Service:有选择符Service、无选择符Service Service发现机制 Service TLS 案例 Ingress与Ingress Controller Ingress暴露Service:默认后端、扇出、基于名称的虚拟托管 Ingress TLS 案例 MetalLB与Service LoadBalancer、Ingress 配置:ConfigMap与Secret 存储:hostPath、emptyDir、ConfigMap、Secret、PVC 网络:bridge驱动、host驱动 Swarm集群:集群管理、节点管理、服务管理、Compose Deploy 短信服务 邮件服务 验证码 对象存储 日志服务 标准直播 云点播 人脸核身 文字识别 多媒体创作引擎 压测大师 短信验证码 短信模板管理 邮件模板管理 邮件推送 邮件黑名单 客户端接入 服务端接入 数据直传 数据安全 数据处理 静态网站 API日志采集 Loglistener 实时采集 日志主题 延播管理 直播流管理 录制管理 鉴权 鉴黄 通过API将网络媒体拉取并上传到云点播 服务端上传视频到云点播 web端上传视频到云点播 视频处理 照片人脸核身 活体人脸核身 活体人脸对比 车牌识别 通信行程卡识别 点播转直播 多平台同步直播 使用视频编辑模板导出视频 并发测试 负载测试 接口测试 压力测试 零声服务 适宜工程师人群 参考书籍 学习方法大5点 学习方法小5点 从事后端开发3~5年,想转go语言的后端开发工程师 从事后端开发多年,工作中需要使用go语言开发的工程师 工作没什么挑战,对go语言的应用不够深入,技术栈比较单一的go工程师 工作中使用到容器化,但是对容器化方面知之甚少的go工程师 计算机相关专业的在校生或应届毕业生,本科以上学历,有任意后端语言基础 根据课程大纲从基础篇入手逐步深入 多想,遇到任何问题,深入思考找到真正的问题 多练,通过练习将知识点融汇贯通 多问,通过自己思考和尝试仍不理解的问题,多找老师沟通 多讨论,找身边的同时朋友讨论技术问题 每节课程先预习课件,提出一些疑问,再看视频学习,看完一遍视频之后再练习 课后总结:学到什么,可以在哪些场景应用,没学懂的内容有哪些,反复学习练习 将学到的内容以文档、博客或其他形式向外输出,通过这种方式整理知识点之间逻 辑关系,加强学习效果 如果可以,建议参加零声学院的费曼学习计划,巩固所学知识 通过自己努力搞不懂的问题,积极与老师沟通 《Go 语言底层原理剖析》 《Docker 实践》 《Docker 容器与容器云 第2版》 《Kubernetes 权威指南 第4版》 《云原生应用框架》 目标岗位 Golang开发工程师 高级Golang开发工程师 Golang服务端开发工程师 中台后端开发(Go语言) 运维开发工程师(Go语言)