云存儲架構能解決 DevOps 的什么問題?
一、云存儲架構介紹
云存儲,也稱為數據存儲即服務,是對接口后的存儲的抽象,可在該接口內按需管理存儲。此外,接口抽象化存儲的位置,這樣一來,不管存儲是在本地還是遠程(或混合)都無關緊要。云存儲基礎架構引入新的架構,能夠支持為大量潛在用戶提供不同水平的服務,以及地理上分散的存儲容量。了解云存儲架構的關鍵架構屬性,從數據保護和完整性到存儲優化。
以目前數據增長的速度來看,云存儲越來越流行不足為奇。增長速度最快的數據是歸檔數據,鑒于很多因素它是云存儲的理想之選,這些因素包括成本、訪問頻率、保護和可用性。但是并非所有云存儲都是相同的。云存儲的提供商可能主要關注于成本,而其它的云存儲提供商可能關注于可用性或性能。因此沒有一個架構具有單一側重點,但是一個架構實現給定特征的程度定義了其市場和適當的使用模型。
不從效用角度談論架構是很難的。筆者想表達的意思是,通過各種特征度量一個架構,包括成本、性能、遠程訪問,等等。因此,筆者首先定義一組可度量云存儲模型的標準,然后探究云存儲架構內的一些有趣的實現。
首先,需要討論一個通用的云存儲架構,如下圖所示,設置上下文以供后面探究獨特的架構特性。云存儲架構主要關乎以一個高度可擴展和多租戶的方式按需交付存儲。通用的云存儲架構包含一個導出 API 以訪問存儲的前端。在傳統的存儲系統中,這個 API 是 SCSI 協議;但是在云環境中,這些協議在演化。在那里您可以找到 Web 服務前端、基于文件的前端,甚至更多傳統前端(比如 Internet SCSI 或 iSCSI)。在前端后面是一個中間件層,筆者將它稱作存儲邏輯。該層通過傳統的數據放置算法(考慮地理布局)實現各種功能,比如復制和數據簡縮。最后,后端實現對數據的物理存儲。這可能是一個實現特定功能的內部協議或物理磁盤的一個傳統后端。
一個通用的云存儲架構圖
圖中可以看到當前云存儲架構的一些特征。注意,沒有某一個特征在通用的云存儲特性場景中是獨有的,需要根據場景選擇一些重要的特征。這些特征的定義見下表。
特性中,其中以可管理性和訪問方式最重要,其中的含義如下:
可管理性?
云存儲的一個重點是成本。如果客戶可以購買并在本地管理存儲,而不是在云中租賃它,那么云存儲市場就會消失。但是成本可劃分為兩個高級類別:物理存儲生態系統本身的成本和管理它的成本。管理成本是隱式的,但卻是總體成本的一個長期組成部分。為此,云存儲必須能在很大程度上進行自我管理。引入新存儲,其中系統通過自動自我配置來容納云存儲的能力和在出現錯誤時查找和自我修復的能力很重要。在未來,諸如自主計算這樣的概念將在云存儲架構中起到關鍵的作用。
訪問方法?
云存儲與傳統存儲之間最顯著的差異之一是其訪問方法,大部分提供商實現多個訪問方法,但是 Web 服務 APIs 是常見的。許多 APIs 是基于 REST 原則實現的,即在 HTTP 之上開發(使用 HTTP 進行傳輸)的一種基于對象的方案。REST APIs 是無狀態的,因此可以簡單而有效地予以提供。許多云存儲提供商實現 REST APIs,包括 Amazon Simple Storage Service (Amazon S3)、Windows Azure,和 Mezeo Cloud Storage Platform。
Web 服務 APIs 的一個問題是,它們需要與應用程序集成,以利用云存儲。因此,對云存儲也使用常見的訪問方法來提供即時集成。例如,NFS/Common Internet File System (CIFS) 或 FTP 等基于文件的協議,iSCSI 等基于塊的協議。Nirvanix、Zetta 和 Cleversafe 等云存儲提供商提供這些訪問方法。
盡管上面提到的協議是最常用的,但也有適合云存儲的其他協議。最有趣的其中一個是基于 Web 的分布式創作與版本控制(WebDAV)。WebDAV 也基于 HTTP,且將 Web 作為一種可讀寫的資源加以啟用。WebDAV 的提供商包括 Zetta 和 Cleversafe 等。
二、云存儲架構能解決DevOps的什么問題
DevOps是指開發運維一體化,是互聯網企業經常采用和談論的技術,也是迭代應用的基礎,從某種程度上說,DevOps可以是云原生應用的代名詞。
與傳統企業不同,互聯網企業采用云原生化設計,微服務化、DevOps、容器更能夠適應云環境的需要。在數據存儲上,采用多副本、糾刪碼技術,滿足數據存儲可靠性的需求。云原生能夠和云存儲進行完美的融合嗎,業內通常將云存儲作為容器云的底層存儲支撐單元,屬于云原生能力生態的一部分。
首先,云存儲架構有諸多優點,絕大多數優點由容器云進行能力覆蓋,在這其中,一部分優點被DevOps進行復用,如自動化能力、可靠性能力,還包括了數據保護方面的能力。在DevOps體系內,云存儲被賦予了一個概念性的名詞“BaaS”,BaaS可以分為個層面進行理解,一個是公有云提供云存儲服務,從目前情況看,公有云服務商通常借助第三方的云存儲廠商的解決方案集成在產品服務目錄或marketplace中提供服務,與公有云SaaS服務不同;同時還有一些云存儲廠商自己提供服務,但是遇到了比較大的挑戰。
第二種服務模式是對云上存儲數據提供針對性的服務,比如數據驗證,蜜罐測試,安全驗證等等業務增值服務,以及幫助用戶從云上把數據搬下來,實現數據合規性要求,這也是一種服務。
第三種服務,有很多用戶從物理機要遷移到虛擬機,或者從虛擬機遷移到云上,或者從A云到B云。這里面有云間跨云的遷移服務,中間的VCSP的Partner就會利用Veeam的技術幫助實現這樣的服務。
三、云存儲、云計算、DevOps三者之間的關系
1.云計算和DevOps的關系?
DevOps的定義通常分為兩個方面:
(1)開發和運維之間更友好。在使用這個定義的企業中,IT運維是單獨存在的,但是對開發人員來說是非常友好的。例如,DevOps在基礎設施的配備中為開發人員提供了自助目錄,也為新代碼的部署提供了技術支持的通道。
(2)DevOps強調獨立的綜合型團隊。在使用這個定義的企業中,開發人員承擔運維的責任,反之亦然。
云計算不是一種全新的網絡技術,而是一種全新的網絡應用概念,云計算的核心概念就是以互聯網為中心,在網站上提供快速且安全的云計算服務與數據存儲,讓每一個使用互聯網的人都可以使用網絡上的龐大計算資源與數據中心。現階段所說的云服務是指分布式計算、效用計算、負載均衡、并行計算、網絡存儲、熱備份冗雜和虛擬化等計算機技術混合演進并躍升的結果。
DevOps和云計算的出現是由于社會行為的變化以及對企業響應的相應調整。DevOps是一次高級、快速且不間斷的軟件程序傳輸過程,云平臺是驅動軟件實施敏捷性的性能平臺。云計算推動IT轉型,通過使用具和自動化技術,幫助企業縮減了工作流程,簡化并嵌入DevOps流程,提高了效率,從而實現了真正意義上的變革。這兩個功能互為關聯,以幫助企業控制開發并利用性能,甚至消除了容易出錯的環境。
2.云存儲和DevOps的關系?
云存儲屬于云計算體系的范疇,同樣也屬于基礎設施即代碼的范疇,云存儲和DevOps的集成屬于基礎設施即代碼和DevOps集成中的一個子項。基礎設施即代碼是一種用描述性的方式來管理基礎設施,包括了網絡,虛擬機,存儲,負載均衡等。
基礎設施即代碼和DevOps的集成通常在持續交付階段,通過提供環境支撐、數據支撐、部署支撐等服務能力。基礎設施即代碼可以在DevOps最佳實踐中作為關鍵的屬性,開發人員可以更多地參與定義配置,運維團隊在開發過程之前提前介入。以云存儲為例,運維團隊利用云存儲管理工具可以提高服務器狀態和配置的可見性,最終為企業內的用戶提供可視性,旨在將團隊聚集在一起,最大限度地發揮他們的作用。自動化通常旨在解決手動過程中的混亂和容易出錯的問題,并使其更高效,更高效。允許創建更好的軟件和應用程序,靈活,減少停機時間,并為公司提供整體成本效益的方式。同時,云存儲提供的接口服務、可視化服務、監控服務,提高自動化能力的同時,降低技術的復雜性,這種多團隊協作的方式也是DevOps的核心思想。
四、云數據和云DevOps的集成方式
早期的DevOps實踐,利用云計算的優點,通過改善數據的可訪問性來加強協作。然而,這些早期的DevOps實踐,通常與業內頭部的云供應商簽訂協議,提供更多的存儲容量和看似更靈活、更容易訪問的格式。在大多數情況下,這些協議提供了即時的滿足感,但隨著DevOps能力的擴展,隨著DevOps實踐不斷深入,發現了新的痛點,因為服務費和出口費堆積如山,團隊被迫增加預算以滿足存儲需求,或者冒著滿足限制和數據丟失的風險。
這種情況造成了云存儲的困境。公司要么為超過他們所需的云存儲支付費用,要么不得不選擇保留哪些數據,刪除哪些數據。這些不可持續的供應商協議引入了擴大或縮小存儲空間的財務痛點,超過了保留所有日常產生和收集的寶貴數據的好處。因此,大多數人都停留在考慮存儲多少和存儲什么的問題上,而不是使用其所有數據來推動業務發展。
這種形式的供應商鎖定對DevOps團隊來說是一種傷害,因為這些團隊依靠看似無窮無盡的數據來進行實驗、進行維護以及開發和部署新的應用程序。
最近IDC的一份報告顯示,目前僅今年的數據存儲量就有望達到59zettabytes,未來三年的創造和消費幾乎超過了之前30年的總和。而DevOps固然促成了這一高峰,但隨著企業的不斷發展和數字化轉型,企業所遇到最嚴重的問題是數據為王的情況下,一家公司無縫存儲、訪問和利用數據的能力將使其在競爭中脫穎而出。
這種增長的問題是找到在云中可持續存儲這些數據的方法,特別是當團隊被現有的存儲協議所束縛,正在消耗預算時。這要從DevOps團隊重新思考他們的方法開始。云戰略不需要將云存儲和可訪問性視為賬單和服務限制通知的反復循環,而是需要專注于只為任何特定時間所需的空間付費的能力,而不必擔心訪問存檔數據的額外費用。
如果需要擴大存儲容量,想增加多少容量就增加多少容量的可能性較小。企業由于特殊原因需要縮減規模或進行存儲資源的釋放,或者需要在短時間內訪問存檔數據,數據容量的彈性伸縮是否能夠跟得上企業的發展,這些問題其實都是DevOps團隊需要考慮的問題,因此需要云存儲在存儲的能力上增加存儲生命周期管理。
通過這種轉變,DevOps團隊可以從保存、歸檔和銷毀數據轉向收集和利用所有數據,以推動當今數字經濟中所需要的數據驅動的洞察力。這種更大能力云存儲思維方式的改變消除了限制,并能夠以更快、更可持續的速度進行創新。
五、云存儲在DevOps發展過程中的展望
人們經常認為DevOps和云存儲是獨立的實體,但隨著軟件和應用程序開發發展到包括預測分析等功能,顯然需要這兩個實體之間的結合。
通過重新思考云存儲在業務層的價值,DevOps團隊可以釋放出更高的效率,從而實現技術創新的下一次革命。?