使用模式和原则设计微服务架构
通过设计高可扩展性和高可用性系统,从整体式微服务架构演进为事件驱动的微服务架构
讲师:Mehmet Ozkaya
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将会学到的
- 使用设计模式、原则和最佳实践设计微服务架构
- 了解如何通过设计具有高可用性、高可扩展性、低延迟和网络故障恢复能力的系统来处理数百万个请求
- 从单体到无服务器微服务的软件架构设计之旅
- 逐步将架构从单体架构发展到事件驱动的微服务架构
- 使用单体设计电子商务应用程序 – 分层 – 简洁 – 模块化单体 – 微服务 – 事件驱动架构和无服务器微服务
- 微服务分解策略
- 微服务通信(基于同步/异步消息的通信、API 网关))
- 微服务数据管理(数据库/查询/命令/分布式事务)
- 微服务分布式事务管理
- 微服务分布式缓存
- 使用容器和编排器进行微服务部署
- 微服务弹性、可观察性、监控
- 微服务设计模式和最佳实践
- 每个服务数据库模式、多语言持久性和共享数据库反模式
- API网关模式、前端后端模式-BFF、网关路由/聚合/卸载模式
- 服务聚合器模式、服务注册/发现模式
- 物化视图模式、数据库分片模式、CAP定理
- 扇出发布/订阅消息传递模式、主题队列链接和负载平衡模式
- CQRS 和事件溯源模式、最终一致性原则、CAP 定理
- SAGA模式——基于编排/编排的SAGA,补偿事务模式
- 事务发件箱模式,双写问题
- CDC — 使用发件箱模式更改数据捕获
- GitHub 上现有微服务架构存储库的代码审查
- 事件驱动的微服务架构中的事件中心和实时事件流
- 微服务分布式缓存的缓存旁路模式
- Sidecar模式、服务网格模式
- 用于微服务部署的 DevOps 和 CI/CD 管道
- 微服务部署策略:蓝绿部署、滚动部署和金丝雀部署
- 基础设施即代码 (IaC) 以及微服务部署中的使用
- 微服务弹性、可观察性和监控模式
- 重试和断路器模式
- 隔板/超时/缓存/回退模式
- 通过分布式日志记录实现微服务可观察性的 Elastic Stack
- 微服务健康检查:活性、就绪性和性能检查
- AWS 上的无服务器微服务架构实施
- 实践设计活动,将设计架构从本地迭代到云无服务器架构
- 重构系统设计以处理数百万个请求
- 准备软件架构面试
- 准备系统设计架构面试
要求
- 软件架构基础知识
说明
在本课程中,我们将学习如何使用设计模式、原则和最佳实践来设计微服务架构,并从单体到微服务迭代设计架构。我们将使用正确的架构设计模式和技术。
在课程结束时,您将了解如何通过设计系统来处理数百万个请求,以在微服务分布式架构上实现高可用性、高可扩展性、低延迟和网络故障恢复能力。
本课程将是软件架构设计的旅程,逐步将架构从单一架构发展到事件驱动的微服务。
我们将从设计处理少量请求的电子商务整体架构开始软件架构的基础知识。
之后逐步发展架构:
- 分层架构
- 干净的架构
- 模块化整体架构
- 微服务
- 事件驱动的微服务架构
- 最后是无服务器微服务架构,通过共同设计来处理数百万个请求。这是软件系统设计的逐步过程,并遵循模式和原则从整体发展到微服务。
我们将从各个方面讨论微服务架构,
- 微服务分解
- 微服务通信(基于同步/异步消息的通信、API 网关)
- 微服务数据管理(数据库/查询/命令)
- 微服务事务管理
- 微服务分布式缓存
- 使用容器和编排器进行微服务部署
- 微服务弹性
应用微服务设计模式和实践。
我们将与微服务支柱的各个方面一起逐步设计重构架构。
我们将从设计整体架构开始。您可以看到,我们有功能和非功能需求,这些需求应该涵盖我们的设计,并且我们有模式和原则工具箱,我们将在发展架构时学习和使用这些原则。
学习方式——课程流程
我们始终从问题出发,尝试通过学习和设计新的架构、模式和最佳实践来解决这个问题。
- 问题 -> 学习 -> 设计 -> 适应 -> 评估
我们将为课程的每个部分完成这个圆圈。您会发现我们将添加新的要求,以便处理数百万个请求,并学习在发展架构时将使用这些原则的新模式和实践。
您会发现我们将添加新的需求,以便处理数百万个请求,并学习在发展架构时将使用这些原则的新模式和实践。
我们将看到充满模式和原理的工具箱正在加载新模式并将它们应用到当前的设计中。我们将看到最新的模式,我们使用 30 多种模式和实践来实现高可扩展性、高可用性并处理数百万个请求需求。
让我写一些我们在本课程中介绍的微服务模式;
- 每个服务一个数据库模式
- API网关模式、网关路由/聚合/卸载模式
- 前端模式 BFF的后端
- 服务聚合器模式、服务注册/发现模式
- 扇出发布/订阅消息模式
- 主题队列链和负载均衡模式
- 共享数据库反模式和多语言持久性
- 数据库分片模式、CAP 定理
- 物化视图模式
- CQRS和事件溯源模式
- SAGA 模式—基于编排/编排的SAGA
- 补偿交易模式
- 事务发件箱模式
- 双写问题
- CDC —使用发件箱模式更改数据捕获
- 事件驱动的微服务架构中的事件中心和实时事件流
- 微服务分布式缓存的缓存旁路模式
- 边车模式
- 服务网格模式
- 用于微服务部署的DevOps和CI/CD 管道
- 微服务部署策略:蓝绿部署、滚动部署和金丝雀部署
- 基础设施即代码 (IaC)以及微服务部署中的使用
- 微服务弹性、可观察性和监控模式
- 重试和断路器模式
- 隔板/超时/缓存/回退模式
- 通过分布式日志记录实现微服务可观察性的Elastic Stack
- 微服务健康检查:活性、就绪性和性能检查
- AWS 上的无服务器微服务架构实施
因此,课程流程将是理论和实践信息并重;
- 我们总是从业务问题开始
- 我们将学习一种特定的模式、为什么以及在哪里应该使用
- 之后我们将看到应用这些模式的参考架构
- 之后,我们将应用这种新学到的模式来设计我们的架构
- 最后,我们将决定哪些技术可以作为该架构的选择。
最后一节,我们将对GitHub 上的现有微服务架构存储库进行 Code Review,以实际实现微服务架构。
所以本课程将包括
- 实践设计活动
- 将设计架构从本地迭代到云无服务器架构
- 将整体架构发展为事件驱动的微服务架构
- 重构系统设计以处理数百万个请求
- 应用微服务设计模式和原则的最佳实践
- 从通信、数据管理、缓存和部署等各个方面检查微服务模式
- 准备软件架构面试
- 准备系统设计架构面试考试。
我参加过多家著名公司的架构职位面试,也参与了软件架构师职位的评估过程超过50+次面试 ,收集了软件行业职位的架构要求。
因此,通过本课程,您将获得有关从整体架构到事件驱动的微服务架构的所有架构职位的实际经验。
本课程是为初学者准备的,但至少您应该熟悉软件架构的基础知识。本课程将提供良好的理论信息,但也将包含90% 的实践设计活动。所有课程架构步骤都将逐步、共同设计。
我希望您能加入我的旅程并与我一起开发这个项目。
此课程面向哪些人:
- 谁想成为软件架构师
- 谁想深入了解现实案例中的微服务架构
- 谁想通过系统设计架构面试