第一部分 基础知识 |
第一单元 微服务架构概述 |
什么是微服务架构
微服务架构是敏捷开发的必然结果
1. 单体应用的优势与面临的挑战
案例:演示淘宝在系统不断发展的过程中面临的难题
许多系统在不断发展过程中越来越庞大带来的问题
2. 康威定律与人月神话
烟囱式的功能团队导致烟囱式的应用
人员越来越多、沟通越来越困难、工作效率越来越低
3. 未来快速变化的市场需要敏捷团队
更快地交付、更快地反馈、更快地产生价值
敏捷化的开发团队呼唤微服务架构
微服务是未来互联网发展的必然结果
1. 互联网的发展及其面临的挑战
案例:分析淘宝近十年的发展及其面临的挑战
互联网在面临横向扩展、服务隔离等问题的局限
2. 微服务能够更好地解决互联网问题
分析传统架构在解决互联网问题时采用的办法
讲解微服务架构应当是什么样子
剖析微服务架构在解决诸多互联网问题时的思路
微服务架构给测试与运维带来的挑战
1. 微服务架构给测试带来的挑战
微服务架构与持续集成
微服务架构采用的测试工具
2. 微服务架构给运维带来的调整
微服务架构与DevOps
微服务架构的管理与发布过程 |
第二单元 准确认识微服务 |
关于微服务的误解
1. 微服务 vs. SOA
案例:SOA在项目中的应用
案例:微服务在项目中的应用
微服务与SOA的联系与差异
2. 微服务架构的本质
- 由服务组件组成的系统
- 按照业务而不是技术来组织服务
- 做全生命周期的产品而不是项目
- 智能端点与通道扁平化
- 去中心化治理
- 去中心化数据管理
- 自动化运维(DevOps)
- 故障恢复与容错
- 演化式设计 案例:演示出租车调度系统的微服务设计过程
|
第二部分 微服务架构设计 |
第三单元 微服务常用架构 |
最简版的微服务架构
1. 服务注册与发现
2. 服务网关
3. 微服务
4. 配置管理
微服务常用的技术框架
1. Spring Cloud简介
2. Spring Boot简介
|
第四单元 服务注册与发现 |
服务注册与发现的概念与作用
实现服务注册与发现的方案
1. Dubbo的简介
2. Zookeeper的简介
3. Netflix Eureka的简介
Spring Cloud Eureka方案
1. Spring Cloud Eureka的系统架构
2. Eureka Server的设计
3. Eureka Client的设计
4. 服务发现的设计
- 使用ribbon的设计
- 使用feign的设计 5. 熔断机制
- 断路器设计模式
- 线程池隔离、优雅降级与熔断
- Hystrix的断路器设计 6. 高可靠设计与Eureka集群
练习:使用Eureka构建微服务系统
1. Eureka Server
2. Eureka Client
3. 使用ribbon/feign进行微服务间调用
4. 设计熔断器
|
第五单元 微服务层的设计 |
微服务架构的6种设计模式
1. 聚合模式
互联网纵向切分在微服务的实现
纵向切分应当注意的设计问题
避免跨库关联查询的设计
采用分布式事务解决跨库的事务操作
2. 代理模式
互联网横向切分与读写分离在微服务的实现
3. 链式模式
复杂应用场景与生产流水线的设计思路
4. 分支模式
5. 数据共享模式
6. 异步消息模式
案例:微服务实现异步化操作
微服务的粒度
1. 微服务的拆分原则
2. 微服务的拆分方式
微服务设计的反模式
1. 太多数据迁移
2. 数据共享反模式
3. 频繁交互反模式
探讨:如何解决微服务接口太多的问题 |
第六单元 服务网关 |
服务网关在微服务架构中的作用
1. 多渠道用户接入
微服务前后端分离的架构设计
2. 微服务的负载均衡
负载均衡的难题:Session管理
3. 路由网关(zuul)
蓝绿发布、滚动发布、灰度发布与金丝雀发布
权限验证与安全保障
路由网关的设计实现
4. 流量控制与节流
练习:设计服务网关、路由网关与断路器
|
第七单元 Docker与容器技术 |
Docker简介
1. Docker vs. 虚拟化
2. Docker的运行方式
3. Docker的基本操作
将微服务部署到Docker中
演练:微服务在Docker中的部署过程
练习:模拟构建一个微服务系统
|
第八单元 配置管理与DevOps |
DevOps简介
1. 微服务为什么需要DevOps
2. 微服务的测试过程
3. 微服务的发布过程
微服务配置中心
1. Spring Cloud Config的配置过程
2. Spring Cloud Config的发布过程
微服务的分布式运维
1. Kubernetes简介
2. 用Kubernetes进行分布式运维
探讨:如何构建一个微服务运营平台 |
第三部分 微服务的系统设计 |
第九单元 领域驱动设计 |
所有软件企业不得不面对的问题
1. 我们现在面对的是快速变化的时代
2. 软件研发却出现了问题:
变更越频繁,代码质量下降越快
案例:演示电商网站付款功能代码质量下降的过程
3. 揭示软件退化的根源
案例:演示软件退化的过程与高质量设计的过程
深度解读高内聚与单一职责原则
领域驱动设计
1. 软件变更过程中的设计难题
2. 领域驱动的设计思想
案例:重新演练电商网站付款功能的变更过程
第一个版本的领域模型与设计
- 构建用例模型
- 构建领域模型
- 构建领域事件 第一次变更的分析设计过程
- 演示领域分析不断深入的过程
- 演示领域驱动指导软件变更的过程 第二次变更与两顶帽子的设计方式
第三次变更与限界上下文
- 聚合、工厂、仓库的设计
- 限界上下文与微服务 3. 领域驱动的设计实现
贫血模型 vs. 充血模型
领域驱动在传统架构中的实现
领域驱动在微服务架构中的实现
在微服务中使用领域事件
1. 认识领域事件
2. 事件风暴(Event Storming)
3. 聚合、聚合根及其应用
4. 工厂、仓库及其设计实现
5. 限界上下文与微服务
案例:智慧诊疗系统的领域驱动过程
软件架构如何支持领域驱动
1. 架构调整不是件简单的事儿
如何实现业务领域层与技术框架的解耦
如何简化业务实现的过程
2. 架构设计如何支持领域驱动
增删改如何支持领域驱动
查询如何支持领域驱动
3. 微服务架构如何支持领域驱动
案例:一个简单、易于开发的微服务架构
如何实现前端微服务化的设计
|
第十单元 传统架构的微服务转型 |
传统架构微服务转型的过程
1. 技术转型
准备工作:Maven→Spring boot
整理分层:MVC层与BUS层的分离
建立微服务:注册中心、服务网关与微服务
2. 业务拆分
构建领域模型与限界上下文
业务与数据库的纵向切分
练习:将一个传统架构的软件改造成微服务
初创型企业的微服务建设过程
案例:某智慧医疗系统的建设过程
1. 系统的建设规划
2. 系统的分析设计过程
3. 微服务架构设计与对外接口
4. 微服务运营平台的建设
成熟型企业开展微服务的思路
1. 成熟企业开展微服务的难题
2. 记录型系统 vs. 交互型系统
3. 在混合云中构建交互型系统
案例:某金融企业向微服务转型的过程
大数据+微服务的转型过程
案例:某风控系统的大数据+微服务的转型过程
1. 该风控系统的背景介绍
2. 互联网转型带来的机遇与挑战
3. 后端大数据的转型过程
4. 前端微服务的转型过程
5. 构建风险分析模型的AppStore平台
探讨:大数据如何与微服务相结合 |
如果您想学习本课程,请
预约报名
如果没找到合适的课程或有特殊培训需求,请
订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表下载请点击
服务优势:
丰富专家资源,精准匹配相关行业,相关项目技术精英,面向用户实际需求,针对性培训或咨询,互动式交流,案例教学,精品小班,实际工程项目经验分享,快捷高效,节省时间与金钱,少走弯路与错路。
专家力量:
中国科学院相关研究所高级研究人员
西门子,TI,vmware,MSC,Ansys,MDI,Mentor, candence,Altium,Atmel 、Freescale,达索,华为等
大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关学历背景专业,理论素养高
多年实际项目实践,大型复杂项目实战案例分享,热情,乐于技术分享
针对客户实际需要,真实案例演示,互动式沟通,学有所值