领域驱动与微服务架构
Mac Fan 查看讲师
百林哲咨询(北京)有限公司专家团队成员
现任某信息有限公司高级系统架构师,资深技术专家。从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作,尤其熟悉互联网架构与分析的特点,长期关注软件代码质量。
浏览:4080次
详情 DETAILS

简介

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

然而,微服务应当如何拆分、如何架构?有哪些技术特点与技术难点?如何构建支持微服务的技术中台?如何应对未来的技术更迭?最终又应当如何部署在云端自动化运维呢?为了帮助大家准确理解微服务,合理设计微服务,有效规避微服务转型过程中的那些“坑”,我们特此组织了此次课程。

目标

基础篇

1. 理解为什么微服务架构是应对当今激烈市场竞争的解决之道

2. 理解规模化团队的组织形式:跨功能团队与微服务架构

3. 理解微服务架构如何支持技术架构的快速演化

4. 理解微服务架构如何支持未来大数据的转型

设计篇

1. 准确理解“小而专”与单一职责原则在微服务的设计

2. 掌握领域驱动的业务建模、微服务拆分设计过程

3. 准确理解领域驱动设计中的聚合、限界上下文及领域事件等方法的设计

4. 掌握在需求变更过程中运用领域驱动设计提高设计质量

架构篇

1. 掌握微服务架构过程中的所使用的各自技术组件

2. 演练微服务架构的构建过程

3. 理解微服务架构过程中的技术难题与解决之道

进阶篇

1. 掌握在真实项目中切实可行地开发微服务

2. 掌握既支持微服务又支持领域驱动的技术中台建设

运维篇

1. 理解DevOps的概念、作用,以及在微服务架构中如何快速交付

2. 实操Git+Jenkins+Docker+Kubernetes自动化运维体系

3. 实操Eureka+Config+Turbine+Zipkin在k8s中的云端部署

4. 实操Prometheus+Grafana+EFK的线上系统监控与日志采集

课程时长

2天(12H)

受众人群

1、系统架构师、系统分析师、高级程序员、资深开发人员。

2、涉及到微服务技术转型的团队负责人、规划师、架构师

3、云服务运营服务提供商规划负责人。

培训特色

本课程注重实战,范老师在微服务设计相关领域从业多年,收集了大量的真实案例,会针对项目过程中常见的问题进行汇总、研讨,并最终形成培训教程。通过大量的真实案例,详细地介绍了数据中台建设过程中需要注意的要点以及难点,这些知识都是讲师十几年经验的总结。

分享提纲

基础篇

2H

简介:想要在快速变化的市场中获得竞争优势,需要打造快速交付的团队。但规模化软件开发团队带来快速交付的困局,解决的思路就是微服务。然而,只有准确理解微服务,理解微服务的“小而专”、“去中心化技术治理与数据管理”,才能真正发挥微服务的优势。让我用我的实践带领大家领略微服务的精彩世界。

目标收益:

1. 理解为什么微服务架构是应对当今激烈市场竞争的解决之道

2. 理解规模化团队的组织形式:跨功能团队与微服务架构

3. 理解微服务架构如何支持技术架构的快速演化

4.理解微服务架构如何支持未来大数据的转型

.快速变化的年代需要快速交付

1.快速变化的市场与快速更迭的技术带来发展机遇

2.激烈竞争的新兴市场需要更快速的交付去占领市场

.规模化团队快速交付的困局

1.烟囱式的开发团队导致烟囱式的软件开发

2.烟囱式的软件开发导致烟囱式的软件交付

解决思路:

1.跨功能团队(特性团队)的组织形式

2.将单体应用改为微服务架构

.准确理解微服务架构

1.准确理解微服务架构“小而专”的概念提高设计质量

2.准确理解微服务“去中心化的技术治理”去快速技术演化

3.准确理解微服务“去中心化的数据管理”做大数据转型

设计篇

2H

简介:想要让微服务的优势真正发挥出来,就要“小而专”,提升系统设计质量。其难题就是微服务该如何拆分,解决这些问题的最佳实践就是领域驱动设计。我通过案例给大家演练领域驱动的业务分析过程、领域建模过程,以及如何通过限界上下文进行微服务的拆分,提高微服务的可维护性。

目标收益:

1. 准确理解“小而专”与单一职责原则在微服务的设计

2. 掌握领域驱动的业务建模、微服务拆分设计过程

3. 准确理解领域驱动设计中的聚合、限界上下文及领域事件等方法的设计

4. 掌握在需求变更过程中运用领域驱动设计提高设计质量

.快速变化的时代要求快速交付

