如何採用多雲和分散式計算解決企業的資料難題
很多企業正在將雲端計算投入其IT戰略。越來越多的IT預算正在轉向雲端計算服務和運營支出,而不是資本支出。與此同時,IT團隊被要求加強並改進企業的數字計劃。
根據調研機構Forrester公司在2019年的預測,大約25%的資訊長將轉變為全面 領導角色,將技術投資規劃、資料管理、運營責任整合到一個統一的整體中。與此相關的挑戰是,資料和數字化轉型所解決的所有問題都與企業內部的其他問題交織在一起,從管理客戶體驗到滿足銷售和增長目標。對於一些資訊長來說,解決這些問題的機會自然是下一個步驟。對於其他人來說,這將超出他們和他們所在公司的舒適區。
縮小這些差距將依賴於資料管理。然而,即使企業更多地致力於雲端計算,他們也無法解決圍繞資料和雲端計算周圍存在的真正問題。
從更多的雲到多雲
企業正在增加對雲端計算服務的支出,以提高靈活性並實現更大的增長。調研機構IDC公司已將其對全球雲端計算基礎設施支出的預測提高至2018年的652億美元,隨後幾年將同比增長37.2%。基礎設施支出的增加包括計算、儲存、資料、應用程式服務。
對於使用雲端計算來支援其新服務的公司來說,計算和儲存等領域可以快速擴充套件。但是,資料庫元素要複雜得多。來自應用程式的資料必須儲存和用於分析,資料庫仍然是隨著時間的推移管理這些資料的最合適方式。這些資料庫也正在轉向雲端,根據市場研究,全球雲端計算資料庫市場預計未來每年達到216.6億美元,並且應該增長到2072年的46.78%。
這個研究評估涵蓋了一系列不同的雲端計算資料庫部署選項,從完全託管服務到購買的雲端計算資料庫平臺。然而,這一系列選擇並不一定能提供許多企業所尋求的自主性水平。跨多個服務或混合部署執行資料庫比較困難。
許多企業和軟體開發團隊正在採用基於容器的技術,為他們的應用程式提供一定程度的自主性,這些應用程式是為在雲中執行而構建的。容器可以在任何相容的公共雲服務或內部雲服務上執行,因此這些應用程式不依賴於任何特定的提供程式。但是,大多數資料庫服務都不支援相同程度的獨立性。為了理解這個原因,有必要研究一下資料庫設計理論。
企業將應用程式轉移到雲端時,可以分散這些應用程式,並在分散式環境中執行它們。無論是在混合雲中還是在多雲中,這都會將應用程式分散到不同的站點,然後這些站點必須相互通訊,並處理所建立的任何新資料。隨著時間的推移管理資料涉及選擇處理一致性、可用性和分割槽容錯,或簡稱CAP。
隨著時間的推移,任何分散式資料儲存都必須儲存和管理資料。企業根據其應用程式要求,可以優先考慮的是要優化效能、資料一致性還是可用性,企業通過採用CAP方法可以選擇專注於優化的兩個元素,第三個元素的優先順序更低。因此,這將導致對應用程式效能、一致性和可用性的潛在權衡。但是,應該注意的是,仍然會提供類似一致性的區域,但不會達到某些應用程式可能需要的效能級別。
對於設計在雲中執行的應用程式的架構師來說,分散式計算方法得到了進一步的發展。任何服務都必須採用相同的CAP方法,無論它是在內部私有云上執行還是在公共雲服務上執行。資料庫本身必須與多個雲端計算服務相容並可用,並以相同的方式在所有云計算服務上執行。但是,大多數公共雲資料庫服務都繫結到雲端計算提供商的雲平臺,或者只能在混合環境中執行。
在雲中執行資料庫需要預先考慮並解決這些問題。例如,當應用程式吞吐量和效能更重要時,可調優一致性。相反,對於需要實時資料一致性和特定事務訂單的應用程式,其效能可能不太符合要求。同樣,企業是否願意以多雲支援換取資料自治?在容器中部署應用程式可以為企業提供更大的靈活性和獨立性,但這也必須與資料管理策略相一致。如果不同時考慮這種方法,就很難充分利用多雲的潛力。
多雲和資料自治——開放原始碼的角色
對於希望保持對資料控制的企業而言,採用多雲是一個關鍵因素。根據Gartner公司的研究,估計有70%的企業希望採用這種方法。那麼,企業如何能夠圍繞資料獲得與使用容器的應用程式相同的獨立性?
在過去的十年中,開發的開源資料庫已經開發出來,以滿足大規模執行應用程式的一些新要求。這些新資料庫在雲應用程式部署中非常流行。Sumo Logic公司關於現代應用程式部署的報告顯示,NoSQL資料庫已經比傳統的雲端計算部署關係資料庫更受歡迎。開發這些資料庫是為了儲存和處理大量資料;每個資料庫都有自己的方法和質量,可以幫助開發人員滿足他們的需求。
作為檢視多雲和NoSQL選項的一部分,重要的是要強調所選的任何服務都必須能夠以完全分散式的方式執行,而不需要單一的主節點。相反,部署中涉及的所有節點都應該能夠執行指令,然後叢集節點組織自己來建立新事務的完整記錄。對完全分散式計算的支援對於使多雲部署成功工作至關重要;如果沒有這種獨立性,應用程式將無法跨多個雲端計算服務執行,並提供所需的可用性級別。通過保持這種獨立性,即使服務從一個雲服務遷移到另一個雲服務,應用程式也可以繼續執行。
在市場上潛在的產品中,Apache Cassandra™是目前唯一可以在真正的多雲或混合雲部署中執行的選項。Cassandra主要應用於獨立執行多個位置和雲服務,它可以自動在不同的資料中心和地理位置分佈資料。
這種跨多個位置執行的能力,不需要重寫程式碼,也不需要連結到特定的雲端計算提供商,這應該可以幫助企業執行其應用程式並利用多雲技術。然而,除此之外,還必須考慮支援和效能優化。雖然開源產品可能適合非關鍵應用程式或測試,但生產部署可能需要額外的專業知識、操作簡單性和支援,以擴大規模並滿足當今客戶對效能的嚴格要求。
對於具有一定規模的企業而言,設計和運營改進方面的專業知識對於構建支援這些應用程式的框架至關重要。除此之外,還需要檢視實施的安全最佳實踐,尤其是對於處理大量客戶資料的新應用程式。雖然這些專案的開源版本提供了一些此功能,但檢視具有企業級支援和服務的版本可填補生產應用程式的空白。這些步驟共同確保這些新的任務關鍵型應用程式可以在多雲部署中執行,以最佳方式執行並提供出色的客戶體驗。
將雲端計算和資料結合在一起
隨著越來越多的企業將部分或全部工作負荷轉移,雲端計算將繼續增長。雲端計算提供的是實驗能力、成功、規模。但是,這種易於部署不應該隨著時間的推移將該應用程式鎖定為一種方法。相反,對資料的所有權以及如何隨著時間的推移對其進行處理、管理和儲存應該是架構師的一個重要考慮因素。
為了避免這個問題,必須從一開始就將分散式資料支援設計到新的應用程式中。使用像Cassandra這樣的開源平臺,企業可以採用多雲而無需採用單一的雲端計算提供商提供的雲平臺。