单体应用进化微服务架构Evolve from Monolithic to Event-driven Microservices Architecture with designing High Scalable and High Available system

Course: Design Microservices Architecture with Patterns & Principles | Udemy

Description

In this course, we’re going to learn how to Design Microservices Architecture with using Design Patterns, Principles and the Best Practices with Iterate Design Architecture from Monolithic to Microservices. We will using the right architecture design patterns and techniques.

By the end of the course, you will Learn how to handle millions of request with designing system for high availability, high scalabilitylow latency, and resilience to network failures on microservices distributed architectures.

This course is will be the journey of software architecture design with step by step evolving architecture from monolithic to event driven microservices.

We will start the basics of software architecture with designing e-commerce Monolithic architecture that handles low amount of requests.

After that step by step evolves the architecture with;

  • Layered Architecture

  • Clean Architecture

  • Modular Monolithic Architecture

  • Microservices

  • Event-Driven Microservices Architectures

  • and lastly Serverless Microservices Architectures with designing together that handle millions of requests. This is a step-by-step process for software system design and evolve from monolithic to microservices following the patterns & principles.

We will discuss microservices architectures with all aspects,

  • Microservices Decomposition

  • Microservices Communications (Sync / Async Message-Based Communication, API Gateways)

  • Microservices Data Management (Databases / Query / Commands)

  • Microservices Transaction Management

  • Microservices Distributed Caching

  • Microservices Deployments with Containers and Orchestrators

  • Microservices Resilience

with applying microservices design patterns and practices.

We are going to design with together and step by step with refactor architectures with all aspects of microservices pillars.

We will start with designing Monolithic Architecture. And you can see that we have Functional and Non-functional requirements that should cover our design and we have patterns and principles toolbox that we will learn and use these principles when evolving architectures.

Way of Learning — The Course Flow

We will always starts with the problem and try to solve this problem with learning and designing new architectures, patterns and best practices.

  • Problem -> Learn -> Design -> Adapt -> Evaluate

We will complete this circle for every section of the course. You will find that we will add new requirements in order to handle millions of request and learn new patterns and practices that will use these principles when evolving architectures.


You will find that we will add new requirements in order to handle millions of request and learn new patterns and practices that will use these principles when evolving architectures.

We will see full of patterns and principle toolbox is loading with new patterns and apply them into current designs. We will see latest patterns that we use more than 30 patterns and practices with implementing high scalability, high availability and handle millions of request requirements.

Let me write some microservices pattern which we covered in this course;

  • The Database-per-Service Pattern

  • API Gateway Pattern, Gateway Routing/Aggregation/Offloading Pattern

  • Backends for Frontends pattern BFF

  • Service Aggregator Pattern, Service Registry/Discovery Pattern

  • Fan-out Publish/Subscribe Messaging Pattern

  • Topic-Queue Chaining & Load Balancing Pattern

  • The Shared Database Anti-Pattern and Polyglot Persistence

  • Database Sharding Pattern, CAP Theorem

  • Materialized View Pattern

  • CQRS and Event Sourcing Patterns

  • SAGA Pattern  Choreography-based/Orchestration-based SAGA

  • Compensating Transaction Pattern

  • Transactional Outbox Pattern

  • Dual Write Problem

  • CDC — Change Data Capture with Outbox Pattern

  • Event Hubs and Real-time Event Streaming in Event-Driven Microservices Architecture

  • Cache-Aside Pattern for Microservices Distributed Caching

  • Sidecar Pattern

  • Service Mesh Pattern

  • DevOps and CI/CD Pipelines for Microservices Deployments

  • Deployment Strategies for Microservices: Blue-green, Rolling and Canary deployments

  • Infrastructure as Code (IaC) and usage in Microservices Deployments

  • Microservices ResilienceObservability and Monitoring Patterns

  • Retry and Circuit Breaker Patterns

  • Bulkhead / Timeout Cache Fallback Patterns

  • Elastic Stack for Microservices Observability with Distributed Logging

  • Microservices Health Checks: LivenessReadiness and Performance Checks

  • Serverless Microservices Architecture implementation on AWS

So the course flow will be the both theoretical and practical information;

  • We will always start with a business problem

  • We will learn a specific pattern, why and where we should use

  • After that we will see the Reference architectures that applied these patterns

  • After that we will design our architecture with applying this newly learned pattern with together

  • And lastly we will decide which Technologies can be choices for that architectures.

