从业务分析和领域驱动设计开始构建微服务应用 | Domain Driven Design & Microservices for Architects
了解如何从业务分析和领域驱动设计开始构建微服务应用程序。
你将会学到的
- 领域驱动设计
- 架构微服务应用程序
- 构建微服务和分布式系统的设计模式
- 事件驱动架构
- 为微服务开发 API
- 事件风暴
- 为微服务开发业务案例
要求
- 了解软件开发实践
- 基本知识 JAVA 或任何其他编程语言
说明
PS:重点是设计微服务而不是编码
- 没有使用特定的微服务框架
- 所有示例代码均采用纯 JAVA 格式,以演示/阐明对 DDD 模式等的理解。
- 模型是在 UML 中开发的 – 使用 PlantUML 工具
- PostgreSQL/MongDB/RabbitMQ/Kafka – 在云上创建的免费实例用于演示和演练
如果您正在寻找有关微服务编码或特定框架的教程,请不要加入该课程!!!
这门课程是关于什么的?
微服务是一种构建软件的新方式,其中应用程序由一组独立的服务组成。微服务的最大好处是它使组织能够以非常快的速度进行转型。这种上市速度是由于构成微服务应用程序的服务的独立性而实现的。亚马逊、Netflix 和 Etsy 等公司已经毫无疑问地证明了微服务的价值。
如今,许多组织都在寻求采用微服务。这些组织正在投资于技术、工具、技能,并且也在改变他们的软件开发和交付流程。但仍有许多组织未能充分发挥微服务的优势;事实上,许多组织认为他们通过采用微服务创造了技术债务。
那么为什么有些组织在采用微服务方面取得了成功,而有些组织却没有。我在未能采用微服务的公司中观察到的一个常见方面是,他们将微服务视为纯粹的技术举措。他们不会花时间去了解他们的微服务应用程序的业务方面!!!
微服务不仅仅是技术
微服务架构的关键元素是服务是独立的。服务的这种独立方面使微服务可以独立于其他服务进行更改。如果微服务的范围导致服务之间的相互依赖,那么它将导致团队之间需要进行变更协调,这反过来又会导致我们在单体应用程序中遇到的相同问题!!!发布周期会更长,采用微服务不会带来任何好处。
为了确保这些微服务之间没有相互依赖关系,微服务架构师需要了解领域,然后决定微服务的边界和范围。这就是领域驱动设计发挥作用的地方。一旦定义了微服务业务边界,就应该使用适当的微服务设计模式和技术来构建服务。
从事微服务工作的团队不应该只关注服务的技术方面,还必须记住,还有其他一些因素对微服务计划的成功起着至关重要的作用。为了
微服务架构师的角色
担任微服务架构师角色的 IT 专业人员根据其组织中微服务采用的成熟度负责可能的方面。以下是架构师负责的活动列表:
- 评估微服务对其特定组织的商业利益
- 为微服务构建业务案例
- 就微服务的优缺点对业务和 IT 利益相关者进行教育
- 应用领域驱动设计来划定微服务的边界
- 定义微服务的领域模型
- 做微服务的技术设计
- 指导和指导微服务团队
- 评估技术 | 微服务实现框架
- 建立概念证明来展示事情是如何运作的
本课程将如何提供帮助?
本课程将帮助开发人员和架构师培养成功实施微服务应用程序所需的技能。它由概念、UML 建模和工作代码的组合组成,用于演示微服务的实现。学生将通过常见的行业示例和案例研究(ACME 旅行)学习领域驱动设计的概念。
重点是微服务的架构、设计和开发。
1. 转型与微服务
2.领域驱动设计
3. 应用 DDD 战略和战术模式
4. 事件驱动架构
5. 事件风暴
6. 数据管理
7. 消息传递
8.分布式事务
9. API
重要的:
代码示例
重点是微服务设计而不是编码。
- 所有示例代码都是纯 JAVA
- 课程不涵盖任何特定框架
- SpringBoot 用于 API/GraphQL 部分的示例
请在注册课程前查看课程预习讲座。
- 查看涵盖的主题
- 确保您了解教师的口音
先决条件
- 基本了解 JAVA 或任何其他编程语言
- 一些软件开发实践经验
PS:
动手部分是可选的,但鼓励学生亲自动手完成任务,以更好地了解设计模式。
此课程面向哪些人:
- 软件开发人员
- 软件架构师
- 产品经理
- 对微服务感兴趣的学生
TheItzy » 从业务分析和领域驱动设计开始构建微服务应用 | Domain Driven Design & Microservices for Architects