數位化企業雲平台的Cloud Native12原則

2021-07-22 10:25:06 字數 2497 閱讀 8494

uber、滴滴、小公尺、紅領、airbnb等軟體服務給我們日常生活帶來

革命性的顛覆

,網際網路給我們帶來生活極大的便利。未來會有更多的傳統企業以網際網路思維模式進行業務創新,在實現自身數位化轉型的同時,為我們帶來更優的生活體驗。

所有的這一切需要強大的it能力支撐,需要企業it的精益運營,讓軟體的生產、交付、獲取、公升級、遙測是簡單的。

在以雲計算、容器技術(以docker為代表)、微服務架構、devops等相關概念和實施的成熟發展,支撐企業it敏捷、快速、協作的交付應用成為可能,在軟體行業同樣需要軟體交付的自動化生產線,交付出個性化、可定製的軟體。

最近有幸參加公司新一代雲平台的研發(數位化企業雲平台the platform)工作,深度體驗到新的技術變革帶來的軟體交付變革的便捷性。通過企業雲平台能夠支撐秒級服務無縫切換、分鐘級的應用交付

(從**到交付出一套可訪問環境)。對於企業雲平台,在版本研發中同樣採用了微服務架構、容器、devops生產線的技術支撐能力,20分鐘

(後續小夥伴已經有了優化,提公升到12分鐘

內可以搞定)

時間內可以從源**,經歷編譯、打包、配置、部署、啟動等系列操作交付出兩套可訪問環境,一套部署在公有雲上,一套部署在公司內部私有雲。

目前整個平台有十六大領域系統(參加下圖紅色部分)支撐,部署節點30餘個,開發環境、測試環境、預發環境在私有雲上發布;生產環境在阿里雲(僅使用阿里雲上的虛擬機器)上交付。

正確的理解12-factory原則非常關鍵:

我們的理解是,

平台建設過程中我們對12-factor了大量落地工作,在此分享給大家,如有更好的落地實踐也歡迎討論。本次會和大家分享12要素宣言的前6個原則

,後續為大家分享後6個原則。

原則一:基準**(乙份基準**,多分部署)

我們的實踐:

1、每個微服務對應乙個git庫

2、每個發布版本為乙個codebase(發布後會對該發布版本的**打乙個release branch)

3、使用tbd(trunk based development)版本管理模式 (tbd是基於主幹的開發模式,詳細可以參見「宋會計」的部落格:更多版本開發模式可以參考:

)4、模組間不允許**依賴(必須依賴三方庫、或者二方庫)

原則二:依賴(顯式宣告依賴關係)

我們的實踐:

1、所有依賴必須顯式宣告

2、微服務之間的依賴(rest api)納入依賴管理

3、反模式:禁止使用反射依賴注入

4、native lib的依賴需要納入管理(不僅開發期的依賴需要嚴格管理,對於執行期依賴的服務元件需要打包在乙個可執行的環境中)

原則三:配置(在環境中儲存配置)

我們的實踐:

1、配置針對環境的配置,即「環境配置」,不涉及業務配置

2、環境配置與**嚴格分離

3、環境配置不能做熱更新(遵循「不可變基礎設施」原則),如要變更只能重新部署(誰讓微服務現在能秒級交付那)

4、環境配置項要細化到最小粒度,不要做「**」模式的配置

5、配置與部署環境關聯(提供不同環境的部署包、在編譯打包後通過注入的方式形成不同環境的可部署包)

原則四:後端服務(把後端服務當做附加資源)

我們的實踐:

1、不要在應用內部嵌入後端資源(如自帶嵌入式資料庫)

2、留出擴充套件點以方便後端資源的快速更換

3、在技術和成本允許的情況下盡量使用雲服務能力,並通過留出擴充套件點以降低耦合

原則五:構建、發布、執行(嚴格分離構建和執行)

我們的實踐:

1、構建、發布、執行三個階段要嚴格分離

2、不要直接更改執行環境(如直接對執行環境中的應用打補丁、直接修改執行環境中的配置檔案操作,需要嚴格禁止)

3、編譯產物、配置和執行環境(映象)需要納入版本管理

4、建立發布失敗後的回退機制

原則六:程序(以乙個或多個無狀態程序執行應用)

我們的實踐:

1、應用容器內不允許儲存狀態資料(所有微服務均是無狀態的,便於後續的擴充套件、伸縮、漂移等能力)

2、應用容器之間不允許直接共享資料(通過後端服務來提供)

3、需要提供session集中管理(託管在redis中)

4、不允許使用粘滯session

5、提供快取服務儲存session狀態資訊

本文對12要素宣言的實踐,先為大家分享前六個,之後會繼續為大家分享後六個在數位化企業雲平台上的實踐結合。

劉相 eaii-企業架構創新研究院 專家委員

計算機應用技術碩士,現任普元軟體產品部副總兼soa產品線總經理。十年it行業經驗,專注於企業軟體平台,在soa、分布式計算、企業架構設計等領域。先後主導公司eos7、portal、雲paas平台、雲流程平台、bpm等系列產品的開發和設計工作。著有國內首本解析springbatch的中文原創圖書《springbatch批處理框架》。個人

愛好:閱讀,慢跑。

關於eaii

eaii(enterprise architecture innovation institute)企業架構創新研究院,致力於軟體架構創新與實踐,加速企業數位化轉型。

eaworld專案

打造數位化企業

現今,打造數位化企業已成為社會共識,數字革命 已經開始,如何在關鍵的客戶互動中深入挖掘價值?本次沙龍將深入討論企業在與客戶互動場景中的應用與技術,包括並不限於銷售 客服 外呼 質檢 催收等客戶場景,阿里雲將邀請達摩院專家 實踐方做深入分享和現場討論,探索企業與客戶互動的方式和價值。開始學習 打造數位...

新一代數位化企業雲平台緣起

序 網際網路化是目標,數位化是手段。從it角度看,若企業實現了數位化,就帶來了企業的網際網路化。數位化確實相對抽象一些,但是更好的描述了事物的本質。目前來講,隨著技術進步,數位化是全方位的,萬事萬物的數位化。來看一下一次交通意外事故所產生的數位化過程。企業也希望綜合運用多種技術支援,將已有能力向社會...

企業數位化轉型打破了 企業數位化轉型微探

近幾年 數位化 絕對是高頻詞彙,這並非偶然,而是社會環境的發展使然。尤其是 新基建 時代的來臨,企業數位化轉型肯定會向更深入的地方探索,it從業者如何抓住機遇使得職業生涯更進一步非常關鍵。數位化轉型 改革 馬克思主義政治經濟學的核心就是一句話 生產力決定生產關係。古典經濟學最大的弊端就是把生產者和消...