如果你有新的應用或客戶用例需要一個可擴展,按需或按使用量付費的存儲,那么備選名單里一定會有一個或多個公有云存儲服務提供商。如今,你的開發團隊可能已經玩轉云存儲;你的一些諸如備份、歸檔或分析等非主要應用可能已經在使用云存儲。
盡管云存儲已經走過很長一段路,它在生產系統中的應用依然相對有限。咨詢公司Taneja Group在2014年和2016年兩次對大中型企業進行了調查,詢問他們是否在公有云中運行任何業務關鍵型工作負載(例如企業資源規劃、客戶關系管理或其他生產型應用)(如下圖所示)。2014年,在云中運行一個或多個關鍵應用的受訪企業不到一半,這一比例在2016年增長到60%以上。盡管采納云的關鍵應用數量有顯著增加,但很多IT經理仍然對是否將生產應用和數據交付給公有云存儲提供商猶豫不決。
采納公有云的障礙
對安全性與合規性的擔憂是企業采納公有云存儲面臨的最大障礙,因為IT經理們對把關鍵數據從自家數據中心拿走放置在外邊猶豫不前。由不可預測的網絡延遲高峰所導致的應用性能變差,是另一個比較關注的問題。緊接著是把大量數據移入和移出云端,或者在云中遷移(例如使用了多家云服務提供商或切換提供商時)的成本和難度問題。另一個挑戰是對云中數據進行可靠而高效備份的需要,絕大多數公有云存儲提供商對這一點的支持歷來不太好。
如何克服這些問題,并確保公有云存儲(包括生產工作負載)的部署成功,?我們建議使用以下三步驟進行評估,比較和對比各個提供商的關鍵能力,服務水平協議(SLA)和過往記錄,以便你能做出更明智的決策(參見“采納云存儲的三步法” )。
讓我們來看一下評估公有云存儲提供商時,在安全性、合規性、性能以及SLA承諾等方面需要考量的具體內容。
安全性
通常的理解是,維護云數據的存儲安全是一種共享責任模式:云存儲提供商負責底層基礎架構的安全性,你負責將數據放到云上,并確保連接到云的設備或數據安全。
三大IaaS提供商(Amazon Web Services [AWS]、Microsoft Azure和Google Cloud)的云存儲服務都投入重金確保他們的物理數據中心設施和云基礎架構的安全,尤其強調保護他們的網絡免遭攻擊或入侵等。其它小型或區域性云服務提供商也專注于保護他們的云基礎設施。當然,你還是需要花時間看看他們的技術白皮書和最佳實踐,充分了解各家現有的安全規定。
雖然你需要確保連接或上傳到云的數據安全,公有云存儲提供商會提供相應的工具或功能來協助完成。這些保護性工具通常針對以下三種場景:數據訪問、傳輸中的數據,以及靜止數據。
數據訪問:總的來說,云存儲提供商允許你像在自己的數據中心一樣對用戶帳戶、計算實例、API和數據的訪問提供保護和控制。這是通過一系列身份認證技術來實現的,例如密碼、加密密鑰、證書或數字簽名等。
特定數據的訪問和策略設置使你能夠限制和規范對特定存儲單元、對象或文件的訪問。例如,在亞馬遜S3服務中,你可以使用訪問控制列表(ACL)對一組AWS用戶授予對特定存儲單元或對象的讀或寫權限,并使用Bucket Policies來啟用或禁用對存儲單元中部分或全部數據對象的訪問。了解每個云存儲提供商的認證功能和策略設置,確保它們能夠滿足你的企業需求。盡管大多數提供商都支持可選的多重身份驗證,我們建議你為帳戶登錄啟用這一選項。
傳輸中的數據:為了保護傳輸中的數據,公有云存儲提供商提供一種或多種形式的傳輸層或客戶端的加密機制。例如,對通過公共互聯網在用戶和Azure存儲之間傳輸的數據,微軟建議使用HTTPS進行安全傳輸,并提供客戶端加密手段,在數據傳輸到Azure存儲之前對數據進行加密。類似地,亞馬遜提供SSL加密終端,實現客戶端點和S3之間數據的安全上傳和下載,無論它們位于AWS內部還是外部。驗證每個提供商服務中的加密方法是否足夠強健,達到相關的安全或行業標準。
靜止數據:為了保護云端的靜止數據,一些公有云存儲提供商會在數據存入的時候自動加密數據,其他的則會讓用戶選擇由供應商做數據加密還是用戶自己進行。例如,谷歌云平臺服務始終對存儲的處于靜止狀態的客戶內容進行加密。對存儲在持久性磁盤中的新數據,谷歌使用AES-256標準進行數據加密,并讓你選擇由谷歌提供并管理加密密鑰還是由客戶自行進行。而另一方面,微軟Azure使你能夠利用客戶端加密方法自行加密數據(對傳輸中數據和云中的靜止數據都具有保護功能),或依靠SSE在數據寫入Azure時自動加密。亞馬遜S3中對靜止數據的加密功能與Azure幾乎相同。
此外,當你決定更換云存儲提供商的時候,需要檢查數據訪問日志(其中記錄了對特定存儲單元或對象的訪問請求)以及數據處理(擦除)規程,以確保數據被完全銷毀。
合規性標準
云存儲提供商應該有相應的資源和控制能力幫助你遵守主要的安全標準和行業法規。例如,根據你所在行業,業務重點以及對IT的需求,你可能需要云提供商的幫助,以確保在云端存儲和處理的信息遵守HIPAA、SOCI、PCI DSS或FedRAMP等一系列法規。因此,請務必查看云提供商所支持的合規性標準列表,包括第三方認證和委任。
性能需求
對于安全性與合規性,可進行客觀的評估。性能需求則與此不同,因為應用的性能高度依賴于IT環境,包括云基礎設施的配置、網絡連接速度以及該連接之上跑的其它流量。如果你在本地部署的傳統存儲系統中I/O延遲達到5到10毫秒,或者采用閃存存儲的性能數據比這更高,那么在選定云提供商之前需要預評估應用程序性能。如果沒有在真實生產環境中進行實測,要預測任何延遲敏感型應用在公有云中的性能是很難的。
訪問速度的高低,部分取決于數據存放的位置,這意味著如果你把多種應用都放置到云端,性能會更好。如果把主數據存儲在云中,卻把生產負載放在企業內部運行,那么需要評估本地云存儲網關(例如Azure StorSimple或AWS Storage Gateway)的使用情況,這類設備會在本地緩存經常訪問的數據,并(有可能)在數據發送到云之前對其進行壓縮或重復數據刪除等操作。
為進一步滿足I/O密集型用例和應用的性能需求,主要的公有云存儲提供商都提供高級存儲功能,以及針對此類工作負載進行了優化的實例。例如,微軟Azure的Premium Storage允許虛擬機磁盤將數據保存在SSD上,解決了延遲問題,從而有助于那些需要大量I/O的企業工作負載(例如CRM、消息隊列和其他數據庫應用等)遷移到云端。當然你一定猜得到,這些高級存儲服務的價格要比傳統云存儲高。
關于應用性能,底線是:請在購買前先試。
對于SLA,我們有何期待
云存儲服務水平協議(SLA)規定了每個結算期內的最短正常運行時間,以及如果不能滿足這些承諾你所擁有的追索權。與很多用戶的愿望不同的是,SLA不包括對存儲服務其他重要指標的目標或承諾,例如最大時延、最小I/O,或最壞情況下的數據持久性。
三大公有云服務提供商的每月正常運行時間百分比是這么計算的:用100%減去由于“錯誤”而未滿足的服務請求的平均百分比,這個百分比是在一個月的時長內每五分鐘計算一次(微軟Azure存儲是一小時計算一次)。
一般情況下,在云提供商的單個區域內,如果標準存儲服務的正常運行時間百分比低于99.9%時,你將獲得相應的服務補償(盡管這一指標并不是SLA計算出來的,但99.9%的可用性意味著30天內允許的停機時間不超過43分鐘)。如果正常運行時間百分比介于99%和99.9之間,提供商通常會少收取當月費用的10%;如果正常運行時間百分比低于99%,則少收取當月費用的25%(谷歌云存儲規定如果正常運行時間百分比低于95%,將少收取當月費用的50%)。 微軟Azure存儲將超過最大處理時間(基于請求類型)的認定為存儲事務失敗,亞馬遜S3和谷歌云存儲則依賴內部定義的錯誤代碼來衡量失敗的存儲請求。請注意,如果每月正常運行時間沒有達標,作為客戶你需要及時主動地要求服務補償。
此外,請仔細評估SLA,以確定它們是否滿足你對數據和工作負載的可用性要求。如果單個區域的服務不能滿足你的需求,可能需要花更多錢使用多區域服務,將數據副本分散到多個地理位置。這種方法增加了數據可用性,但對數據損壞或意外刪除卻無能為力,因為數據損壞或意外刪除都會隨著數據被復制而跨區域傳播。
云存儲是否對你適用?
基于上述這些指南和注意事項,你可以更好地評估公有云存儲是否適合你的特定用例,數據以及應用。如果公有云存儲提供商承諾的服務水平和功能特性無法滿足你的要求,請考慮構建私有云或利用托管云服務。
盡管公有云存儲可能并不完全適合你的生產數據和工作負載,但對于一些不太苛刻的用例,它依然是個不錯的選擇。