高级微服务培训
第一部分:微服务之基本概念
培训概要:
想要在快速变化的市场中获得竞争优势,需要打造快速交付的团队。但规模化软件开发团队带来快速交付的困局,解决的思路就是微服务。然而,只有准确理解微服务,理解微服务的“小而专”、“去中心化技术治理与数据管理”,才能真正发挥微服务的优势。
培训收益:
1. 理解为什么微服务架构是应对当今激烈市场竞争的解决之道
2. 理解规模化团队的组织形式:跨功能团队与微服务架构
3. 理解微服务架构如何支持技术架构的快速演化
4. 理解微服务架构如何支持未来新技术的转型
培训内容:
1. 快速变化的年代需要快速交付
1)快速变化的市场与快速更迭的技术带来发展机遇
2)激烈竞争的新兴市场需要更快速的交付去占领市场
2. 规模化团队快速交付的困局
1)烟囱式的开发团队导致烟囱式的软件开发
2)烟囱式的软件开发导致烟囱式的软件交付
解决思路:
1)跨功能团队(特性团队)的组织形式
2)将单体应用改为微服务架构
3. 准确理解微服务架构
1)准确理解微服务架构“小而专”的概念提高设计质量
3) 准确理解微服务“去中心化的技术治理”去快速技术演化
3)准确理解微服务“去中心化的数据管理”做大数据转型
第二部分:微服务之技术组件
培训概要:
带着学员搭建一套微服务的系统,将其运行起来,在实战的过程中理解微服务的注册中心、生产者、消费者、断路器、服务网关等技术组件的原理与设计过程,从实践中来,到实践中去。
培训收益:
1. 切实搭建一套微服务系统并运行起来
2. 掌握微服务设计中的各个组件及其参数配置
3. 掌握微服务的服务网关及其安全组件、智能路由、服务迁移
4. 掌握微服务设计的熔断机制、线程隔离、服务降级、限流措施等方面的设计
5. 了解服务网格(Service Mesh)的基本原理及其设计
培训内容:
1. 注册中心的概念与作用
1)Dubbo的简介
2)Zookeeper的简介
3)ETCD的简介
4)Netflix Eureka的简介
2. Spring Cloud Eureka方案
1)Spring Cloud Eureka的系统架构
2)Eureka Server的设计
3)Eureka Client的设计
4)服务发现的设计
Ø 使用ribbon的设计
Ø 使用feign的设计
4) 熔断机制
断路器设计模式
Ø 线程池隔离、优雅降级与熔断
Ø Hystrix的断路器设计
3.微服务的安全措施与服务网关设计
1)多渠道用户接入
2)请求合法性与用户鉴权
3)灰度发布、金丝雀测试与全链路压测
4)服务降级、流量控制与节流
4.路由网关(zuul)的设计
1)智能路由与服务迁移
2)过滤器的设计与配置
3)Zuul的高可靠设计
5.服务网格(Service Mesh)
1)Spring Cloud的跨语言调用
3) 服务网格的基本概念及其设计
3)Linked、Istio、Sofa MOSN服务网格框架
第三部分:微服务之设计模式
培训概要:
通过实际案例举例,讲解如何运用6种设计模式进行微服务的设计,并且在设计过程中讲解微服务开发经常遇到的一些设计难题及其解决方案,诸如:跨库的关联查询、跨库的事务处理、异步化操作、无状态设计,以及与大数据技术的结合。
培训收益:
1. 掌握如何运用6种设计模式进行微服务的设计
2. 掌握如何解决跨库的关联查询、跨库的事务处理、异步化操作等设计难题
3. 掌握微服务设计应注意的反模式及其设计陷阱
4. 掌握微服务进行业务拆分的设计原则
培训内容:
1.微服务架构的6种设计模式
1)聚合模式
案例:电商网站购物功能的设计
Ø 微服务前后端分离的设计
Ø 分布式事务的两阶段提交
Ø TCC方案与阿里GTS
Ø 采用分布式事务解决跨库的事务操作
案例:电商网站下单服务的设计
单一职责原则与领域驱动设计
Ø 互联网纵向切分在微服务的实现
Ø 纵向切分应当注意的设计问题
Ø 避免跨库关联查询的方案设计
2)代理模式
案例:电商网站支付功能的设计思路
3)链式模式
4)分支模式
5)异步消息模式
案例:12306的异步化操作
案例:电商网站异步化操作的微服务实现
6)数据共享模式
高并发写入的分布式设计方案
案例:TiDB数据库的分布式方案
如何实现高并发大数据查询场景
案例:MongoDB实现大数据秒级查询
2.微服务的无状态设计
1)Session管理的设计难题
Ø 2)微服务的无状态设计
Ø 3)基于http/rest的无状态低耦合通讯
3.微服务设计的反模式
1)太多数据迁移
2)数据共享反模式
3) 频繁交互反模式
探讨:如何解决微服务接口太多的问题
第四部分:微服务之进阶实战
培训概要:
老师带着学员演练在真实项目中该如何开发微服务,包括微服务的父项目、多套配置文件、集中式的配置中心,以及如何架构一个既支持微服务又支持领域驱动的技术中台,既能够降低技术门槛,减少开发工作量,又能够易于业务变更,易于架构演化。
培训收益:
1. 掌握在真实项目中切实可行地开发微服务
2. 掌握高可靠的微服务架构设计
3. 掌握微服务的性能测试及性能调优
培训内容:
1. 演练在真实项目中开发微服务
1)微服务项目中父项目的设计
2)微服务项目中多套配置文件的设计
3)微服务项目中集中式配置中心的设计
2. 演练在真实项目中高可靠微服务架构
1)高可靠注册中心的设计
2)高可靠服务网关的设计
3. 演练在真实项目中微服务的性能测试
1)断路器监控Turbine及其应用实践
2)链路跟踪Zipkin与微服务路由优化的应用实践
4) 微服务的灰度发布及其金丝雀测试
4) 微服务的全链路压测应用实践
第五部分:微服务之自动化运维
培训概要:
运维微服务架构还需要强大的运维平台支持,也就是打造一整套DevOps自动化运维体系。这个体系包括:持续探索、持续集成、持续交付,以及在这个过程中的自动化测试与运维。老师将带领学员实际操作如何搭建这样的平台,如何自动化部署微服务,以及用Prometheus、EFK运维。
培训收益:
1. 理解DevOps的概念、作用,以及在微服务架构中如何快速交付
2. 实操Git+Jenkins+Docker+Kubernetes自动化运维体系
3. 实操Eureka+Config+Turbine+Zipkin在k8s中的云端部署
4. 实操Prometheus+Grafana+EFK的线上系统监控与日志采集
培训内容:
1. 微服务架构需要DevOps自动化运维
1)剖析传统运维存在的“交付困难”的困局
2)Who build who run it与DevOps的概念
3)敏捷团队快速交付的持续探索、持续集成、持续交付与按需发布
4)DevOps带来开发人员的负担与自动化运维
2. 自动化运维的工作原理
1)Docker容器技术与发布标准化
2)分布式容器部署与Kubernetes
3)实操Git+Jenkins+Docker+Kubernetes的自动化部署过程
3. 打造微服务架构的自动化运维体系
1)注册中心Eureka在Kubernetes的分布式部署
2)配置中心Config在Kubernetes的分布式部署
3)断路器监控Turbine与路由优化Zipkin
4. 微服务云端架构的系统监控与日志采集
1)Kubernetes的系统监控工具Prometheus+Grafana
2)Kubernetes的日志采集工具EFK