零声教育Golang云原生课程大纲4.1
零声教育
2022-08-01
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 邮件推送服务 验证码 对象存储 日志服务 云直播 云点播 人脸核身 文字识别 短信服务 客户端接入 服务端接入 静态网站托管 图片压缩与图片样式 web数据直传 私有读与CDN鉴权 SDK方式采集日志 日志服务控制台 域名配置 直播流管理 延播管理 拉取上传 服务端上传 媒体资源信息获取 照片人脸核身 活体人脸核身 活体人脸对比 车牌识别 通信行程卡识别 零声服务 适宜工程师人群 参考书籍 学习方法大5点 学习方法小5点 从事多年后端开发,想转go语言的工程师 目前从事go语言开发,技术栈比较单一的golang工程师 计算机相关专业的在校生或应届毕业生,本科以上学历,有任意后端语言基础 根据课程大纲从基础篇入手逐步深入 多想,遇到任何问题,深入思考找到真正的问题 多练,通过练习将知识点融汇贯通 多问,通过自己思考和尝试仍不理解的问题,多找老师沟通 多讨论,找身边的同时朋友讨论技术问题 每节课程先预习课件,提出一些疑问,再看视频学习,看完一遍视频之后再练习 课后总结:学到什么,可以在哪些场景应用,没学懂的内容有哪些,反复学习练习 将学到的内容以文档、博客或其他形式向外输出,通过这种方式整理知识点之间逻 辑关系,加强学习效果 如果可以,建议参加零声学院的费曼学习计划,巩固所学知识 通过自己努力搞不懂的问题,积极与老师沟通 《Go 语言底层原理剖析》 《Docker 实践》 《Docker 容器与容器云 第2版》 《Kubernetes 权威指南 第4版》 《云原生应用框架》 目标岗位 Golang开发工程师 高级Golang开发工程师 Golang服务端开发工程师 中台后端开发(Go语言) 运维开发工程师(Go语言) Go入门必备 第一个golang程序 golang实现ping操作 课程管理系统 内存缓存系统 文件读写 mysql数据库读写 redis读写 生产者消费者模式 TCP文件传输 UDP实现DNS请求 main函数与main包 编译与运行 包与文件夹 包与访问修饰符 go mod 依赖管理 命令行参数接收 创建ICMP连接 ICMP校验和计算 发送ICMP请求和并接收响应 数据存储实现 数据访问层实现 对象工具方法实现 业务接口实现 接口的实现 工具方法实现 通过协程清空过期缓存 单元测试与缓存系统调用 将日志写入到文件 IO操作 第三方库解析yaml文件 字符串操作解析yaml文件 mysql驱动引用 连接池初始化 增删改查基本操作 事务 redigo的引用 redis连接池的创建与使用 redis 面向对象的抽象 生产者消费者四种情形介绍 异步IO输出 一对一模式 一对多模式 多对一模式 多对多模式 TCP Server端 TCP Client端 TCP文件上传 TCP文件下载 DNS请求报文结构讲解 UDP Server端 UDP Client端 构建DNS请求数据 发送DNS请求并接收响应 DNS响应报文解析 DNS请求验证 邮件及邮件模板 ses邮件推送 smtp邮件推送 短信签名与短信模板 短信发送接口实现 验证码短信发送实现 控制台操作 课程数据 时长:150小时 文档数:125 代码量:35000+ 项目:24(入门9个、实战项目6个、公有云项目9个) 从事多年后端开发,想发展第二开发语言的工程师 学习周期:每天学习加练习3小时,预计3个月 热门中间件:9个 6大课程板块 入门必备:学习go语言基本语法与编程风格 编程基础与核心技能:概括性的学习go语言基础以及go语言核心编程技能 go后台中间件编程:学习目前市面热门中间件,提高面试和工作能力 go项目实战开发:巩固基础,提高项目实战能力 go云原生:学习云原生部署以及基本的运维开发能力 公有云项目实战:从实际出发,学习常用公有云服务二次开发