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從業者如何抓住機遇使得職業生涯更進一步非常關鍵。數位化轉型 改革 馬克思主義政治經濟學的核心就是一句話 生產力決定生產關係。古典經濟學最大的弊端就是把生產者和消...