课程简介
本课程从实践的角度出发,首先阐述了单块架构存在的弊端以及微服务的理论基础。接着通过实践部分,让读者能够体验从零开始搭建第一个微服务的过程,包括代码静态检查、基础设施构建、 Docker映像构建及部署、持续交付流水线、服务的日志聚合以及监控和告警。
目标收益
探讨在微服务的实践过程中所积累的经验,包括基于 HAL的通信机制、消费者驱动的测试,并通过一个真实的案例,帮助读者更好地理解微服务架构所带来的灵活性、易扩展性和独立性。
培训对象
该课程适应于各类技术人员.细粒度的微服务架构包含了很多方面的内容,所以本课程涉及范围很广,适用于对系统的设计、开发、部署、测试和运维感兴趣的人们。对于那些已经走上更细粒度架构之路的人,无论是开发新应用,还是拆分现有的单块系统,都会因课程里很多的实用建议而受益。对于想要了解微服务方方面面的人,也可以帮助你确定微服务是否适合你。
课程大纲
第1单元 微服务架构概述 |
内容一:微服务架构诞生—为什么出现微服务架构 1.单块架构及其面临的挑战 2.分层应用架构 3.单块架构特点 4.单块架构面临的挑战 5.通过某传统ERP系统为案例分析上线后问题 内容二:微服务架构 1.为什么需要微服务架构 2.如何解决传统应用架构的问题 3.微服务架构是什么 4.微服务架构概念 5.微服务架构参考架构模式 6.通过分析多个微服务架构案例,了解微服务架构的参考模式 |
第2单元-微服务架构—服务分解和建模 |
内容一:微服务分解和服务颗粒度 1.微服务架构构成(服务拆分、服务拓扑关系图); 2.微服务架构设计原则; 3.微服务架构服务粒度设计; 4.微服务架构之我们的实践案例; 5.通过大量项目案例分析,什么是好的服务,服务的分解和服务颗粒度 内容二:微服务建模 1.如何建模服务 2.什么样的服务是好服务 3.微服务的松耦合和高内聚 4.微服务限界上下文 5.微服务的业务功能 6.逐步划分服务上下文 7.微服务与业务概念 8.微服务技术边界 9.通过案例分析微服务建模 |
第3单元-微服务架构设计开发实现—基于SpringBoot和SpringCloud 动手实现一个完整的微服务 |
内容一:微服务架构开发实现---SpringBoot 1.Spring Boot概述 2.运用Spring Boot 3.Groovy与Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot应用程序 7.Spring Boot 的数据访问 8.Spring Boot 企业级开发 9.Spring Boot 开发部署与测试 10.多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑) 内容二:微服务架构与云架构--Spring Cloud平台 1.云计算平台架构 2.为什么选择Spring Cloud 3.Spring Cloud 4.服务治理:Spring Cloud Eureka 5.客户端负载均衡:Spring Cloud Ribbon 6.服务容错保护:Spring Cloud Hystrix 7.声明式服务调用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息总线:Spring Cloud Bus 10.多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构内容一:微服务架构开发实现---SpringBoot 1.Spring Boot概述 2.运用Spring Boot 3.Groovy与Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot应用程序 7.Spring Boot 的数据访问 8.Spring Boot 企业级开发 9.Spring Boot 开发部署与测试 10.多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑) 内容二:微服务架构与云架构--Spring Cloud平台 1.云计算平台架构 2.为什么选择Spring Cloud 3.Spring Cloud 4.服务治理:Spring Cloud Eureka 5.客户端负载均衡:Spring Cloud Ribbon 6.服务容错保护:Spring Cloud Hystrix 7.声明式服务调用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息总线:Spring Cloud Bus 10.多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构 |
第4单元--微服务架构基础框架和平台 |
内容一:微服务基础\平台 1.微服务架构设计之开发框架选择(Spring Boot); 2.微服务架构设计之容器选择(Docker); 3.微服务架构设计之服务注册选择(Zookeeper、Etcd、Consul); 4.微服务架构设计之服务网关选择(Nginx、Node.js、Netflix Zuul); 5.微服务架构设计之自动化部署选择(Jenkins、GitLab CI); 6.微服务的安全机制与OAuth2.0实现 7.微服务架构设计之最佳实践案例; |
第5单元--微服务注册与发现,服务路由,统一配置中心 |
内容一:微服务注册与发现 1.为什么要服务注册 2.服务注册实现方式 3.使用NetflixEureka/SpringCloud实现服务注册 4.使用NetflixRibbon/SpringCloud实现客户端负载均衡 5.为什么要服务发现 6.服务发现的实现方式 7.使用Spring和Netflix Eureka进行服务发现实战 内容二:微服务负载均衡和路由,容错 1.负载均衡 2.容错 3.服务路由 4.微服务间的异步通信机制 5.Spring Clould 的Ribbon实现 内容三:分布式微服务统一配置中心 1.管理配置(和复杂性) 2.配置管理架构 3.构建Spring Cloud配置服务器 4.将Spring Cloud Config与Spring Boot客户端集成 5.分布式配置中心——携程Apollo 6.携程apollo优点 7.apollo架构 8.Apollo分布式配置中心部署 9.Apollo分布式配置中心最佳实践 |
第6单元--微服务网关和过载保护 |
内容一:微服务网关—Zuul 1.使用Spring Cloud和Zuul进行服务路由 2.什么是服务网关 3.Spring Cloud和Netflix Zuul简介 4.在Zuul中配置路由 5.动态重新加载路由配置 6.构建第 一个生成关联ID的Zuul前置过滤器 7.构建动态路由过滤器 8.Zuul网关最佳实践 内容二:微服务断路器—Hystrix 1.什么是客户端弹性模式 2.客户端负载均衡模式 3.断路器模式 4.后备模式 5.舱壁模式 6.使用Hystrix实现断路器 7.对组织微服务的调用超时 8.定制断路器的超时时间 9.线程上下文和Hystrix 10.Hystrix最佳实践 |
第7单元--微服务交付与测试 |
内容一:微服务测试-持续集成与测试 1.微服务测试 2.实现服务测试 3.端到端测试的缺点 4.跨功能的测试 5.微服务的测试策略与PACT测试 6.微服务测试案例分析 内容二:微服务发布 1.微服务架构如何代码控制? 2.微服务架构自动化测试? 3.微服务架构如何预先发布验证? 4.微服务架构如何灰度发布? 5.微服务架构如何自动化发布? 6.使用Docker发布服务; 7..使用Docker-Compose在开发环境中运行多个服务 8.微服务架构设计软件质量保证最佳实践是什么 |
第8单元--微服务架构运维与监控 |
内容一:微服务运维和监控 1.微服务系统设计监控重要性? 2.微服务系统设计监控数据采集方法是什么? 3.微服务系统设计如何监控设计? 4.微服务系统语义监控如何做? 5.微服务系统进程监控如何做? 6.微服务系统错误日志监控如何做? 7.微服务系统设计监控的最佳实践是什么? 8.最佳实践与案例分析 |
第9单元--微服务分布式事务和日志监控 |
内容一:微服务分布式事务 1.本地事务-JDBC实现 2.XA和两阶段事务协议 3.J2EE分布式事务 4.Spring框架与分布式事务 5.CAP原则和BASE原则 6.微服务事务一致性实现策略 7.TCC与分布式微服务架构事务 8.分布式微服务架构最佳实践 内容二:大型微服务分布式日志 1.大数据日志系统的构建 2.开源日志框架的原理分析与应用实践 3.ELK系统的构建与使用 4.Elasticsearch 5.Logstash 6.Kibana 7.大数据日志系统的原理与设计 8.日志系统的容量和性能评估 内容三:微服务分布式跟踪系统—大众点评CAT 1.基于调用链的服务治理系统的设计与实现 2.调用链跟踪的原理 3. 分布式系统的远程调用过程 4.Google Dapper实现 5.大众点评CAT案例分析 6.CAT实现原理 7.CAT部署策略 8.CAT最佳实践 内容一:大型分布式架构核心概念 1.典型大规模互联网系统架构 2.可用性的概念以及设计准则 3.扩展性的概念以及设计准则 4.负载均衡的概念以及设计准? 5.一致性的概念以及设计准则 6.通过大量案例分析以上原则 内容二:降级设计与实践 1.服务限流降级概念; 2.服务限流降级使用业务场景; 3.服务限流降级设计环节; 4.服务限流降级之原则篇、架构篇、框架篇、业务篇; 5.移动时代服务限流降级如何打造; 6.我们的实践案例; 内容三:高可用性设计 1.可用性一般度量 2.可用性实践 3.平均故障间隔时间(MTBF) 4.平均修复时间 5.错误和缺陷率 6.高可用性原则 1: Remember Everything Fails 7.高可用性原则 2: Automate Everything 8.可用性最佳实践-1-错误检测 9.可用性最佳实践-2-错误隔离/恢复/降级或掩盖 10.可用性最佳实践-3-错误预防 11.机器故障自动修复 12.资源故障自动迁移 13.服务故障容灾降级 14.业务容量自动调整 15.架构设计预防; |
第10单元--大型分布式架构设计最佳实践 |
内容一:使用微服务架构改造遗留系统 1.背景与挑战 2.改造策略 3.逐步替换微服务 4.功能剥离和封装 5.依赖数据解耦和基础数据共享 6.通过案例分析微服务架构改造 |
第11单元--使用微服务架构改造遗留系统 |
内容一:使用微服务架构改造遗留系统 1.背景与挑战 2.改造策略 3.逐步替换微服务 4.功能剥离和封装 5.依赖数据解耦和基础数据共享 6.通过案例分析微服务架构改造 |
第1单元 微服务架构概述 内容一:微服务架构诞生—为什么出现微服务架构 1.单块架构及其面临的挑战 2.分层应用架构 3.单块架构特点 4.单块架构面临的挑战 5.通过某传统ERP系统为案例分析上线后问题 内容二:微服务架构 1.为什么需要微服务架构 2.如何解决传统应用架构的问题 3.微服务架构是什么 4.微服务架构概念 5.微服务架构参考架构模式 6.通过分析多个微服务架构案例,了解微服务架构的参考模式 |
第2单元-微服务架构—服务分解和建模 内容一:微服务分解和服务颗粒度 1.微服务架构构成(服务拆分、服务拓扑关系图); 2.微服务架构设计原则; 3.微服务架构服务粒度设计; 4.微服务架构之我们的实践案例; 5.通过大量项目案例分析,什么是好的服务,服务的分解和服务颗粒度 内容二:微服务建模 1.如何建模服务 2.什么样的服务是好服务 3.微服务的松耦合和高内聚 4.微服务限界上下文 5.微服务的业务功能 6.逐步划分服务上下文 7.微服务与业务概念 8.微服务技术边界 9.通过案例分析微服务建模 |
第3单元-微服务架构设计开发实现—基于SpringBoot和SpringCloud 动手实现一个完整的微服务 内容一:微服务架构开发实现---SpringBoot 1.Spring Boot概述 2.运用Spring Boot 3.Groovy与Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot应用程序 7.Spring Boot 的数据访问 8.Spring Boot 企业级开发 9.Spring Boot 开发部署与测试 10.多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑) 内容二:微服务架构与云架构--Spring Cloud平台 1.云计算平台架构 2.为什么选择Spring Cloud 3.Spring Cloud 4.服务治理:Spring Cloud Eureka 5.客户端负载均衡:Spring Cloud Ribbon 6.服务容错保护:Spring Cloud Hystrix 7.声明式服务调用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息总线:Spring Cloud Bus 10.多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构内容一:微服务架构开发实现---SpringBoot 1.Spring Boot概述 2.运用Spring Boot 3.Groovy与Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot应用程序 7.Spring Boot 的数据访问 8.Spring Boot 企业级开发 9.Spring Boot 开发部署与测试 10.多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑) 内容二:微服务架构与云架构--Spring Cloud平台 1.云计算平台架构 2.为什么选择Spring Cloud 3.Spring Cloud 4.服务治理:Spring Cloud Eureka 5.客户端负载均衡:Spring Cloud Ribbon 6.服务容错保护:Spring Cloud Hystrix 7.声明式服务调用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息总线:Spring Cloud Bus 10.多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构 |
第4单元--微服务架构基础框架和平台 内容一:微服务基础\平台 1.微服务架构设计之开发框架选择(Spring Boot); 2.微服务架构设计之容器选择(Docker); 3.微服务架构设计之服务注册选择(Zookeeper、Etcd、Consul); 4.微服务架构设计之服务网关选择(Nginx、Node.js、Netflix Zuul); 5.微服务架构设计之自动化部署选择(Jenkins、GitLab CI); 6.微服务的安全机制与OAuth2.0实现 7.微服务架构设计之最佳实践案例; |
第5单元--微服务注册与发现,服务路由,统一配置中心 内容一:微服务注册与发现 1.为什么要服务注册 2.服务注册实现方式 3.使用NetflixEureka/SpringCloud实现服务注册 4.使用NetflixRibbon/SpringCloud实现客户端负载均衡 5.为什么要服务发现 6.服务发现的实现方式 7.使用Spring和Netflix Eureka进行服务发现实战 内容二:微服务负载均衡和路由,容错 1.负载均衡 2.容错 3.服务路由 4.微服务间的异步通信机制 5.Spring Clould 的Ribbon实现 内容三:分布式微服务统一配置中心 1.管理配置(和复杂性) 2.配置管理架构 3.构建Spring Cloud配置服务器 4.将Spring Cloud Config与Spring Boot客户端集成 5.分布式配置中心——携程Apollo 6.携程apollo优点 7.apollo架构 8.Apollo分布式配置中心部署 9.Apollo分布式配置中心最佳实践 |
第6单元--微服务网关和过载保护 内容一:微服务网关—Zuul 1.使用Spring Cloud和Zuul进行服务路由 2.什么是服务网关 3.Spring Cloud和Netflix Zuul简介 4.在Zuul中配置路由 5.动态重新加载路由配置 6.构建第 一个生成关联ID的Zuul前置过滤器 7.构建动态路由过滤器 8.Zuul网关最佳实践 内容二:微服务断路器—Hystrix 1.什么是客户端弹性模式 2.客户端负载均衡模式 3.断路器模式 4.后备模式 5.舱壁模式 6.使用Hystrix实现断路器 7.对组织微服务的调用超时 8.定制断路器的超时时间 9.线程上下文和Hystrix 10.Hystrix最佳实践 |
第7单元--微服务交付与测试 内容一:微服务测试-持续集成与测试 1.微服务测试 2.实现服务测试 3.端到端测试的缺点 4.跨功能的测试 5.微服务的测试策略与PACT测试 6.微服务测试案例分析 内容二:微服务发布 1.微服务架构如何代码控制? 2.微服务架构自动化测试? 3.微服务架构如何预先发布验证? 4.微服务架构如何灰度发布? 5.微服务架构如何自动化发布? 6.使用Docker发布服务; 7..使用Docker-Compose在开发环境中运行多个服务 8.微服务架构设计软件质量保证最佳实践是什么 |
第8单元--微服务架构运维与监控 内容一:微服务运维和监控 1.微服务系统设计监控重要性? 2.微服务系统设计监控数据采集方法是什么? 3.微服务系统设计如何监控设计? 4.微服务系统语义监控如何做? 5.微服务系统进程监控如何做? 6.微服务系统错误日志监控如何做? 7.微服务系统设计监控的最佳实践是什么? 8.最佳实践与案例分析 |
第9单元--微服务分布式事务和日志监控 内容一:微服务分布式事务 1.本地事务-JDBC实现 2.XA和两阶段事务协议 3.J2EE分布式事务 4.Spring框架与分布式事务 5.CAP原则和BASE原则 6.微服务事务一致性实现策略 7.TCC与分布式微服务架构事务 8.分布式微服务架构最佳实践 内容二:大型微服务分布式日志 1.大数据日志系统的构建 2.开源日志框架的原理分析与应用实践 3.ELK系统的构建与使用 4.Elasticsearch 5.Logstash 6.Kibana 7.大数据日志系统的原理与设计 8.日志系统的容量和性能评估 内容三:微服务分布式跟踪系统—大众点评CAT 1.基于调用链的服务治理系统的设计与实现 2.调用链跟踪的原理 3. 分布式系统的远程调用过程 4.Google Dapper实现 5.大众点评CAT案例分析 6.CAT实现原理 7.CAT部署策略 8.CAT最佳实践 内容一:大型分布式架构核心概念 1.典型大规模互联网系统架构 2.可用性的概念以及设计准则 3.扩展性的概念以及设计准则 4.负载均衡的概念以及设计准? 5.一致性的概念以及设计准则 6.通过大量案例分析以上原则 内容二:降级设计与实践 1.服务限流降级概念; 2.服务限流降级使用业务场景; 3.服务限流降级设计环节; 4.服务限流降级之原则篇、架构篇、框架篇、业务篇; 5.移动时代服务限流降级如何打造; 6.我们的实践案例; 内容三:高可用性设计 1.可用性一般度量 2.可用性实践 3.平均故障间隔时间(MTBF) 4.平均修复时间 5.错误和缺陷率 6.高可用性原则 1: Remember Everything Fails 7.高可用性原则 2: Automate Everything 8.可用性最佳实践-1-错误检测 9.可用性最佳实践-2-错误隔离/恢复/降级或掩盖 10.可用性最佳实践-3-错误预防 11.机器故障自动修复 12.资源故障自动迁移 13.服务故障容灾降级 14.业务容量自动调整 15.架构设计预防; |
第10单元--大型分布式架构设计最佳实践 内容一:使用微服务架构改造遗留系统 1.背景与挑战 2.改造策略 3.逐步替换微服务 4.功能剥离和封装 5.依赖数据解耦和基础数据共享 6.通过案例分析微服务架构改造 |
第11单元--使用微服务架构改造遗留系统 内容一:使用微服务架构改造遗留系统 1.背景与挑战 2.改造策略 3.逐步替换微服务 4.功能剥离和封装 5.依赖数据解耦和基础数据共享 6.通过案例分析微服务架构改造 |