首页 > web前端 > js教程 > 从本地到全球:Azure 迁移提高了我们的效率和安全性

从本地到全球:Azure 迁移提高了我们的效率和安全性

Linda Hamilton
发布: 2025-01-11 07:03:43
原创
881 人浏览过

背景:原始系统概述

在我的一份工作中,我开发了一个强大的管理系统,该系统用 Java 开发,与 RabbitMQ 和 PostgreSQL 集成,其任务是控制大型电子商务平台的支付、运输和库存。原来的系统在本地数据中心本地运行,不再满足对可扩展性和可靠性不断增长的需求。该系统面临着关键事务的高延迟、维护困难以及随着工作负载的增长而增加的运营成本等挑战。

此次迁移的目的不仅是将系统迁移到云端,也是为了改进架构,使其更具可扩展性、弹性和效率。选择 Azure 作为云平台是因为它能够满足现代、稳健的架构的特定需求,同时支持安全、治理和成本优化方面的最佳实践,如 Azure 架构完善的框架中所述。

系统上下文:Azure 中的新模型

概述

新系统采用 Azure 架构完善框架的原则,设计具有高度可扩展性、弹性和易于管理性。该架构旨在处理增加的流量、确保高可用性并降低运营成本。迁移到 Azure 不仅仅意味着移动现有组件,还意味着对架构进行审查和现代化,以确保系统敏捷、安全和高效。

该架构规划为 C4 模型的四个级别,重点是对上下文、容器、组件和代码的清晰了解。这将确保所有利益相关者(从工程师到经理)在新系统的可扩展性和可靠性目标方面保持一致。

上下文(上下文图)

上下文图说明了整个支付、货运和库存管理系统。该系统与各种外部组件交互,例如客户、支付系统和运输平台。该图重点关注用户和外部系统如何与系统交互。

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

新系统分为三个主要业务领域:

  1. 支付管理:使用与支付网关和其他外部金融服务的集成来处理金融交易。
  2. 货运管理:与物流提供商交互以计算和监控订单交付状态。
  3. 库存管理:监控库存水平并在物品接近短缺时生成自动警报。

每个区域都被视为单独的微服务,促进独立的可扩展性和简化的管理。上下文图重点关注这些服务与外部平台之间的交互,例如支付系统、运输系统和用户服务。

容器(容器图)

容器图重点关注架构中的主要软件容器。每个服务都被转换为一个单独的应用程序容器,利用 Azure 上 Kubernetes 的容器化功能。 RabbitMQ 已被 Azure 服务总线取代,以改进异步通信,而 PostgreSQL 已迁移到 Azure Database for PostgreSQL,并进行了优化以确保更高的可用性和可扩展性。

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

主要容器包括:

  1. 前端 Web(应用程序):与用户交互以管理订单、付款、运输和库存的 Web 应用程序。此应用程序已移至 Azure 应用服务。
  2. API 网关:管理将请求路由到特定支付、运输和库存微服务的服务。使用 Azure API 管理来管理安全性、身份验证和流量控制。
  3. 支付微服务:负责处理和验证金融交易。它已经过重组,可以与支付网关通信并安全地进行交易。它托管在 Azure Kubernetes 服务 (AKS) 上。
  4. 运输微服务:负责计算运输成本并监控交货状态。该服务通过 RESTful API 与外部物流提供商进行通信,并托管在 AKS 上的容器中。
  5. 库存微服务:负责控制库存、发出低库存警报并与销售系统通信,以确保客户可以获得产品。此服务也已移至 AKS。
  6. PostgreSQL 数据库:数据库已迁移到 Azure Database for PostgreSQL,提供高可用性和自动备份。迁移是在Azure数据库迁移服务工具的​​帮助下进行的。
  7. 服务总线(RabbitMQ 被 Azure 服务总线取代):管理微服务之间的异步消息队列,确保事务和业务流程以高效且有弹性的方式发生。

组件(组件图)

组件图重点关注每个微服务的内部架构。每个组件都表示为一个自主且易于扩展的软件单元。

支付微服务

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

关键组件包括:

  1. 支付处理组件:负责与支付网关通信,验证和处理支付。使用 Azure Key Vault 安全地存储凭据和敏感信息。
  2. 通知组件:向客户和管理员发送有关付款状态的通知。

运输微服务

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

关键组件包括:

  1. 运费计算组件:与外部 API 交互,根据重量、目的地和其他变量计算运费。它已被改编为使用Azure Logic Apps与第三方服务集成。
  2. 跟踪组件:监控订单交付状态并通过 Azure Functions 自动更新客户。

库存微服务

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

关键组件包括:

库存控制组件:负责监控和调整库存水平。与销售系统集成,确保产品不会在没有计划补货的情况下耗尽。
警报组件:当库存水平达到最低水平时,向负责库存补货的人员生成警报。

代码(代码图)

支付微服务:

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

运输微服务:

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

库存微服务:

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

结论:迁移改进和结果

系统迁移到 Azure 带来了几项重大改进:

  1. 可扩展性:Azure Kubernetes Service (AKS) 和 Azure App Service 的使用允许每个微服务根据工作负载独立扩展,确保系统能够毫无问题地处理流量高峰。
  2. 弹性:使用 Azure 服务总线进行异步消息传递和具有高可用性的 Azure Database for PostgreSQL 确保系统对故障和中断具有更强的弹性。
  3. 优化成本:迁移到云不仅可以降低物理服务器的基础设施和维护成本,还可以通过即用即付模式实现成本优化。
  4. 安全性:使用 Azure Key Vault 安全存储凭据并实施多重身份验证 (MFA) 和严格访问控制等安全实践,提高了系统的整体安全性。

使用 Azure 架构完善的框架中的最佳实践并实施 C4 模型,迁移不仅实现了架构现代化,还确保了系统更加可靠、可扩展和安全。

以上是从本地到全球:Azure 迁移提高了我们的效率和安全性的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板