使用模式和原则设计微服务架构

Design Microservices Architecture with Patterns & Principles

通过设计高可扩展和高可用性系统,从单体架构演进到事件驱动型微服务架构

 

 学习内容

  • 使用设计模式、原则和最佳实践设计微服务架构
  • 了解如何通过设计系统来处理数百万个请求,以实现高可用性、高可扩展性、低延迟和网络故障恢复能力
  • 从单体到无服务器微服务的软件架构设计之旅
  • 从单体架构到事件驱动型微服务架构的逐步演进
  • 使用单片设计电子商务应用程序 – 分层 – 清洁 – 模块化单片 – 微服务 – 事件驱动架构和无服务器微服务
  • 微服务分解策略
  • 微服务通信(基于消息的同步/异步通信、API 网关))
  • 微服务数据管理(数据库/查询/命令/分布式事务)
  • 微服务分布式事务管理
  • 微服务分布式缓存
  • 使用容器和编排器进行微服务部署
  • 微服务弹性、可观测性、监控
  • 微服务设计模式和最佳实践
  • 基于服务的数据库模式、多语言持久性和共享数据库反模式
  • API 网关模式, 前端模式-BFF的后端, 网关路由/聚合/卸载模式
  • 服务聚合器模式、服务注册表/发现模式
  • 物化视图模式、数据库分片模式、CAP 定理
  • 扇出发布/订阅消息模式、主题队列链接和负载均衡模式
  • CQRS 和事件溯源模式、最终一致性原则、CAP 定理
  • SAGA 模式 — 基于编排/基于编排的 SAGA,补偿事务模式
  • 事务发件箱模式,双重写入问题
  • CDC — 使用发件箱模式更改数据捕获
  • GitHub 上现有微服务体系结构存储库的代码审查
  • 事件驱动的微服务体系结构中的事件中心和实时事件流式处理
  • 微服务分布式缓存的缓存端模式
  • Sidecar 模式、服务网格模式
  • 用于微服务部署的 DevOps 和 CI/CD 管道
  • 微服务的部署策略:蓝绿部署、滚动部署和金丝雀部署
  • 基础结构即代码 (IaC) 和微服务部署中的用法
  • 微服务弹性、可观测性和监控模式
  • 重试和断路器模式
  • 隔板 / 超时 / 缓存 / 回退模式
  • Elastic Stack for Microservices Observability with Distributed Logging
  • 微服务运行状况检查:活动性、就绪性和性能检查
  • AWS 上的无服务器微服务架构实施
  • 动手设计活动,迭代从本地到云无服务器架构的设计架构
  • 重构系统设计,用于处理数百万个请求
  • 准备软件架构面试
  • 准备系统设计架构面试

 要求

  • 软件架构基础

 描述

在本课程中,我们将学习如何使用设计模式、原则和最佳实践来设计微服务架构,并将设计架构从单体架构迭代到微服务。

在课程结束时,您将学习如何通过设计系统来处理数百万个请求,以实现微服务分布式架构上的高可用性、高可扩展性、低延迟和对网络故障的恢复能力。

本课程将是软件架构设计的旅程,逐步将架构从单体发展到事件驱动的微服务。

我们将从设计处理少量请求的电子商务单体架构开始软件架构的基础知识。

在那之后,一步一步地发展架构;

  •  分层架构

  •  干净的架构

  • 模块化单片架构

  •  微服务

  • 事件驱动的微服务架构

  • 最后是无服务器微服务架构,共同设计可处理数百万个请求。这是软件系统设计的循序渐进的过程,并遵循模式和原则从单片发展到微服务。

我们将从各个方面讨论微服务架构,

  • 微服务分解

  • 微服务通信(基于同步/异步消息的通信、API 网关)

  • 微服务数据管理(数据库/查询/命令)

  • 微服务事务管理

  • 微服务分布式缓存

  • 使用容器和编排器进行微服务部署

  •  微服务弹性

应用微服务设计模式和实践。

我们将一起设计,并逐步设计具有微服务支柱各个方面的重构架构。