And at the last section, we will made Code Review for Existing Microservices Architecture Repository on GitHub for practical implementation of microservices architecture.

So this course will includes

  • Hands-on Design Activities

  • Iterate Design Architecture from On-Premises to Cloud Server-less architectures

  • Evolves architecture monolithic to Event-Driven Microservices Architectures

  • Refactoring System Design for handling million of requests

  • Apply best practices with microservices design patterns and principles

  • Examine microservices patterns with all aspects like CommunicationsData Management, Caching and Deployments

  • Prepare for Software Architecture Interviews

  • Prepare for System Design Architecture Interview exams.

I have been joined several famous company's architecture position interviews, also involved software architect positions assessment process more than 50+ interviews collect the architecture requirements for software industry positions.

So with this course, you will gain real-world experience about all architecture positions from monolithic to event-driven microservices architectures.

This course prepared for the beginner but at least you should familiar with basics of software architectures. This course will have good theoretical information but also will be 90% of hands-on design activities. All course architecture steps will designed step by step and together.

I hope you'll join me on this journey and develop this project with me.

What you’ll learn

  • Design Microservices Architecture with using Design Patterns, Principles and the Best Practices
  • Learn how to handle millions of request with designing system for High Availability, High Scalability, low latency, and resilience to network failures
  • Journey of Software Architecture Design from Monolithic to Serverless Microservices
  • Step by step evolving architecture from Monolithic to Event-driven Microservices Architecture
  • Design E-commerce App with Monolithic - Layered - Clean - Modular Monolithic - Microservices - Event-Driven Architecture and Serverless Microservices
  • Microservices Decomposition Strategies
  • Microservices Communications (Sync / Async Message-Based Communication, API Gateways))
  • Microservices Data Management (Databases / Query / Commands / Distributed Transactions)
  • Microservices Distributed Transaction Management
  • Microservices Distributed Caching
  • Microservices Deployments with Containers and Orchestrators
  • Microservices Resilience, Observability, Monitoring
  • Microservices Design Patterns and Best Practices
  • The Database-per-Service Pattern, Polyglot Persistence and The Shared Database Anti-Pattern
  • API Gateway Pattern, Backends for Frontends Pattern-BFF, Gateway Routing/Aggregation/Offloading Pattern
  • Service Aggregator Pattern, Service Registry/Discovery Pattern
  • Materialized View Pattern, Database Sharding Pattern, CAP Theorem
  • Fan-out Publish/Subscribe Messaging Pattern, Topic-Queue Chaining & Load Balancing Pattern
  • CQRS and Event Sourcing Patterns, Eventual Consistency Principle, CAP Theorem
  • SAGA Pattern — Choreography-based/Orchestration-based SAGA, Compensating Transaction Pattern
  • Transactional Outbox Pattern, Dual Write Problem
  • CDC — Change Data Capture with Outbox Pattern
  • Code Review for Existing Microservices Architecture Repository on GitHub
  • Event Hubs and Real-time Event Streaming in Event-Driven Microservices Architecture
  • Cache-Aside Pattern for Microservices Distributed Caching
  • Sidecar Pattern, Service Mesh Pattern
  • DevOps and CI/CD Pipelines for Microservices Deployments
  • Deployment Strategies for Microservices: Blue-green, Rolling and Canary deployments
  • Infrastructure as Code (IaC) and usage in Microservices Deployments
  • Microservices Resilience, Observability and Monitoring Patterns
  • Retry and Circuit Breaker Patterns
  • Bulkhead / Timeout / Cache / Fallback Patterns
  • Elastic Stack for Microservices Observability with Distributed Logging
  • Microservices Health Checks: Liveness, Readiness and Performance Checks
  • Serverless Microservices Architecture implementation on AWS
  • Hands-on Design Activities, Iterate Design Architecture from On-Premises to Cloud Serverless architectures
  • Refactoring System Design for handling million of requests
  • Prepare for Software Architecture Interviews
  • Prepare for System Design Architecture Interviews

Are there any course requirements or prerequisites?

  • Software Architecture Basics

Who this course is for:

  • Who wants to be Software Architecture
  • Who wants to deeply understand Microservices Architecture in Real-world cases
  • Who wants to pass System Design Architecture Interview

