架構設計的 15 個關鍵概念
今天給大家帶來一份架構設計小抄,包含了系統設計的 15 個核心概念。請保存以備將來參考!
01 需求收集
需求收集是從利益相關者、用戶和其他相關方那里收集特定需求和期望的過程,以清晰地定義系統的目標。這一步驟對于確保最終產品滿足其既定目的和用戶需求至關重要。我們在搜集需求時,需要搜集功能性需求和非功能性需求(包括性能、高可用、擴展性等),并且排出優先級。有效的搜集方法包括訪談、調查、文檔分析和研討會。最終這些需求會以“用戶故事”的形式記錄下來,成為用戶和開發團隊的需求藍圖。
02 系統架構
系統架構是定義系統結構、行為和更多視圖的概念模型。它作為系統的藍圖,概述了組件、它們之間的關系以及指導它們設計和演變的準則。良好的架構支持系統的需求,是實現可擴展性、可靠性和性能的基礎。我們需要選擇一個合適的架構風格,比如前后端通信使用 REST ,服務間通信使用 gRPC等。
03 數據設計
數據設計專注于數據元素的結構化以及高效存儲、管理和檢索數據的模式定義。它涉及定義數據類型、關系和約束,以確保數據完整性并與系統的需求保持一致。有效的數據設計優化性能并支持可擴展性和可靠性。根據數據模型和存儲的需求,我們要選擇合適的數據庫,并定義符合監管要求和業務要求的留存規則。比如監管可能要求所有交易信息需保留 3 年以便問詢。
04 領域設計
領域設計,或領域驅動設計(DDD),涉及對系統的業務領域進行建模,以創建對問題空間的豐富、可理解的模型。它強調技術專家和領域專家之間的合作,確保系統準確反映并解決領域的復雜性。這一步對于降低系統整體復雜性尤為重要,好的設計使得領域之間的耦合降低,而領域內部高聚合。
05 可擴展性
可擴展性是系統在不影響性能的情況下處理增加負載的能力,可以通過增加單個節點的資源(Scale Up)或增加更多節點(Scale Out)來實現。設計可擴展性涉及無狀態架構、分布式系統原則和數據分區策略等考慮因素。為了更好地管理增加的節點,我們通常需要使用負載均衡,并且處理好節點的冷啟動。
06 可靠性
可靠性指的是系統正確且持續運行的能力。它包括容錯、冗余和故障轉移機制,以確保系統在硬件故障、軟件缺陷或外部干擾的情況下仍然運行且數據完整性得到維護。
07 可用性
可用性衡量系統正確運行的情況。通過冗余、故障轉移系統和強大的基礎設施實現高可用性,這些措施最大限度地減少停機時間,并確保用戶在需要時可以訪問系統。它通常以正常運行時間的百分比來量化。
08 性能
系統設計中的性能指的是系統在給定負載下的響應性和吞吐量。它涉及優化代碼、高效的數據訪問模式、緩存策略以及選擇合適的硬件和軟件以滿足速度和效率要求。
09 安全性
系統設計中的安全性確保數據的保密性、完整性和可用性。它包括采取措施防止未經授權的訪問、數據泄露和其他網絡威脅。這包括加密、認證、授權和定期的安全評估。
10 可維護性
可維護性是指系統易于修改以添加功能、修復缺陷或改善性能的程度。通過清晰、良好文檔化的代碼、遵循設計原則和模塊化架構來實現高可維護性,這允許輕松進行更新和升級。
11 測試
測試涉及驗證系統是否滿足其要求并按預期工作。它包括單元測試、集成測試、系統測試、性能測試、安全測試等一系列測試,每種測試都針對系統的不同層級。有效的測試在部署前識別出錯誤和問題,確保質量和可靠性。
12 用戶體驗設計
用戶體驗設計(UX)專注于確保系統用戶友好、直觀并滿足用戶的需求和期望。它涉及用戶研究、可用性測試和交互設計,以創建為用戶提供無縫且滿意體驗的產品。
13 成本估算
成本估算涉及預測開發、部署和維護系統所需的財務資源。它考慮了硬件、軟件、人員、培訓和運營成本等因素。準確的成本估算有助于預算和資源分配。
14 文檔
文檔提供有關系統設計、功能和使用的書面詳細信息和解釋。它對于維護、故障排除和升級系統以及培訓新用戶和開發人員至關重要。文檔應該清晰、全面且保持最新。
15 遷移計劃
遷移計劃概述了以最小化中斷將系統從舊系統遷移到新系統的策略。它包括數據遷移、系統測試、用戶培訓和出現問題時的回滾程序的步驟。有效的遷移計劃確保平穩過渡并減少數據丟失或停機的風險。