使用Spring Cloud与Kubernetes构建微服务架构课程
课程天数:3天
课程介绍
学习本课程,学员将会对微服务、Spring Cloud、Docker、Kubernetes有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构;随后,讲解如何将应用容器化、如何实现资源的合理分配、并将应用部署到Kubernetes平台。
课程收益
• 使学员理解微服务是什么、有什么好处、设计原则、拆分原则;
• 深入理解Spring Cloud核心组件及相关扩展钩子,能够使用Spring Cloud开发微服务,并具备二次开发Spring Cloud的能力;
• 深入理解Docker核心概念及常用知识点,能够使用Docker常用命令、构建Docker容器,并将应用部署在Docker中;
• 深入理解Kubernetes核心概念及常用知识点,能够在Kubernetes中部署应用,并具备解决问题的能力。
培训对象
• 对Spring Cloud感兴趣的Java开发人员;
• 对Docker感兴趣的运维人员;
• 对微服务感兴趣的架构师;
课程大纲
模块一:微服务架构及概述
• 架构的演进史
• 微服务诞生背景
• 微服务架构的优点与挑战
• 微服务的设计原则
• 如何拆分微服务
模块二:Spring Boot必知必会
• Spring Boot是什么?
• 使用SpringInitialzr快速创建应用
• 编写第一个SpringBoot应用
• Spring Boot配置格式
• Spring Boot配置管理
• Spring Boot监控
模块三:Spring Cloud是什么
• Spring Cloud简介、核心功能、特点
• Spring Cloud版本简介及与Spring Boot的兼容性
• Spring Cloud子项目与提供的能力
• 服务提供者与服务消费者
• 编写一个分布式的应用,包含2个微服务
模块四:服务注册与服务发现-Eureka
• 服务注册与服务发现作用与原理剖析
• Eureka简介与架构剖析
• 编写Eureka Server
• 高可用
• 元数据【重要的扩展钩子】
• RESTful API【重要的能力钩子】
• 自我保护模式【重要特性】
• 健康检查【作用、存在的坑以及总结】
模块五:客户端侧负载均衡-Ribbon
• 负载均衡原理剖析
• Ribbon简介
• 引入Ribbon后的架构演进
• 编写第一个Ribbon Client
• 使用代码自定义Ribbon的配置
• 使用配置自定义Ribbon的配置
• Eager Load
模块六:声明式的HTTP客户端-Feign
• Feign简介
• 编写第一个Feign Client
• 使用代码自定义Feign的配置
• 使用配置自定义Feign的配置
• 继承特性
• 压缩
• 日志
• 构造多参数请求
模块七:断路器-Hystrix
• 雪崩效应及危害
• 容错的方案有哪些?
• Hystrix简介
• 整合Hystrix
• Hystrix配置详解
• Feign使用Hystrix
• 使用FallbackFactory检查回退原因
• Feign启用/禁用Hystrix
• Hystrix监控
• Hystrix Dashboard可视化监控数据
• Turbine简介
• 编写Turbine Server
• 消息中间件模式
模块八:API Gateway-Zuul
• 网关的必要性
• Zuul是什么
• 编写一个API Gateway
• 监控端点
• 路由配置详解
• 过滤器详解
• 容错与回退
• 高可用
• Debug Zuul
• Zuul实现认证与授权
• Zuul实现限流与降级
模块九:配置中心-Spring Cloud Config
• 为什么要使用配置中心
• Spring Cloud Config简介
• 编写ConfigServer
• 集成ConfigClient
• Git仓库配置详解
• 配置属性加解密
• 配置手动刷新
• 自动刷新-SpringCloud Bus
• Config Server与Eureka配合使用
• 安全
• 高可用
• 业界常用的配置中心Disconf、Apollo、Diamond等于Spring Cloud Config的对比与取舍;
• Kubernetes ConfigMap/Secret与Spring Cloud Config的取舍
模块十:调用链监控-Spring Cloud Sleuth
• 为什么要实现调用链跟踪
• Sleuth是什么?
• 链路跟踪原理剖析
• 整合Sleuth
• Zipkin简介
• Zipkin Server编写
• Zipkin UI
• 微服务整合Zipkin
• 使用Elasticsearch作为Zipkin Server的后端存储
• 依赖关系图
模块十一:微服务安全
• 处处安全方案
• 外部无状态内部有状态方案
• 外部无状态,内部裸奔方案
• 我们选择的方案
• 代码实现
模块十二:Docker入门
• Docker简介
• 安装Docker
• 镜像加速器
• Docker常用命令
模块十三:Dockerfile详解
• Dockerfile指令详解
• Dockerfile最佳实践
• 使用Dockerfile构建Spring Cloud应用镜像
模块十四:镜像管理
• Docker Hub
• Docker Registry
• 第三方Docker Registry:Nexus/Habor
• 安装Nexus或Habor,并使用其管理镜像
模块十五:Docker工具
• 使用Maven构建Docker镜像
• 可视化管理工具
模块十六:Docker Compose
• Compose的安装
• 快速入门
• docker-compose.yml常用命令
• docker-compose常用命令
• 控制服务启动顺序
• 在生产环境中使用Docker Compose
• 使用Docker Compose伸缩应用
模块十七:Kubernetes入门
• 安装(minikube)
• Kubernetes架构
• 基本组件及常用插件
• Kubernetes命令详解
模块十八:Kubernetes术语及详解
• 主要是根据Kuberntes官方文档描述进行系统讲解
• 每个Kubernetes都会有1-2个实战例子