课程介绍


在本课程中,我们将学习如何运用设计模式、原则和最佳实践来设计微服务架构,以及如何从单体架构逐步迭代演进到微服务架构。我们会采用正确的架构设计模式与技术。

在课程结束时,你将学会如何通过设计具有高可用性、高可扩展性、低延迟以及对网络故障具有弹性的微服务分布式系统,来处理数百万次请求。

本课程将是一段软件架构设计之旅,带你逐步从单体架构演进到事件驱动的微服务架构。

我们将从软件架构的基础知识入手,设计一个能处理少量请求的电子商务单体架构。

之后,逐步对架构进行如下演进:

  • 分层架构
  • 整洁架构
  • 模块化单体架构
  • 微服务架构
  • 事件驱动的微服务架构
  • 最后是能共同设计处理数百万请求的无服务器微服务架构。这是一个遵循模式与原则,将软件系统从单体架构逐步演进到微服务架构的设计过程。

我们将从各个方面探讨微服务架构,包括:

  • 微服务分解
  • 微服务通信(基于同步 / 异步消息的通信、API 网关)
  • 微服务数据管理(数据库 / 查询 / 命令)
  • 微服务事务管理
  • 微服务分布式缓存
  • 使用容器和编排工具进行微服务部署
  • 微服务的弹性

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

我们将一起从微服务的各个关键方面逐步设计和重构架构。

我们将从设计单体架构开始。你会发现,我们有功能性和非功能性需求,这些需求应涵盖我们的设计,而且我们有一个模式和原则工具库,在演进架构时我们将学习并运用这些原则。

学习方式 —— 课程流程


我们将始终从问题出发,通过学习和设计新的架构、模式和最佳实践来尝试解决问题。

问题→学习→设计→调整→评估

我们将针对课程的每个部分完成这个循环。你会发现,为了处理数百万次请求,我们会添加新的需求,并学习新的模式和实践,在演进架构时运用这些原则。

你会发现,为了处理数百万次请求,我们会添加新的需求,并学习新的模式和实践,在演进架构时运用这些原则。

我们会看到,模式和原则工具库不断充实新的模式,并将它们应用到当前的设计中。我们将使用超过 30 种模式和实践,来实现高可扩展性、高可用性,并满足处理数百万次请求的需求。

下面我列举一些本课程会涉及的微服务模式:

  • 一服务一数据库模式
  • API 网关模式、网关路由 / 聚合 / 卸载模式
  • 前端后端模式(BFF)
  • 服务聚合模式、服务注册 / 发现模式
  • 扇出发布 / 订阅消息模式
  • 主题 - 队列链式与负载均衡模式
  • 共享数据库反模式和多语言持久化
  • 数据库分片模式、CAP 定理
  • 物化视图模式
  • 命令查询职责分离(CQRS)和事件溯源模式
  • SAGA 模式 —— 基于编排 / 基于协同的 SAGA
  • 补偿事务模式
  • 事务性发件箱模式
  • 双写问题
  • 变更数据捕获(CDC)与发件箱模式
  • 事件驱动的微服务架构中的事件中心和实时事件流
  • 微服务分布式缓存的旁路缓存模式
  • 边车模式
  • 服务网格模式
  • 微服务部署中的 DevOps 和持续集成 / 持续交付(CI/CD)管道
  • 微服务的部署策略:蓝绿部署、滚动部署和金丝雀部署
  • 基础设施即代码(IaC)及其在微服务部署中的应用
  • 微服务弹性、可观测性和监控模式
  • 重试和断路器模式
  • 舱壁 / 超时 / 缓存 / 回退模式
  • 用于微服务可观测性的分布式日志记录的 Elastic Stack
  • 微服务健康检查:存活检查、就绪检查和性能检查
  • 在 AWS 上实现无服务器微服务架构

因此,课程流程将包含理论和实践两方面的信息:

  1. 我们将始终从一个业务问题入手。
  2. 我们将学习一种特定的模式,以及为何使用它和在何处使用它。
  3. 之后,我们将了解应用了这些模式的参考架构。
  4. 接着,我们将一起应用新学到的模式来设计我们的架构。
  5. 最后,我们将确定哪些技术可以作为该架构的选择。

