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