背景:原始系統概述
在我的一份工作中,我開發了一個強大的管理系統,該系統用 Java 開發,與 RabbitMQ 和 PostgreSQL 集成,其任務是控制大型電子商務平台的支付、運輸和庫存。原來的系統在本地資料中心本地運行,不再滿足對可擴展性和可靠性不斷增長的需求。該系統面臨關鍵事務的高延遲、維護困難以及隨著工作負載的增長而增加的營運成本等挑戰。
此次遷移的目的不僅是將系統遷移到雲端,也是為了改善架構,使其更具可擴展性、彈性和效率。選擇 Azure 作為雲端平台是因為它能夠滿足現代、穩健的架構的特定需求,同時支援安全性、治理和成本優化方面的最佳實踐,如 Azure 架構完善的框架中所述。
系統上下文:Azure 中的新模型
概述
新系統採用 Azure 架構完善框架的原則,設計具有高度可擴充性、彈性且易於管理性。該架構旨在處理增加的流量、確保高可用性並降低營運成本。遷移到 Azure 不僅僅意味著移動現有元件,還意味著對架構進行審查和現代化,以確保系統敏捷、安全和高效。
該架構規劃為 C4 模型的四個級別,重點是對上下文、容器、組件和程式碼的清晰了解。這將確保所有利害關係人(從工程師到經理)在新系統的可擴展性和可靠性目標方面保持一致。
上下文(上下文圖)
上下文圖說明了整個支付、貨運和庫存管理系統。該系統與各種外部組件交互,例如客戶、支付系統和運輸平台。此圖重點在於使用者和外部系統如何與系統互動。
新系統分為三個主要業務領域:
- 支付管理:使用與支付網關和其他外部金融服務的整合來處理金融交易。
- 貨運管理:與物流提供者互動以計算和監控訂單交付狀態。
- 庫存管理:監控庫存水準並在物品接近短缺時產生自動警報。
每個區域都被視為單獨的微服務,促進獨立的可擴展性和簡化的管理。上下文圖重點在於這些服務與外部平台之間的交互,例如支付系統、運輸系統和使用者服務。
容器(容器圖)
容器圖重點在於架構中的主要軟體容器。每個服務都轉換為單獨的應用程式容器,利用 Azure 上 Kubernetes 的容器化功能。 RabbitMQ 已被 Azure 服務匯流排取代,以改善非同步通信,而 PostgreSQL 已遷移到 Azure Database for PostgreSQL,並進行了最佳化以確保更高的可用性和可擴展性。
主要容器包括:
- 前端 Web(應用程式):與使用者互動以管理訂單、付款、運輸和庫存的 Web 應用程式。此應用程式已移至 Azure 應用程式服務。
- API 閘道:管理將請求路由到特定支付、運輸和庫存微服務的服務。使用 Azure API 管理來管理安全性、驗證和流量控制。
- 支付微服務:負責處理和驗證金融交易。它已經過重組,可以與支付網關通訊並安全地進行交易。它託管在 Azure Kubernetes 服務 (AKS) 上。
- 運輸微服務:負責計算運輸成本並監控交貨狀態。該服務透過 RESTful API 與外部物流提供者進行通信,並託管在 AKS 上的容器中。
- 庫存微服務:負責控制庫存、發出低庫存警報並與銷售系統通信,以確保客戶可以獲得產品。此服務也已移至 AKS。
- PostgreSQL 資料庫:資料庫已移轉到 Azure Database for PostgreSQL,提供高可用性和自動備份。遷移是在Azure資料庫遷移服務工具的幫助下進行的。
- 服務匯流排(RabbitMQ 被 Azure 服務匯流排取代):管理微服務之間的非同步訊息佇列,確保事務和業務流程以高效且有彈性的方式發生。
組件(組件圖)
元件圖著重於每個微服務的內部架構。每個組件都表示為一個自主且易於擴展的軟體單元。
支付微服務
關鍵組件包括:
- 支付處理組件:負責與支付網關通信,驗證和處理付款。使用 Azure Key Vault 安全地儲存憑證和敏感資訊。
- 通知元件:向客戶和管理員發送有關付款狀態的通知。
運輸微服務
關鍵組件包括:
- 運費計算組件:與外部 API 交互,根據重量、目的地和其他變數計算運費。它已被改編為使用Azure Logic Apps與第三方服務整合。
- 追蹤元件:監控訂單交付狀態並透過 Azure Functions 自動更新客戶。
庫存微服務
關鍵組件包括:
庫存控制組件:負責監控和調整庫存水準。與銷售系統集成,確保產品不會在沒有計劃補貨的情況下耗盡。
警報組件:當庫存水準達到最低水準時,向負責庫存補貨的人員產生警報。
代碼(代碼圖)
支付微服務:
運輸微服務:
庫存微服務:
結論:遷移改進和結果
系統遷移到 Azure 帶來了幾項重大改進:
- 可擴展性:Azure Kubernetes Service (AKS) 和 Azure App Service 的使用可讓每個微服務根據工作負載獨立擴展,確保系統能夠毫無問題地處理流量高峰。
- 彈性:使用 Azure 服務匯流排進行非同步訊息傳遞和具有高可用性的 Azure Database for PostgreSQL 確保系統對故障和中斷具有更強的彈性。
- 最佳化成本:遷移到雲端不僅可以降低實體伺服器的基礎架構和維護成本,還可以透過即用即付模式實現成本最佳化。
- 安全性:使用 Azure Key Vault 安全儲存憑證並實施多重驗證 (MFA) 和嚴格存取控制等安全實踐,提高了系統的整體安全性。
使用 Azure 架構完善的框架中的最佳實踐並實施 C4 模型,遷移不僅實現了架構現代化,還確保了系統更加可靠、可擴展和安全。
以上是從本地到全球:Azure 遷移提高了我們的效率和安全性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器