新聞中心
揭開云原生數(shù)據(jù)管理的神秘面紗:操作層級
譯文 精選
作者: 張鋒 2022-07-18 10:25:47
云計(jì)算
云原生 本文討論了跨多個屬性 (包括一致性、存儲需求和性能) 的各種數(shù)據(jù)管理方法的優(yōu)缺點(diǎn)。

十年的賓川網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整賓川建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“賓川網(wǎng)站設(shè)計(jì)”,“賓川網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
作者 | Gaurav Rishi
譯者 | 張鋒
審校 | Noe
隨著應(yīng)用容器化的速度加快,Day2服務(wù)已經(jīng)成為一個迫在眉睫的問題。這些Day2服務(wù)包括數(shù)據(jù)管理功能,如備份和災(zāi)難恢復(fù)以及應(yīng)用程序遷移。在這個云原生應(yīng)用容器化的新世界中,微服務(wù)通常部署在多個位置(區(qū)域、云、本地),同時使用多種數(shù)據(jù)服務(wù)(MongoDB、Redis、Kafka等)和存儲技術(shù)來存儲這些應(yīng)用狀態(tài)。
在這種環(huán)境中,傳統(tǒng)基礎(chǔ)設(shè)施或基于虛擬機(jī)管理程序的解決方案將很難發(fā)揮作用,那么為云原生應(yīng)用設(shè)計(jì)和實(shí)施這些數(shù)據(jù)管理功能的正確架構(gòu)是什么呢?你應(yīng)該如何分析存儲供應(yīng)商、數(shù)據(jù)服務(wù)供應(yīng)商和云供應(yīng)商提供的各種數(shù)據(jù)管理選項(xiàng)來確定適合你環(huán)境和需求的正確方法呢?本文深入探討了各種數(shù)據(jù)管理方法在一致性、存儲要求和性能等多個屬性上的優(yōu)缺點(diǎn)。
定義一個詞匯
首先,我們將解構(gòu)和簡化技術(shù)棧以顯示數(shù)據(jù)可能在云原生應(yīng)用中的位置。
在考慮數(shù)據(jù)管理時,我們可以在上圖中顯示的一個(或多個)層上進(jìn)行操作。讓我們列舉這些層:
1、物理存儲
該層包括各種存儲硬件選型,可以將狀態(tài)存儲在非易失性存儲器中,并可選擇從NVMe和SSD設(shè)備到旋轉(zhuǎn)型磁盤甚至磁帶的物理介質(zhì)。它們有不同的外形尺寸,包括陣列和獨(dú)立機(jī)架服務(wù)器。
物理存儲可以位于:
- 在本地,你可能會遇到來自希捷、西部數(shù)據(jù)和美光等供應(yīng)商的存儲硬件。
- 在托管云提供商的數(shù)據(jù)中心中。雖然你可能永遠(yuǎn)不會接觸物理設(shè)備,但你知道它是云的基礎(chǔ)架構(gòu)一部分。
2、文件和塊存儲
該軟件層提供文件或塊級結(jié)構(gòu),以實(shí)現(xiàn)從底層物理存儲進(jìn)行高效的讀寫操作。在文件和塊這兩種情況下,底層存儲可以是獨(dú)立的(本地磁盤)或共享的網(wǎng)絡(luò)資源(NAS 或 SAN)。
- 塊存儲允許你從本地或遠(yuǎn)程磁盤創(chuàng)建具有低延遲并可通過iSCSI和FiberChannel等協(xié)議訪問的原始存儲卷。云供應(yīng)商上的塊存儲實(shí)現(xiàn)包括Amazon EBS和GCE 持久性磁盤。
- 文件存儲使用NFS和SMB等協(xié)議為文件語義和操作提供共享存儲。本地常見的文件存儲實(shí)現(xiàn)包括來自NetApp和Dell EMC的產(chǎn)品。云供應(yīng)商上的文件存儲實(shí)現(xiàn)包括 Amazon EFS、Google Cloud Filestore和Azure Files。
這一層通常提供快照功能,按照時間點(diǎn)創(chuàng)建卷的副本來進(jìn)行保護(hù)。此外,在 Kubernetes 環(huán)境中,該層提供容器存儲接口 (CSI) 驅(qū)動程序來規(guī)范化API,讓上層可以使用這些API來調(diào)用快照功能。請注意,就所支持的功能而言,并非所有CSI實(shí)現(xiàn)都是相同的。
3、數(shù)據(jù)服務(wù)
這一層位于文件/塊存儲實(shí)現(xiàn)之上。它提供了各種數(shù)據(jù)庫實(shí)現(xiàn)以及日益流行的存儲類型,即對象(又名 blob)存儲。該層通常與應(yīng)用程序進(jìn)行交互,底層數(shù)據(jù)庫實(shí)現(xiàn)基于工作負(fù)載和業(yè)務(wù)邏輯來選擇。對于基于微服務(wù)的應(yīng)用程序,多語言持久性是一種規(guī)范,因?yàn)槊總€微服務(wù)都會為當(dāng)前的工作選擇最合適的數(shù)據(jù)服務(wù)。
一些數(shù)據(jù)庫類型和示例實(shí)現(xiàn)的子集包括:
- SQL數(shù)據(jù)庫:MySQL、PostgreSQL、SQL Server
- NoSQL數(shù)據(jù)庫:
- 鍵值存儲:Redis、BerkeleyDB
- 時間序列數(shù)據(jù)庫:InfluxDB 、Prometheus
- 圖數(shù)據(jù)庫:Neo4j、 GraphDB
- 寬列存儲:Cassandra、Azure Cosmos
- 文檔存儲:MongoDB、CouchDB
- 消息隊(duì)列:Kafka、RabbitMQ、Amazon SQS
- 對象存儲1:Amazon S3、Google Cloud Storage、Minio
這些數(shù)據(jù)庫還有幾個托管實(shí)例,稱為數(shù)據(jù)庫即服務(wù) (DBaaS) 系統(tǒng)。這些通常包括上面列出的數(shù)據(jù)庫類別之一,有時可以提供自動擴(kuò)展,同時滿足即服務(wù) ( -aaS ) 業(yè)務(wù)的消費(fèi)經(jīng)濟(jì)。DBaaS系統(tǒng)的示例包括 Amazon RDS、MongoDB Atlas和Azure SQL。
從數(shù)據(jù)保護(hù)的角度來看,每個數(shù)據(jù)庫實(shí)現(xiàn)都提供了一組特定的實(shí)用程序( PostgreSQL的pg_dump或WAL-E,MongoDB的mongodump等)來備份和恢復(fù)數(shù)據(jù)。值得注意的是,在一致性、恢復(fù)顆粒度和速度方面,許多實(shí)用程序具有不同的功能。無論它們是作為獨(dú)立實(shí)用程序提供還是作為即服務(wù)產(chǎn)品的一部分提供,通常僅限于特定的數(shù)據(jù)庫實(shí)現(xiàn),或者至多是一種數(shù)據(jù)庫類型。
4、有狀態(tài)應(yīng)用
應(yīng)用程序?qū)邮菢I(yè)務(wù)邏輯所在的地方,在云原生世界中,應(yīng)用程序通?;诂F(xiàn)代敏捷開發(fā)并作為分布式微服務(wù)實(shí)現(xiàn)。幾乎所有應(yīng)用程序都有一個需要持久化的狀態(tài)。雖然有多種存儲應(yīng)用程序狀態(tài)的模式,但我們需要在有狀態(tài)的 Kubernetes 應(yīng)用程序的上下文中將以下信息作為一個原子單元來持久化和保護(hù):
- 應(yīng)用程序數(shù)據(jù):跨各種數(shù)據(jù)服務(wù)、塊和文件存儲實(shí)現(xiàn)分布在多個容器上。
- 應(yīng)用程序定義和配置:應(yīng)用程序鏡像和相關(guān)的環(huán)境配置分布在各種 Kubernetes 對象中,包括ConfigMaps、Secrets等。
- 其他配置狀態(tài):包括CI/CD流水線狀態(tài)、發(fā)布信息和關(guān)聯(lián)的Helm部署元數(shù)據(jù)。
上圖為一個有狀態(tài)應(yīng)用程序的示例,它突出顯示了一些需要保護(hù)的組件和相關(guān)狀態(tài)。需要注意的是,對于實(shí)際部署,應(yīng)用程序由數(shù)百個這樣的底層組件組成。此外,在云原生架構(gòu)中,保護(hù)的原子性單元需要是應(yīng)用程序與底層數(shù)據(jù)服務(wù)或存儲基礎(chǔ)設(shè)施層。如前所述,這是因?yàn)閼?yīng)用程序的狀態(tài)包括分布在多個物理或虛擬節(jié)點(diǎn)和數(shù)據(jù)服務(wù)中的應(yīng)用程序數(shù)據(jù)、定義和配置。
結(jié)論
從備份/恢復(fù)和應(yīng)用程序可移植性的角度來看,一個好的數(shù)據(jù)管理解決方案需要將整個應(yīng)用程序視為原子性單元,這使得傳統(tǒng)以管理程序?yàn)橹行牡慕鉀Q方案不再適用。我們還展示了一個簡單的技術(shù)棧圖,從各種數(shù)據(jù)服務(wù)、塊和文件存儲以及跨本地和云實(shí)現(xiàn)物理存儲的角度顯示應(yīng)用程序狀態(tài)實(shí)際所在的位置。這定義了一個基本范疇,使我們能夠深入了解云數(shù)據(jù)管理的操作層級。
附注
有些人可能爭辯認(rèn)為對象存儲應(yīng)該與文件/塊屬于同一層。在本文中,對象存儲將被視為另一種具有鍵值接口的數(shù)據(jù)服務(wù),如果需要,可以在Kubernetes中運(yùn)行。
本文題目:揭開云原生數(shù)據(jù)管理的神秘面紗:操作層級
鏈接URL:http://www.5511xx.com/article/dhcjssd.html


咨詢
建站咨詢
