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

news/2024/7/4 7:59:47 标签: 云原生, golang, docker

3-6个月帮助学员掌握golang后端开发岗位必备技术点
教程时长: 150+小时
五大核心专栏,原理+源码+案例分析+项目实战直击工作岗位

golang:解决go语言编程问题
工程组件:解决golang工程化问题
分布式中间件:解决技术栈单一及分布式开发问题
云原生:解决云原生分布式部署及监控和运维的问题
场景化解决方案:项目实战、提供实际的分布式解决方案以及解决方案落地

一、Golang

下开发环境安装配置

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

golang_16">golang基础

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

golang_24">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 教程

在这里插入图片描述


http://www.niftyadmin.cn/n/5083708.html

相关文章

嵌入式面试常见问题(一)

目录 1.什么情况下会出现段错误? 2.swap() 函数为什么不能交换两个变量的值 3.一个函数有六个参数 分别放在哪个区? 4.定义一个变量,赋初值和不赋初值分别保存在哪个区? 5.linux查看端口状态的命令 6.结构体中->和.的区…

Vue3路由引入报错解决:无法找到模块“xxx.vue”的声明文件 xxx隐式拥有 “any“ 类型。

这类情况应该遇见过吧,这是因为 TypeScript只能理解 .ts 文件,无法理解 .vue 文件。 解决方法:在项目的根目录或者src文件夹下创建一个后辍为 文件名.d.ts 的文件,并写入一下内容: declare module *.vue {import { …

chatGPT讲师AIGC讲师叶梓:大模型这么火,我们在使用时应该关注些什么?-5

以下为叶老师讲义分享: P25-P28 提示工程的模式 9、翻译是一种转化。 由于人类对语言理解的巨大需求,翻译涉及 ChatGPT 翻译和转换不同的语言或术语。10、推理模式下,可以让 ChatGPT 观察和推断未知的事实或逻辑关系。 它的价值在于提供更…

YOLOv8血细胞检测(17):极简的神经网络模型 VanillaNet---VanillaBlock助力检测实现涨点的同时降低参数量 |华为诺亚2023

💡💡💡本文独家改进:VanillaBlock极简的神经网络,引入到YOLOv7实现涨点的同时降低参数量 VanillaBlock | 亲测在血细胞检测项目中涨点,map@0.5 从原始0.895提升至0.90,YOLOv8n GFLOPs 8.1降低到6.2 收录专栏: 💡💡💡YOLO医学影像检测:http://t.csdnimg.…

以数据为中心 的AI v.s. 以模型为中心的AI

原文:Data-Centric AI vs. Model-Centric AI Introduction to Data-Centric AI 当你学习关于机器学习相关的课程时,通常是给你一个清洁好的数据,你的任务是利用这个数据集训练出一个最好的模型。所有在机器学习课程教的技巧都是为了这个目标&#xff1…

L05_SpringBoot入门

SpringBoot入门 浅谈Restful风格代码实现(并且通过Apifox进行接口测试[以传入json格式数据为例])首先创建一个SpringBoot项目,pom文件包引入如下下面在新建src创建com.ndky.controller包,然后再在包内创建一个HelloController类编写(一个简易的restful风格的代码)编写GET请求代…

单片机课程设计(Integrate就医服务平台/医院信息化平台)

目录 摘要 改善现有门诊流程的对策 一、设计任务 二、整机方案和论证 三、系统各模块设计与理论分析 3.1.1、触摸屏及LCD显示的工作原理 3.1.2、语音对讲模块设计 3.1.3、语音/文本转化模块设计 3.1.4、按键模组设计 3.1.5、存储模块设计 3.1.6、USB模组设计 3.1.7…

arm day 8

arm 写一段按键中断代码 main.c #include "uart.h" #include "key_it.h" int main() {char c;char *s;uart4_init();//串口初始化//中断初始化key_it_config();while(1){//保证主程序不结束}return 0; } src/key_it.c #include"key_it.h"voi…