在课程的最后一部分,我们将对 GitHub 上现有的微服务架构仓库进行代码审查,以实现微服务架构的实际应用。
 
所以,本课程将包含以下内容:

  1. 实践设计活动
  2. 从本地架构到云无服务器架构的迭代设计架构
  3. 从单体架构演进到事件驱动的微服务架构
  4. 重构系统设计以处理数百万次请求
  5. 应用微服务设计模式和原则的最佳实践
  6. 从通信、数据管理、缓存和部署等各个方面研究微服务模式
  7. 为软件架构面试做准备
  8. 为系统设计架构面试考试做准备

我参加过几家知名公司的架构职位面试,还参与了 50 多次软件架构师职位的评估流程,收集了软件行业职位的架构要求。

因此,通过本课程,你将获得从单体架构到事件驱动微服务架构等所有架构相关职位的实际经验。

本课程是为初学者准备的,但至少你应该熟悉软件架构的基础知识。本课程不仅会包含丰富的理论知识,而且 90% 的内容将是实践设计活动。课程中所有的架构步骤都将一步步地共同设计完成。

我希望你能加入我的这段学习旅程,和我一起开发这个项目。
 
你将学到什么

  1. 运用设计模式、原则和最佳实践来设计微服务架构
  2. 学习如何通过设计具备高可用性、高可扩展性、低延迟以及对网络故障具有弹性的系统来处理数百万次请求
  3. 体验从单体架构到无服务器微服务架构的软件架构设计之旅
  4. 逐步将架构从单体架构演进到事件驱动的微服务架构
  5. 使用单体架构、分层架构、整洁架构、模块化单体架构、微服务架构、事件驱动架构和无服务器微服务架构来设计电子商务应用程序
  6. 微服务分解策略
  7. 微服务通信(基于同步 / 异步消息的通信、API 网关)
  8. 微服务数据管理(数据库 / 查询 / 命令 / 分布式事务)
  9. 微服务分布式事务管理
  10. 微服务分布式缓存
  11. 使用容器和编排工具进行微服务部署
  12. 微服务的弹性、可观测性和监控
  13. 微服务设计模式和最佳实践
  14. 一服务一数据库模式、多语言持久化和共享数据库反模式
  15. API 网关模式、前端后端模式(BFF)、网关路由 / 聚合 / 卸载模式
  16. 服务聚合模式、服务注册 / 发现模式
  17. 物化视图模式、数据库分片模式、CAP 定理
  18. 扇出发布 / 订阅消息模式、主题 - 队列链式与负载均衡模式
  19. 命令查询职责分离(CQRS)和事件溯源模式、最终一致性原则、CAP 定理
  20. SAGA 模式 —— 基于编排 / 基于协同的 SAGA、补偿事务模式
  21. 事务性发件箱模式、双写问题
  22. 变更数据捕获(CDC)与发件箱模式
  23. 对 GitHub 上现有的微服务架构仓库进行代码审查
  24. 事件驱动的微服务架构中的事件中心和实时事件流
  25. 微服务分布式缓存的旁路缓存模式
  26. 边车模式、服务网格模式
  27. 微服务部署中的 DevOps 和持续集成 / 持续交付(CI/CD)管道
  28. 微服务的部署策略:蓝绿部署、滚动部署和金丝雀部署
  29. 基础设施即代码(IaC)及其在微服务部署中的应用
  30. 微服务弹性、可观测性和监控模式
  31. 重试和断路器模式
  32. 舱壁 / 超时 / 缓存 / 回退模式
  33. 用于微服务可观测性的分布式日志记录的 Elastic Stack
  34. 微服务健康检查:存活检查、就绪检查和性能检查
  35. 在 AWS 上实现无服务器微服务架构
  36. 实践设计活动、从本地架构到云无服务器架构的迭代设计架构
  37. 重构系统设计以处理数百万次请求
  38. 为软件架构面试做准备
  39. 为系统设计架构面试做准备

本课程有什么课程要求或先决条件吗?
具备软件架构基础知识

本课程适合哪些人:

  1. 想成为软件架构师的人
  2. 想在实际案例中深入理解微服务架构的人
  3. 想通过系统设计架构面试的人
 
 

posted on 2025-03-18 22:28  freeliver54  阅读(28)  评论(0)    收藏  举报

导航