首页
课程中心
专家团队
新闻中心
精彩活动
关于我们

课程中心

微服务+领域驱动实战训练营

  • 主讲老师:范老师
  • 培训天数:2天
  • 公开课费用:线下:5900 线上:4700

近些年,随着互联网的不断发展,市场变化越来越快,需求变更越来越频繁。为了能够跟上市场变化的脚步,在市场竞争中占得先机,越来越多的研发团队选择敏捷开发、快速迭代。然而,越来越庞大的软件系统,越来越复杂的业务逻辑,使得系统维护变得越来越困难,变更成本越来越大,团队工作效率越来越低。许多用户需求需要拖延数月才能交付,使得软件企业痛失有利商机,在市场竞争中处于不利地位。微服务架构正是解决复杂系统的应对之策。

微服务架构将复杂系统化整为零,拆分成一个一个的微服务。然后,将庞大的开发团队拆分成一个一个的独立功能团队,去维护各自的微服务。采用微服务架构降低了团队沟通的成本,降低了系统维护的复杂度,更降低了系统发布的周期,使得我们可以快速交付、快速应对市场需求。

但是,微服务应当如何架构?它有哪些技术特点与技术难点?本课程将会用许多的真实案例讲解,什么是微服务,如何用微服务架构我们的系统,并用工作坊的形式,实际带领学员去架构微服务,在动手中获得知识。

此外,微服务只是工具,只学会工具不行,还要学会如何去运用。微服务背后的理论基础是单一职责原则、领域驱动设计。因此,本课程会带领学员站在更深的层次,去深入领悟单一职责原则的本质,深入学习领域驱动设计的过程,以及如何运用它们在复杂的系统中提高代码质量、应对需求变更,并以此为基础将需求转换为微服务系统的设计。

课程的最后将更加务实地探讨一些在微服务转型过程中大家普遍关心的问题:传统架构如何转型微服务?初创型企业如何建设微服务?成熟型企业开展微服务的思路,以及微服务如何与大数据相结合。

 

培训特色

本课程注重实战,并以工作坊的形式提供很多案例,让学员通过练习掌握微服务架构设计的过程,以及从传统架构向微服务改造的过程。同时,通过大量真实的案例,讲解许多公司在开展微服务转型过程中面临的难题、解决的思路,以及最终的设计。

 

本课程有企业内训形式,授课老师、课程内容、教学方式均依据企业的培训需求灵活设置。

 

本网站内容包括并不限于课程介绍、课程大纲、上课照片、老师介绍等等资料及信息,未经允许不得抄袭和转载。

培训对象

中高级工程师、企业架构师、软件设计师、技术决策/解决方案人员等。

培训内容

时间

内容

第一天 上午

第一单元 微服务架构概述

什么是微服务架构

微服务是未来互联网发展的必然结果

  • 互联网的发展及其面临的挑战

案例:分析淘宝近十年的发展及其面临的挑战

互联网在面临横向扩展、服务隔离等问题的局限

  • 微服务能够更好地解决互联网问题

讲解什么是微服务架构

剖析微服务架构在解决诸多互联网问题时的思路

 

微服务架构是应对快速市场变化的必然结果

  • 技术进步与快速市场变化面临的挑战

市场需要更快速的价值交付与技术迭代

软件规模化发展导致软件交付速度的降低

  • 微服务如何解决规模化敏捷的问题

特性团队组织与微服务架构

去中心化技术治理与去中心化数据管理

第二单元 微服务常用架构

基于Spring Cloud Alibaba的微服务技术框架

  • Spring Cloud简介
  • Spring Boot简介
  • Spring Cloud Alibaba

 

最简版的微服务架构

  • 服务注册与发现Nacos
  • 服务网关Spring Cloud Gateway
  • 微服务及其相互调用Sentinel
  • 配置管理 Nacos

第一天 下午

第三单元 服务注册与发现

Nacos注册中心的方案

  • Nacos的系统架构
  • Nacos Server的设计
  • Nacos Client的设计
  • 服务发现的设计
  • 使用ribbon的设计
  • 使用feign的设计
  • 构建高并发、高可用微服务架构
  • 高可用Nacos集群的搭建
  • 断路器设计模式的原理及其应用
  • 故障转移、线程池隔离、优雅降级与熔断
  • Sentinel的限流措施设计实践
  • Sentinel的服务降级设计实践
  • Spring-retry的故障转移设计实践

 

