雲原生應用程序和數據需要確保安全

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

將數據作爲雲原生應用程序的一部分進行管理非常困難。對於許多企業而言,當前冠狀病毒疫情帶來的壓力加劇了他們在軟件開發方面所面臨的挑戰。數字化轉型已從一種增長戰略變成了一種生存之道。在線商務幾乎在一夜之間得到爆炸式增長,達到了只有在假日期間纔會出現的水平。

image

這將是一個推動更多變革的推動力,因爲企業或者致力採用新技術,或者努力在競爭中保持領先。基於雲原生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的更多數據庫即服務選項的增長,也使採用和運行分佈式數據庫設計變得更加容易。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-07-23
本文作者:Patrick McFadin
本文來自:“51CTO”,瞭解相關信息可以關注“51CTO”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章