1. 快速交付要求代码质量提高,维护成本降低

2. 快速交付带来代码的频繁变更,加剧了代码退化

. 怎样在快速交付过程中保持代码质量

1. 演示代码退化的过程 → 多职责与散弹式修改

2. 追寻代码退化的根源 → 解决方案:两顶帽子

3. 应对复杂应用的解决之道——领域驱动+微服务

. 演练领域驱动设计的过程

案例:在线订餐系统的设计

1. 业务分析:统一语言与事件风暴

2. 领域设计:服务、实体、值对象

3. 微服务拆分:聚合、限界上下文与领域事件

. 业务需求变更

1. 原始需求的设计过程

2. 添加打折促销功能(先在领域模型中分析设计)

3. 添加VIP会员功能(微服务的变更维护)

4. 添加秒杀、预订、闪购等功能(微服务的技术演化)

架构篇(2H

简介:如何架构一套微服务,架构微服务需要面对哪些技术组件,如何在原有的业务系统中进行微服务转型,这个过程中会遇到哪些“坑”,是大家特别关注的几个问题。那么我从实践的角度,带领大家去架构一个微服务,进而探寻微服务在架构过程中会遇到的难题,以及它们的解决思路。

听众收益:

1.掌握微服务架构过程中的所使用的各自技术组件

2.演练微服务架构的构建过程

3.理解微服务架构过程中的技术难题与解决之道

. 演练微服务架构的构建过程

1.降级微服务的注册中心,及其设计实践

2.演练构建注册中心、生产者与消费者的整个过程

3.讲解微服务的熔断机制,及其设计实践

4.讲解微服务的服务降级,及其设计实践

5.讲解微服务的服务网关,及其设计实践

. 微服务架构的工程实践

1.传统项目向微服务的转型过程

2.构建高可靠的注册中心与Eureka集群

3.微服务的跨语言调用,及其设计实践

进阶篇(2H

我带着大家演练在真实项目中该如何开发微服务,包括微服务的父项目、多套配置文件、集中式的配置中心,以及如何架构一个既支持微服务又支持领域驱动的技术中台,既能够降低技术门槛,减少开发工作量,又能够易于业务变更,易于架构演化。

听众收益:

1.掌握在真实项目中切实可行地开发微服务

2.掌握既支持微服务又支持领域驱动的技术中台建设

. 演练在真实项目中开发微服务

1.微服务项目中父项目的设计

2.微服务项目中多套配置文件的设计

3.微服务项目中集中式配置中心的设计


. 打造支持领域驱动+微服务的技术中台

1.降低技术门槛,减少开发工作量 → 制订规范、合理分层、降低复2.易于业务变更,易于架构演化 → 将业务与技术解耦

1)将业务与技术解耦 → 整洁架构与六边形架构

2)提取共性,精简业务代码 → 单Controller,单Dao

3.支持领域驱动,支持微服务 → 通用仓库、工厂及基础设施的设计

1)通用、可配置的DDD仓库与工厂的设计

2)解决跨库的关联查询与事务处理

  3)纯洁的Service与Entity便于不断地架构演化

运维篇

2H

运维微服务架构还需要强大的运维平台支持,也就是打造一整套DevOps自动化运维体系。这个体系包括:持续探索、持续集成、持续交付,以及在这个过程中的自动化测试与运维。我将实操如何搭建这样的平台,如何自动化部署微服务,以及用Prometheus、EFK运维。

听众收益:

1.理解DevOps的概念、作用,以及在微服务架构中如何快速交付

2.实操Git+Jenkins+Docker+Kubernetes自动化运维体系

3.实操Eureka+Config+Turbine+Zipkin在k8s中的云端部署

4.实操Prometheus+Grafana+EFK的线上系统监控与日志采集

. 微服务架构需要DevOps自动化运维

1. 剖析传统运维存在的“交付困难”的困局

2. Who build who run it与DevOps的概念

3. 敏捷团队快速交付的持续探索、持续集成、持续交付与按需发布

4. DevOps带来开发人员的负担与自动化运维

. 自动化运维的工作原理

1. Docker容器技术与发布标准化

2. 分布式容器部署与Kubernetes

3. 实操Git+Jenkins+Docker+Kubernetes的自动化部署过程

. 打造微服务架构的自动化运维体系

1. 注册中心Eureka在Kubernetes的分布式部署

2. 配置中心Config在Kubernetes的分布式部署

3. 断路器监控Turbine与路由优化Zipkin

. 微服务云端架构的系统监控与日志采集

1. Kubernetes的系统监控工具Prometheus+Grafana

2. Kubernetes的日志采集工具EFK


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1