將數據作為云原生應用程序的一部分進行管理非常困難。對于許多企業而言,當前冠狀病毒疫情帶來的壓力加劇了他們在軟件開發方面所面臨的挑戰。數字化轉型已從一種增長戰略變成了一種生存之道。在線商務幾乎在一夜之間得到爆炸式增長,達到了只有在假日期間才會出現的水平。
這將是一個推動更多變革的推動力,因為企業或者致力采用新技術,或者努力在競爭中保持領先。基于云原生IT的新方法將會有所幫助。
更敏捷、更多數據……更多問題?
為了采取必要的措施,開發人員正在研究如何利用云原生方法。但是,這不僅僅是將現有應用程序遷移到云平臺上并添加更多基礎設施那樣簡單。它需要圍繞軟件容器構建的新架構和采用的業務流程工具如何在從構建到生產的自動化應用程序中發揮作用,如何在容器之間有效地使用API??,然后如何通過應用程序基礎設施的動態更改來處理數據。
Kubernetes現在是基于這種方法來編排容器和管理應用程序的一種首選方法。 Kubernetes可以處理設置應用程序工作負載,確保其繼續運行,并應對規模挑戰。但是,盡管Kubernetes可以編排應用程序,但它不能解決數據管理問題。應用程序創建的所有信息仍然需要管理。
傳統上,要想成功地使用像Apache Cassandra這樣的數據庫,用戶必須從操作系統開始理解整個軟件堆棧。他們還必須確保其一致性并遵循嚴格的操作和部署手冊。這種方法不僅需要深入了解數據庫的工作原理,還需要隨著時間的推移進行一些人工干預以處理擴展。
使數據與應用程序一樣易于編排
與Kubernetes一起管理云原生應用程序數據需要一些計劃。一種方法是使每個服務的數據庫實例位于Kubernetes集群之外。這使企業的數據基礎設施脫離了控制平臺,并為那些現在必須管理兩個環境的用戶創建了額外的工作。而這種情況并不理想。
更好的方法是從物理角度將數據與應用程序組件一起分布,但需要在同一控制平臺內。這確保了每個應用程序服務都可以有效地讀寫數據,企業可以將這些數據和應用程序作為一個整體進行管理。更重要的是,這種方法應該能夠像任何軟件容器映像一樣在多個云服務或云平臺上進行擴展。
為了與諸如Apache Cassandra之類的數據庫一起運行Kubernetes,企業將需要在Kubernetes集群中使用Cassandra Operator。這使Cassandra節點可以作為服務在現有Kubernetes集群內部運行。運營商在Kubernetes和更復雜的流程(例如Cassandra)之間提供了接口,以允許對其進行一起管理。啟動和停止Cassandra集群,對其進行擴展和處理故障都通過Kubernetes Operator以Cassandra理解的方式進行處理。
更好地參與Kubernetes環境意味著需要深入了解集群狀態。實際上,這意味著以前屬于數據庫內部的某些操作(例如自動重試或建立Gossip鏈接以跟蹤內部集群狀態)被提升到API層。然后,Kubernetes可以基于整個集群的健康狀況做出決策,以便可以采取任何行動,例如如果需要更多節點,則可以啟動這些元素以自動彌補。通過可用指標可以觀察到所有這些情況。
圍繞數據思考狀態
通常情況,Kubernetes中的容器實例是無狀態的——根據需要創建它們,然后將其刪除,而不是隨時間存儲。存儲需求被認為是短暫的。但是數據管理是不同的。對于像Cassandra這樣的數據庫,節點將需要持久化數據,因此必須被視為有狀態服務。因此,必須使用PersistentVolumes和StatefulSets來添加這些對象,以確保在任何重新啟動事件之間將數據卷連接到相同的運行節點。
這種基于Kubernetes的自動化的使用可以使開發人員和操作人員的工作更加輕松。可以使現有服務更高效、更輕松地進行升級,同時可以添加新服務來滿足客戶需求。除了一起運行Kubernetes和數據庫外,還可以考慮它們如何為內部開發人員提供數據庫即服務或DBaaS功能。
對于尚未熟悉設置和運行Kubernetes或不想花費太多時間的團隊來說,將這些技術結合使用的數據庫即服務(DBaaS)選項可以從云平臺中按需提供。數據庫即服務(DBaaS)可以消除一些管理開銷,并使企業更容易專注于如何處理數據,而不是人工管理數據庫實例。
支持企業業務的數據處理方法
對于希望更快地實施并交付客戶所需的企業而言,遷移到云原生應用程序和數據至關重要。從開發人員的角度來看,將“全局”方法與保持系統運行所需的方法聯系起來可能是一項挑戰,特別是在擴展數據庫需要工作人員具有一定經驗的情況下。先前的流程和組織孤島可能是阻礙這些變化的主要問題,因此需要消除轉變為數據驅動的業務所面臨的障礙。
對于正在尋求如何為他們的公司提供支持的團隊來說,跟上客戶需求并更有效地提供服務的壓力都是巨大的。微服務的采用無疑對這一過程有所幫助,因為與原有的整體應用程序相比,微服務更容易分解應用程序并快速改進。然而,這種方法日益增加的復雜性會使擴展服務和支持數據變得更加困難。
為了使這一過程更簡單,將分布式數據庫設計(例如Apache Cassandra)作為帶有Kubernetes的云原生應用程序的一部分可以提供幫助。同時,隨著圍繞Cassandra的更多數據庫即服務選項的增長,也使采用和運行分布式數據庫設計變得更加容易。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。