演练:使用Nacos构建微服务系统

  • 搭建Nacos注册中心与配置中心
  • 用Springcloud开发生产者
  • 用ribbon与feign两种方式开发消费者
  • Sentinel实现微服务间的高可用
  • 实现Sentinel配置的持久化存储

第二天 上午

第四单元 微服务层的设计

微服务架构的6种设计模式

  • 聚合模式

案例:电商网站购物功能的设计

  • 微服务前后端分离的设计
  • 分布式事务的两阶段提交
  • TCC方案与阿里GTS
  • 采用分布式事务解决跨库的事务操作

案例:电商网站下单服务的设计

单一职责原则与领域驱动设计

  • 互联网纵向切分在微服务的实现
  • 纵向切分应当注意的设计问题
  • 避免跨库关联查询的设计
  • 代理模式

案例:电商网站支付功能的设计思路

案例:电商网站多渠道支付的微服务实现

  • 链式模式
  • 分支模式
  • 数据共享模式

案例:微服务+数据中台的建设思路

案例:分布式数据库的架构设计

  • 异步消息模式

案例:12306的异步化操作

案例:电商网站异步化操作的微服务实现

 

微服务的粒度

  • 微服务的拆分原则
  • 微服务的拆分方式

 

微服务设计的反模式

  • 太多数据迁移
  • 数据共享反模式
  • 频繁交互反模式

探讨:如何解决微服务接口太多的问题

第二天 下午

第五单元 领域驱动设计

为什么我们需要领域驱动设计

  • 现如今DDD越来越流行
  • DDD并不能帮助新项目的软件开发
  • DDD真正的作用是日后长期的维护

 

实践DDD的4大难题:

  • 准确理解为什么要采用DDD?
  • 怎样正确地进行业务领域建模?
  • 怎样用领域模型指导开发与变更?
  • 如何设计支持领域驱动的架构设计?

 

DDD真正的作用是应对日后的软件维护

  • 我们现在面对的是快速变化的时代
  • 变更越频繁,代码质量下降越快

案例:演示电商网站付款功能代码质量下降的过程

案例分析:揭示软件退化的根源

  • 系统规模越来越大,系统越来越复杂

案例:演示嵌入式温控系统越来越难于维护的根源

案例分析:领域分析才是解决之道

 

案例分析:演示电商网站付款功能代码质量下降的过程

1. 起初的设计

2. 随后的变更

3. 质量不断下降的过程

 

软件质量下降的根源:

1. 软件总是因变更而变得越来越复杂

2. 软件结构已经不再适应复杂的软件需求

3. 必须要调整软件结构以适应新的软件需求

 

DDD是应对软件复杂性之道

  • 剖析领域驱动的设计思想
  • 服务、实体与值对象的概念
  • 充血模型与贫血模型的设计思路
  • 问题域、子域与限界上下文划分

 

基于领域模型的设计变更

  • 演练基于DDD的设计与变更过程
  • 演练领域模型如何指导数据库设计
  • 演练领域模型如何指导程序设计
  • 聚合、仓库与工厂:傻傻分不清
  • 限界上下文:系统拆分的利器

 

案例:重新演练电商网站付款功能的变更过程

第一个版本的领域模型与设计

第一次变更的分析设计过程

第二场变更的设计实现

第三次变更的设计实现

第四次变更与架构演化

 

汇款、微信转帐

 

汇款信息:

单位名称:北京市海淀区中科院计算所职业技能培训学校

开户行:工行海淀西区支行

账号:0200 0045 1920 0043 667

开户银行代码:1021 0000 0458

 

微信转账:

    步骤一:打开微信,扫描二微码付款时,点击打开微信右下角里的“发现”,在列表界面有一个“扫一扫”选项,点击打开“扫一扫”(如下图):

    步骤二:点击打开“扫一扫”后,会出现一个扫描框,将中科院计算所培训中心二维码/条码放入框内,即可自动扫描,并显示支付信息,输入付款金额。

                                                                                                        

    (中科院计算所培训中心二维码)

 

    步骤三:点击 “添加付款备注”,填写付款人姓名和单位全称,所有信息核对无误后,点击“确认付款”,完成支付。

 

                

 

  • 注意:步骤三是为了尽快确认您的培训费用是否到帐,方便为您查帐,所以一定要把付款人姓名和单位名称填写完整,如果姓名和单位名称超过20个汉字,单位名称可以填写简称。

京公网安备 11010802025851号

 京ICP备14030124号-1  

免费电话

010-82661221

微信咨询

微信客服

在线报名

返回顶部