1現(xiàn)代化應(yīng)用開發(fā)之難亦是數(shù)據(jù)架構(gòu)創(chuàng)新之難
時間:2022-03-05 06:10:01 | 來源:行業(yè)動態(tài)
時間:2022-03-05 06:10:01 來源:行業(yè)動態(tài)
現(xiàn)代化應(yīng)用對規(guī)模、可用性和性能都提出了更高的要求。
對于現(xiàn)代化應(yīng)用來說,不僅要應(yīng)對劇增的用戶數(shù)量,還要支撐不斷增長的應(yīng)用負(fù)載種類和數(shù)量。這是現(xiàn)代化應(yīng)用開發(fā)面對的第一個難題更強(qiáng)的可擴(kuò)展性。
以游戲的場景為例,目前排名靠前的國民級游戲日活用戶已經(jīng)超過 1 億多人,未來百萬以上用戶量將成為應(yīng)用程序的常態(tài),我們暢想一下最近大火的元宇宙場景,如果是一個全球級別的元宇宙應(yīng)用,其用戶數(shù)量會是這個數(shù)據(jù)的數(shù)倍,甚至數(shù)十倍,媲美亞馬遜黑色星期五大促銷的高并發(fā)情況將成為日常。所有人都在一個元宇宙進(jìn)行交互的場景,對應(yīng)的后端系統(tǒng)響應(yīng)并發(fā)的要求是極高的。這不是在揣測,而是基于事實和現(xiàn)狀,對未來的合理預(yù)測。因此首先需要解決的,就是更大規(guī)模并發(fā)問題。
現(xiàn)代化應(yīng)用開發(fā)面對的第二個問題,是如何存儲海量數(shù)據(jù),以及存儲海量數(shù)據(jù)之后,如何對這些數(shù)據(jù)進(jìn)行實時化和智能化處理。
當(dāng)前數(shù)據(jù)已呈現(xiàn)出二八定律:結(jié)構(gòu)化數(shù)據(jù)占 20%,非結(jié)構(gòu)化數(shù)據(jù)占 80%。《微軟飛行模擬器》模擬真實的山脈、道路、云朵,產(chǎn)生了超過 2.5PB(2.5 x 10^6 GB)的結(jié)構(gòu)化數(shù)據(jù),終極元宇宙所需數(shù)據(jù)量至少比此高出多個數(shù)量級。
根據(jù) IDC 的最新報告,現(xiàn)有數(shù)據(jù)中非結(jié)構(gòu)化數(shù)據(jù)占比已超過 90%。隨著新型軟件的增多,非結(jié)構(gòu)化數(shù)據(jù)占比將越來越高。不同格式、不同標(biāo)準(zhǔn)的非結(jié)構(gòu)化數(shù)據(jù)在技術(shù)上比結(jié)構(gòu)化數(shù)據(jù)更難存儲和分析。傳統(tǒng)數(shù)據(jù)架構(gòu)應(yīng)對這樣的海量數(shù)據(jù)將會很吃力。
另外,現(xiàn)代化應(yīng)用還需要考慮性能和延遲的問題。未來,新的現(xiàn)代化應(yīng)用都會以遍布全球的用戶為目標(biāo),這就對延遲有極高的要求。在游戲中,10ms 的延遲都是不可接受的,有些游戲甚至需要內(nèi)存級別的延遲。超強(qiáng)的帶寬、超快的傳輸速度等的實現(xiàn),需要遍布全球的通信基礎(chǔ)設(shè)施建設(shè)。
需要注意的是,在考慮高并發(fā)和低延遲的同時,還需要兼顧考慮總體質(zhì)量和成本。建立、運行和維護(hù)這么大規(guī)模的應(yīng)用需要耗費的人力和物力,一般企業(yè)可能難以承受。所以除了質(zhì)量,成本也是需要考慮的問題。
總結(jié)來看,現(xiàn)代化應(yīng)用至少要處理 TB 級、PB 級的結(jié)構(gòu)化數(shù)據(jù)和數(shù)倍于此的非結(jié)構(gòu)化數(shù)據(jù),支持分布在全球的數(shù)百萬用戶,并以極低的延遲每秒處理數(shù)百萬個請求。
對于非結(jié)構(gòu)化數(shù)據(jù),如今很多企業(yè)開始基于 Amazon S3 這類具備 EB 級擴(kuò)展能力的云存儲構(gòu)建云上數(shù)據(jù)湖,并通過云原生數(shù)據(jù)分析處理工具對這些數(shù)據(jù)進(jìn)行處理分析。而對于結(jié)構(gòu)化數(shù)據(jù),還需要彌補以下缺陷:
- 企業(yè)被傳統(tǒng)商業(yè)數(shù)據(jù)庫束縛,而難以開展創(chuàng)新。傳統(tǒng)商業(yè)數(shù)據(jù)庫不僅價格昂貴,還有專有技術(shù)及許可條款,需要經(jīng)常進(jìn)行審計。雖然越來越多的企業(yè)轉(zhuǎn)向了 MySQL 和 PostgreSQL 等開源數(shù)據(jù)庫,但他們?nèi)孕枰逃脭?shù)據(jù)庫的性能。
- 無法滿足特定場景需求。隨著應(yīng)用場景的不斷增加,不同應(yīng)用程序有了自己特定的需求?,F(xiàn)在,開發(fā)人員越來越多地使用微服務(wù)架構(gòu)來構(gòu)建應(yīng)用程序,并且選擇新一代的關(guān)系型和非關(guān)系型數(shù)據(jù)庫。但關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)耦合性大,不利于擴(kuò)展分布式部署。非關(guān)系型數(shù)據(jù)庫沒有事務(wù)處理,復(fù)雜查詢方面略微欠缺。
- 傳統(tǒng)數(shù)據(jù)庫運維模式仍舊需要耗費精力和成本。運維耗時但價值輸出較低,但企業(yè)又不得不在這方面耗費精力和成本。
關(guān)鍵詞:數(shù)據(jù),創(chuàng)新,現(xiàn)代化