系統設計概念:生產 Web 應用的架構
在你使用的每個完美應用程式背後,都有一整套的架構、測試、監控和安全措施。今天,讓我們來看看一個生產就緒應用程式的非常高層次的架構。
CI/CD 管道
我們的第一個關鍵領域是持續整合和持續部署——CI/CD 管道。
這確保我們的程式碼從儲存庫經過一系列測試和管道檢查,無需任何手動干預就進入生產伺服器。
它配置了像 Jenkins 或 GitHub Actions 這樣的平臺,用於自動化我們的部署流程。
與伺服器的互動
一旦我們的應用程式投入生產,它就必須處理大量使用者請求。這由我們的負載均衡器和反向代理(如 Nginx)管理。
它們確保使用者請求均勻分佈在多個伺服器上,即使在流量激增期間也能保持平穩的使用者體驗。
骨幹:資料儲存和外部 API
我們的伺服器還需要儲存資料。為此,我們還有一個不執行在相同生產伺服器上的外部儲存伺服器。相反,它透過網路連線。
我們的伺服器可能還與其他伺服器通訊。而且我們可以有多個這樣的服務,不僅僅是一個。
監控、日誌和警報:默默的保護者
為了確保一切執行順利,我們有日誌記錄和監控系統,對每個微觀互動保持敏銳的關注,儲存日誌並分析資料。
將日誌儲存在外部服務上是一種標準做法,通常不在我們的主要生產伺服器上。
對於後端,像 PM2 這樣的工具可以用於日誌記錄和監控。對於前端,像 Sentry 這樣的平臺可以用於實時捕獲和報告錯誤。
警報服務
當事情不按計劃進行時,也就是我們的日誌系統檢測到失敗的請求或異常時?
首先,它通知我們的警報服務。之後,推送通知被髮送,以保持使用者的知情。從一般的“出現問題了”到具體的“支付失敗”,有效的溝通確保使用者不會被置於黑暗中,培養了信任和可靠性。
現代做法是將這些警報直接整合到我們常用的平臺中,如 Slack。
想象一下一個專門的 Slack 頻道,警報在問題出現的瞬間彈出。這使開發人員幾乎可以立即採取行動,在問題升級之前解決根本原因。
在生產環境中除錯
之後,開發人員必須除錯問題。
日誌檢視:首先,需要識別問題。我們之前提到的那些日誌?它們是我們首選的工具。開發人員透過它們篩選,尋找可能指向問題源的模式或異常。
在安全環境中複製:黃金法則是——永遠不要直接在生產環境中除錯。相反,開發人員在‘staging’或‘test’環境中重新建立問題。這確保使用者不會受到除錯過程的影響。
開發人員使用工具來檢視執行中的應用程式並開始除錯。
熱修復:一旦錯誤修復,就會推出‘hotfix’。這是一個快速的、臨時的修復,旨在讓事情再次執行起來。這就像在更永久的解決方案可以實施之前的一個補丁。
系統設計概念系列文章
計算機的層次化架構
每個開發者都應該知道的7個原則
6個系統設計的基本概念
資料庫:系統設計的核心
圖解系列
系統設計中的快取技術:完整指南
關聯式資料庫的全景圖
Redis 全景解析
當然架構設計、全景圖解系列還有很多,快來關注一起學習吧~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2998583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通俗易懂的生產環境Web應用架構介紹Web應用架構
- 百萬年薪架構師之路:談應用系統架構設計架構
- RocketMQ生產部署架構如何設計MQ架構
- 【web】資料庫應用系統設計體系結構Web資料庫
- Kafka的生產者優秀架構設計Kafka架構
- 新零售SaaS架構:客戶管理系統的應用架構設計應用架構
- 應用架構圖的設計應用架構
- PetShop的系統架構設計架構
- 【生產實踐總結】支撐百萬連線的系統應該如何設計其高併發架構?【石杉的架構筆記】架構筆記
- iOS應用架構談:架構設計的方法論iOS應用架構
- Unity應用架構設計(9)——構建統一的 RepositoryUnity應用架構
- Java 系統架構設計Java架構
- 概念性架構設計架構
- 應用系統產品設計與規劃
- 系統架構設計師學習(二)系統架構設計師緒論架構
- React應用架構設計指南React應用架構
- iOS應用架構談(一):架構設計的方法論iOS應用架構
- 傳統應用系統架構向微服務應用架構升級的實戰案例微服務應用架構
- 系統架構設計之-任務排程系統的設計架構
- 系統架構:Web應用架構的新趨勢---前端和後端分離的一點想法Web應用架構前端後端
- SaaS架構:多租戶系統架構設計架構
- 系統架構設計師感想架構
- 架構設計:生產者/消費者模式[0]:概述架構模式
- PetShop的系統架構設計(一)(轉)架構
- .NET應用架構設計—重新認識分層架構(現代企業級應用分層架構核心設計要素)應用架構
- 大資料Lambda架構概念及應用大資料架構
- srm供應商管理系統架構設計解決方案架構
- React Native App應用架構設計React NativeAPP應用架構
- Linux系統程式設計(21)——訊號的產生Linux程式設計
- Java全棧程式設計師之07:IDEA中使用MAVEN構架生產級的Web專案Java全棧程式設計師IdeaMavenWeb
- 企業應用架構研究系列三:應用系統整合應用架構
- FMEA在架構設計中的應用分析架構
- 總結 - 設計模式,企業應用架構模式,架構模式設計模式應用架構
- [譯] 構建未來的設計生態系統
- 新零售SaaS架構:訂單履約系統的應用架構應用架構
- 應用程式碼也決定系統架構架構
- Web3.0應用程式架構Web架構
- [譯] Web 應用架構基礎課Web應用架構