初探雲原生2-雲原生軟體的特點

初探雲原生2-雲原生軟體的特點

Cloud-Native

上一篇講到現代軟體的一些關鍵需求,因而導致雲原生軟體的出現。繼續我們學習的路徑,接下來我們該瞭解一下“雲原生軟體的特點是什麼?”的問題。

開始前,簡單聊一下雲原生和“雲”概念的關聯與區分。

雲和雲原生的概念與架構是不斷髮展演化的

雲”是指我們在哪裡計算,而“雲原生”指的是如何實現。

雲原生的核心特徵

從現代軟體的一些關鍵需求,基本上可以提煉出如下的關係:

初探雲原生2-雲原生軟體的特點

Cloud Native

從而可以得出,雲原生軟體的核心特徵:它是高度分散式的,必須在不斷變化的環境中執行,並且軟體本身也在不斷地發展、變化。

雲原生軟體的結構

雲原生應用程式—它依然是由你編寫的程式碼構成的,實現了軟體的業務邏輯。

雲原生資料—這是在雲原生軟體中儲存狀態的地方。例如,你可能在同一個資料庫中儲存使用者配置、賬戶詳情、評論、訂單歷史記錄、付款資訊等。雲原生軟體將程式碼分解成許多更小的模組(應用程式),同樣資料庫也被拆分成多個且分散式化。

雲原生互動—雲原生軟體是雲原生應用程式和雲原生資料的組合,這些實體之間的互動方式最終決定了數字化解決方案的功能和質量。

初探雲原生2-雲原生軟體的特點

雲原生軟體模型中的關鍵實體:應用程式、資料和互動

不適合雲原生架構的場景

軟體和計算基礎設施不需要雲計算。比如,我們家裡的微波爐裡嵌入式裝置的軟體,它不需要能在不同處理器上執行的軟體。

雲原生軟體的特點並不適合解決面臨的問題。最終一致性是許多雲原生模式的核心,但這個過程是需要時間的。典型的案例就是,我們銀行賬戶的交易事務,就需要嚴格的事務一致性:客戶在銀行櫃檯取完錢並登出賬戶,另一邊在ATM機上提取額外的現金,這可是覺得不允許的。

不能單純“趕時髦”而去做雲原生軟體。因為不少企業有很多遺留的IT資產,並已經能夠保證公司的正常業務運轉。這種情況下,需要結合公司的實際情況,逐步地試點轉型。