bmg28資訊網(wǎng)——每日最新資訊28at.com
一般來(lái)說(shuō),軟件系統(tǒng)的需求可以分為兩類:功能需求和非功能需求。軟件系統(tǒng)的架構(gòu)設(shè)計(jì)需要滿足這兩類需求。特別是系統(tǒng)架構(gòu)對(duì)軟件非功能需求的支持,成為架構(gòu)的質(zhì)量屬性。本文描述了軟件的10個(gè)質(zhì)量屬性,但這并不意味著每個(gè)質(zhì)量屬性都會(huì)出現(xiàn)在架構(gòu)設(shè)計(jì)中;你可以選擇對(duì)你的產(chǎn)品最重要的質(zhì)量屬性,然后實(shí)現(xiàn)它們。bmg28資訊網(wǎng)——每日最新資訊28at.com
可擴(kuò)展性
隨著用戶數(shù)量或請(qǐng)求數(shù)量的增加,系統(tǒng)的運(yùn)行和操作能力也會(huì)增加。在云平臺(tái)上,可通過(guò)水平或垂直擴(kuò)展機(jī)器或簡(jiǎn)單地附加一個(gè)自動(dòng)擴(kuò)展組來(lái)實(shí)現(xiàn)可擴(kuò)展性。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 流量模式:了解系統(tǒng)的流量模式。即使機(jī)器利用率低,也不值得生成盡可能多的機(jī)器。
- 日常模式:特定區(qū)域的流量在早上增加,晚上減少。
- 全球/區(qū)域模式:某些區(qū)域的應(yīng)用程序使用量很大。
- 突發(fā)流量:許多用戶在高峰期或人口稠密地區(qū)請(qǐng)求資源,但只有少數(shù)機(jī)器能夠提供服務(wù)。
- 自動(dòng)擴(kuò)展:能夠快速啟動(dòng)一些機(jī)器來(lái)處理突發(fā)流量,并在需求減少時(shí)優(yōu)雅地縮減。
- 延遲:能夠盡快為請(qǐng)求提供服務(wù),包括優(yōu)化算法和在用戶位置附近復(fù)制系統(tǒng)以減少往返請(qǐng)求。
可用性
通過(guò)正常運(yùn)行時(shí)間的百分比來(lái)衡量,定義系統(tǒng)正常運(yùn)行和工作時(shí)的時(shí)間比例??捎眯允芟到y(tǒng)錯(cuò)誤、基礎(chǔ)設(shè)施問(wèn)題、惡意攻擊和系統(tǒng)負(fù)載的影響。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 部署標(biāo)簽:部署應(yīng)用組件的多個(gè)獨(dú)立副本,包括數(shù)據(jù)存儲(chǔ)區(qū)。
- 區(qū)域部署:將后端服務(wù)部署到一組地理節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可以處理來(lái)自任何區(qū)域的任何客戶端請(qǐng)求。
可擴(kuò)展性
可擴(kuò)展性指標(biāo)擴(kuò)展系統(tǒng)的能力以及實(shí)現(xiàn)可擴(kuò)展性所需的工作。擴(kuò)展可以通過(guò)添加新功能或修改現(xiàn)有功能來(lái)實(shí)現(xiàn),原則是在不影響當(dāng)前系統(tǒng)功能的前提下進(jìn)行增強(qiáng)。bmg28資訊網(wǎng)——每日最新資訊28at.com
模塊化/可重用性:可重用性和可擴(kuò)展性使技術(shù)能夠轉(zhuǎn)移到另一個(gè)項(xiàng)目中,減少開(kāi)發(fā)和維護(hù)時(shí)間,同時(shí)增強(qiáng)可靠性和一致性。可插拔性:能夠輕松插入其他組件,如微內(nèi)核架構(gòu)。bmg28資訊網(wǎng)——每日最新資訊28at.com
一致性
一致性確保每次讀取操作返回最新的寫操作結(jié)果。這意味著在執(zhí)行每次操作后,所有節(jié)點(diǎn)上的數(shù)據(jù)都是一致的,因此無(wú)論連接到哪個(gè)節(jié)點(diǎn),所有客戶端都能同時(shí)看到相同的數(shù)據(jù)。一致性提高了數(shù)據(jù)的新鮮度。bmg28資訊網(wǎng)——每日最新資訊28at.com
彈性
可恢復(fù)性:準(zhǔn)備和功能的過(guò)程可以在意外變化發(fā)生后將服務(wù)恢復(fù)到初始操作狀態(tài)。意外變化包括應(yīng)用程序的軟刪除或硬刪除或配置錯(cuò)誤。災(zāi)難恢復(fù)包括旨在防止或盡量減少災(zāi)難性事件造成的數(shù)據(jù)丟失和業(yè)務(wù)中斷的最佳實(shí)踐,涵蓋從設(shè)備故障和局部停電到網(wǎng)絡(luò)攻擊、民事緊急情況、犯罪或軍事攻擊,以及自然災(zāi)害。bmg28資訊網(wǎng)——每日最新資訊28at.com
設(shè)計(jì)模式:bmg28資訊網(wǎng)——每日最新資訊28at.com
- 隔離:將應(yīng)用程序的元素隔離到池中,以便當(dāng)一個(gè)池失敗時(shí),其他元素繼續(xù)運(yùn)行。
- 斷路器:在連接到遠(yuǎn)程服務(wù)或資源時(shí),處理可能需要不同時(shí)間修復(fù)的故障。
- 選舉:通過(guò)選舉一個(gè)實(shí)例作為負(fù)責(zé)管理其他實(shí)例的領(lǐng)導(dǎo)者,協(xié)調(diào)分布式應(yīng)用程序中協(xié)作任務(wù)實(shí)例集合執(zhí)行的操作。
可觀察性
可觀察性是收集有關(guān)程序執(zhí)行、內(nèi)部模塊狀態(tài)和組件之間通信的數(shù)據(jù)的能力。可以使用各種測(cè)試和跟蹤技術(shù)和工具來(lái)提高可觀察性。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 日志記錄:在每個(gè)請(qǐng)求中生成不同類型的日志:事件日志、事務(wù)日志、消息日志和服務(wù)器日志。
- 警報(bào)和監(jiān)控:準(zhǔn)備監(jiān)控儀表板,創(chuàng)建SLIs(服務(wù)級(jí)別指標(biāo))并設(shè)置關(guān)鍵警報(bào)。
- L1/L2/L3:為L(zhǎng)1/L2設(shè)置隨叫隨到的支持流程。L1支持與客戶互動(dòng),L2支持將L1路由到他們的票據(jù)并協(xié)助排除故障。L3是最終支持級(jí)別,通常涉及解決技術(shù)問(wèn)題的開(kāi)發(fā)團(tuán)隊(duì)。
安全性
軟件保護(hù)信息和數(shù)據(jù),為個(gè)人或其他產(chǎn)品或系統(tǒng)提供相應(yīng)級(jí)別的數(shù)據(jù)訪問(wèn)類型和授權(quán)。這一系列功能包括機(jī)密性(數(shù)據(jù)只能由授權(quán)人員訪問(wèn))、完整性(軟件防止未經(jīng)授權(quán)的訪問(wèn)或修改軟件或信息)、不可否認(rèn)性(能夠證明已發(fā)生的行為或事件)、可追責(zé)性(能夠追蹤用戶行為)和真實(shí)性(驗(yàn)證用戶身份)。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 審計(jì)性:審核和跟蹤系統(tǒng)活動(dòng),以便在安全漏洞發(fā)生時(shí)識(shí)別安全漏洞,確定漏洞的機(jī)制和范圍。遠(yuǎn)程存儲(chǔ)審計(jì)跟蹤可以防止入侵者掩蓋其蹤跡。
合法性:bmg28資訊網(wǎng)——每日最新資訊28at.com
- 合規(guī)性:遵守GDPR和個(gè)人信息保護(hù)法等數(shù)據(jù)保護(hù)法律法規(guī)。
- 隱私:能夠?qū)緝?nèi)部員工隱藏交易(加密交易,即使是DBA和網(wǎng)絡(luò)架構(gòu)師也看不到)。
- 身份驗(yàn)證:確保用戶身份的安全要求。
- 授權(quán):確保用戶只能訪問(wèn)應(yīng)用程序中的某些功能(通過(guò)用例、子系統(tǒng)、網(wǎng)頁(yè)、業(yè)務(wù)規(guī)則和字段級(jí)權(quán)限)。
持久性
耐久性是軟件在長(zhǎng)時(shí)間內(nèi)提供服務(wù)并滿足用戶需求的能力。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 復(fù)制:涉及共享信息以確保冗余資源之間的一致性,從而提高可靠性、容錯(cuò)性或可訪問(wèn)性。
- 容錯(cuò):容錯(cuò)性是一種允許系統(tǒng)在一個(gè)或多個(gè)組件發(fā)生故障時(shí)繼續(xù)正常運(yùn)行的功能。
- 歸檔:數(shù)據(jù)是否需要在一段時(shí)間后歸檔或刪除?(例如,客戶數(shù)據(jù)將在三個(gè)月后刪除或標(biāo)記為過(guò)時(shí),并在備用數(shù)據(jù)庫(kù)中歸檔以供將來(lái)訪問(wèn)。)
敏捷性
敏捷性已成為描述當(dāng)代軟件方法學(xué)的流行術(shù)語(yǔ),敏捷團(tuán)隊(duì)可能是那些能夠適應(yīng)變化的團(tuán)隊(duì)。bmg28資訊網(wǎng)——每日最新資訊28at.com
- 可維護(hù)性:修改應(yīng)用程序和增強(qiáng)系統(tǒng)的難易程度。它表示開(kāi)發(fā)人員在修改軟件以改進(jìn)、糾正或適應(yīng)環(huán)境和需求變化方面的有效性和效率。
- 可測(cè)試性:開(kāi)發(fā)人員和其他人測(cè)試軟件的難易程度。
- 開(kāi)發(fā)容易性:開(kāi)發(fā)人員在修改軟件時(shí)不會(huì)引入缺陷或損害現(xiàn)有產(chǎn)品質(zhì)量的程度。
- 可部署性:從代碼提交到生產(chǎn)部署所需的時(shí)間。
- 可安裝性:在所有必要的平臺(tái)上安裝系統(tǒng)的難易程度。
- 可升級(jí)性:能夠輕松/快速地在服務(wù)器和客戶端上升級(jí)此應(yīng)用程序/解決方案的以前版本。
- 可移植性:系統(tǒng)是否需要在多個(gè)平臺(tái)上運(yùn)行?(例如,前端是否需要與Oracle和SAP對(duì)接?)
- 可配置性:最終用戶可以通過(guò)可用接口輕松更改軟件配置的各個(gè)方面。
- 兼容性:產(chǎn)品、系統(tǒng)或組件在共享相同硬件或軟件環(huán)境時(shí)與其他產(chǎn)品、設(shè)計(jì)或成員交換信息的程度。
結(jié)語(yǔ)
在了解軟件架構(gòu)的10個(gè)質(zhì)量屬性后,我們可能需要考慮哪些質(zhì)量屬性更適合我們的產(chǎn)品或項(xiàng)目。那么,我們?nèi)绾卧陧?xiàng)目中繼續(xù)采用這些特性?bmg28資訊網(wǎng)——每日最新資訊28at.com
一旦了解了功能需求,嘗試識(shí)別系統(tǒng)中可能阻礙這些功能的瓶頸。如何找到瓶頸?你可以嘗試回答幾個(gè)問(wèn)題,例如:bmg28資訊網(wǎng)——每日最新資訊28at.com
- 系統(tǒng)能否在超過(guò)1億用戶的規(guī)模上運(yùn)行?
- 系統(tǒng)能否處理1萬(wàn)個(gè)并發(fā)請(qǐng)求?
- 數(shù)據(jù)處理是否安全?
- 是否可以輕松添加更多功能而不影響現(xiàn)有功能?通過(guò)回答這些問(wèn)題,我們可以更好地理解和應(yīng)用軟件架構(gòu)的質(zhì)量屬性,提高系統(tǒng)的整體性能和可靠性。
本文鏈接:http://www.tebozhan.com/showinfo-26-101272-0.html別做平庸Coder!掌握這十個(gè)架構(gòu)絕技,讓你成為團(tuán)隊(duì)MVP
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: 我們一起聊聊 Nginx 后端長(zhǎng)連接
下一篇: React 新 Hook:UseFormStatus 使用詳解