我们将从设计整体架构开始。你可以看到,我们有功能性和非功能性需求,它们应该涵盖我们的设计,我们有模式和原则工具箱,我们将在发展架构时学习和使用这些原则。

学习方式 — 课程流程

我们总是从问题开始,并尝试通过学习和设计新的架构、模式和最佳实践来解决这个问题。

  • 问题 -> 学习 -> 设计 -> 适应 -> 评估

我们将在课程的每个部分完成这个圆圈。您会发现,我们将添加新的需求,以处理数百万个请求,并学习新的模式和实践,这些模式和实践将在演进架构时使用这些原则。


您会发现,我们将添加新的需求,以处理数百万个请求,并学习新的模式和实践,这些模式和实践将在演进架构时使用这些原则。

我们将看到充满模式和原则的工具箱正在加载新模式并将它们应用到当前设计中。我们将看到最新的模式,我们使用了 30 多种模式和实践,实现了高可伸缩性、高可用性并处理数百万个请求要求。

让我编写一些我们在本课程中介绍的微服务模式;

  • 基于服务的数据库模式

  • API 网关模式、网关路由/聚合/卸载模式

  • 前端模式 BFF 的后端

  • 服务聚合器模式、服务注册表/发现模式

  • 扇出发布/订阅消息模式

  • 主题-队列链接和负载均衡模式

  • 共享数据库反模式和多语言持久性

  • 数据库分片模式,CAP 定理

  • 具体化视图模式

  • CQRS 和事件溯源模式

  • SAGA 模式 — 基于编排/基于编排的 SAGA

  • 补偿事务模式

  • 事务发件箱模式

  •  双重写入问题

  • CDC — 使用发件箱模式更改数据捕获

  • 事件驱动的微服务体系结构中的事件中心和实时事件流式处理

  • 微服务分布式缓存的缓存端模式

  •  Sidecar 模式

  •  服务网格模式

  • 用于微服务部署的 DevOps 和 CI/CD 管道

  • 微服务的部署策略:蓝绿部署、滚动部署和金丝雀部署

  • 基础结构即代码 (IaC) 和微服务部署中的用法

  • 微服务弹性、可观测性和监控模式

  • 重试和断路器模式

  • 隔板 / 超时 / 缓存 / 回退模式

  • Elastic Stack for Microservices Observability with Distributed Logging

  • 微服务运行状况检查:活动性、就绪性和性能检查

  • AWS 上的无服务器微服务架构实施

因此,课程流程将是理论和实践信息;

  • 我们总是从业务问题开始

  • 我们将学习一个特定的模式,为什么以及我们应该在哪里使用

  • 之后,我们将看到应用这些模式的参考体系结构

  • 之后,我们将应用这个新学到的模式来设计我们的架构

  • 最后,我们将决定哪些技术可以作为该架构的选择。

在最后一节中,我们将在 GitHub 上对现有微服务架构存储库进行代码审查,以实际实现微服务架构。

因此,本课程将包括

  • 动手设计活动

  • 迭代从本地到无服务器云架构的设计架构

  • 将架构单体架构演进到事件驱动型微服务架构

  • 重构系统设计,用于处理数百万个请求

  • 将最佳实践应用于微服务设计模式和原则

  • 从通信、数据管理、缓存和部署等各个方面检查微服务模式

  • 准备软件架构面试

  • 准备系统设计架构面试考试。

我曾参加过几家知名公司的架构岗位面试,还涉及软件架构师岗位考核流程50+余次面试,收集了软件行业岗位的架构要求。

因此,通过本课程,您将获得从单片架构到事件驱动微服务架构的所有架构位置的实际经验。

本课程是为初学者准备的,但至少你应该熟悉软件架构的基础知识。本课程将有很好的理论信息,但也将是90%的动手设计活动。所有课程架构步骤都将逐步设计并一起设计。

我希望你能和我一起踏上这段旅程,和我一起开发这个项目。

本课程适合谁:

  • 谁想成为软件架构
  • 谁想在真实案例中深入了解微服务架构
  • 谁想通过系统设计架构面试
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。