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

背景:原始系统概述

在我的一份工作中,我开发了一个强大的管理系统,该系统用 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具