伴隨著產業和技術的發展,現代企業IT領域正在迎接來自業務和技術領域的變化與挑戰,並積極利用新的技術和平臺進行數位化轉型。力爭實現以高效率、高質量的生產方式,製造出更具個性化、智能化、服務化的產品,並且協同行業共同發展。現代企業主要業務軟體系統與之前相比,主要面臨三方面變化和挑戰:
速度和敏捷性:當前業務的變化更加頻繁,業務範圍變化更快,業務上線時間(Time to market或者Time to ready)更短,要求快速的適應變化,快速反饋;
成本效率:需要降低OPEX和CAPEX(運營成本和投資成本),提高開發和運營效率,節約成本;
創新和核心競爭力的需求:要求業務系統快速迭代和交付,加快新技術、新想法到功能實現的交貨期,進而真正做到技術領先,增加企業的核心競爭力。
與此同時,技術方面來看,近些年來IT技術發展越來越快。從軟、硬體解耦、虛擬化到雲計算、大數據,大規模分布式計算等等… IT技術由傳統交易型向交互型轉變,從簡單的「購買」向著與合作夥伴一起「構建」業務軟體系統轉變。
以上業務和技術兩個方面的變化和挑戰,正在共同驅動現代企業軟體儘快最大限度利用雲計算和大數據平臺的能力,實現基於雲原生和微服務架構的應用軟體和業務系統,通過穩健、遞進式的轉型,共同促進企業軟體現代化。
在整個數位化轉型的過程中,PaaS雲原生平臺和數據平臺作為技術基礎和基石,起到承上啟下,至關重要的作用,是數位化轉型的關鍵。有了技術成熟、可靠的PaaS平臺,才能對下接入和管理控制各種IaaS計算、存儲和網絡資源;對上提供容器運行環境、多種開發語言和平臺支持;並且提供各平臺服務,最大程度地解放開發和運維人員,大大提高生產效率,使開發人員專注於核心業務程序的開發,而非將時間用於環境和配置。
在成功收購了Pivotal以後,VMware已經擁有了全球最領先的技術,提供安全、穩定、可靠、可擴展的PaaS雲原生平臺服務和解決方案。幫助企業定製和規劃清晰的上雲路徑,提供健壯的企業級PaaS/CaaS平臺,豐富和強大的CI/CD,DevOps等軟體工具套件,並利用業界領先的最佳實踐和方法論幫助企業對流程和文化做出變革,以適應上雲後的一系列變化,助力企業以更靈活的姿態面對市場。
但是,強有力的平臺和產品需要好的配套應用轉型服務(AppTx-Application Transformation)才能發揮更大作用,幫助企業更加順暢的實現企業應用的現代化和雲原生應用的遷移。
1
企業為什麼需要AppTX - Application
Transformation服務
現實世界中,採用新的雲原生和微服務技術來進行企業應用系統轉型並非易事。事實上,世界上絕大多數開發工程師都正忙於和工作在遺留的應用程式:這些產品和組件已經構建、運行,更新和維護了很長的時間。VMware的客戶大都希望將傳統的應用遷移到雲端,但是這些客戶通常都有自己複雜的遺留應用系統和產品組合,這些應用系統是緊耦合的單體應用,並且嚴重缺乏準確有效的文檔。
為了將風險降至最低並確保合規性,大型企業和組織設計了多層次的人工流程進行控制。因此,企業應用系統軟體的發布經常是漫長的周期(低頻率的),時常需要依賴個人英雄救火;耗盡精力和繁複的大事件。
為了縮短發布時間、降低成本和提高運營效率,同時保持應用系統的安全性、彈性和合規性,現代企業需要逐步地進行應用系統的雲原生應用轉型和轉化。伴隨著雲原生應用的轉型過程,同時更新和引入自動化流程,將減少應用系統持續發布變更的痛苦和風險,同時很好地滿足企業級需求。VMware Pivotal Labs的Application Transformation(AppTX)服務,正是為如上關注點而來。
2
VMware Pivotal Labs 雲原生應用轉型
Application Transformation(AppTx)的方法
VMware Pivotal Labs已經幫助很多全球大企業和組織踏上應用轉型之旅(app transformation journey)。VMware Pivotal Labs AppTX的方法定義了漸進的步驟,逐步地提高企業應用雲原生成熟度,增加軟體開發生命周期SDLC自動化程度和提高企業團隊成員的知識體系。
目標和關鍵結果(OKR = Objective Key Results)用以評估和度量雲原生成熟度,自動化程度;並且在每一步驟中,企業人員技能被構建、提升和跟蹤。目標(Objective)決定你想去哪裡,關鍵結果(KR- Key Results)指標來衡量你向著目標方向的進展情況。
VMware Pivotal Labs提出了雲原生應用轉型的四個關鍵原則:
1、從小事做起:企業的大型應用系統可能包含成上千個應用程式,從一個業務和少數應用開始;
2、不斷學習總結:從前面選中的少數幾個應用開始,進行雲原生應用的轉換改造並總結編寫對應的cookbook文檔,進而用於後續更多的雲原生應用轉化落地;
3、逐步改造更大、更複雜的應用程式,把它們分解成更小的微服務應用;
4、儘量做到所有的事情自動化即automate everything;廣泛使用TDD測試驅動開發、CICD持續集成與持續部署;
應用轉型的幾個階段:
VMware定義一個原生雲應用程式運行在一個Platform-as-a-Service(例如:Tanzu Application Service - TAS,原Pivotal Cloud-Foundry - PCF或者Pivotal Application Service - PAS)之上,並且能夠進行水平和彈性伸縮。過去的幾年中,VMware的客戶已經將成千上萬的應用程式運行在TAS的容器裡,既有Spring/SpringCloud的現代Java應用、.Net核心系統,也有各類遺留應用系統。
雲原生應用程式轉型的三個階段:
App Re-platforming(應用平臺化)
Modernization(應用現代化)
組織架構的轉型。
使用雲原生應用15要素(15 technical factor)來衡量和評估雲應用系統的成熟度,在各個階段不斷地提高。
3
如何進行雲原生應用轉型
Application Transformation(AppTx)
VMware Pivotal Labs通過在全球大量客戶雲原生應用轉型實踐中,不斷總結和抽象出最佳實踐,幫助企業進行應用轉型。
Step 1: Apps Re-platforming 應用上平臺
Select Apps for Re-platforming挑選應用
基於技術複雜度、業務關鍵度和經濟價值來對應用程式排列優先級,挑選首批5個左右應用程式進行Re-platforming。
Re-platform Applications 應用上平臺
第一階段將上面選擇的應用程式集遷移到PaaS平臺上運行,完成雲原生第一步。通過對於OKR(Objective Key Results)和Timeline的定義和跟蹤,快速迭代進行應用改造和上平臺。
Work Tracks 跟蹤
跟蹤應用上平臺的過程;跟蹤首批應用上平臺過程和轉化;生成和記錄首批應用上平臺的經驗和寶典。
Automate Testing 測試自動化
自動化單元測試、集成測試、驗收測試和冒煙測試來減少手工測試。
Continuous Integration 持續集成
Step 2: Modernize Applications應用現代化
分解單體應用成為微服務應用Decompose Monoliths into Microservices單體應用被分解成輕量級的微服務,可以在雲上水平伸縮。巨石應用可能跨越多個子系統和數據源,甚至是若干跨網絡部署伺服器和主機後端。巨石應用可能會需要重寫、重新設計才能很好的運行在雲端。VMware使用一個循序漸進的過程, 建立一個high-level的領域模型和user story;儘量重用已有代碼並根據需要進行重寫。
領域驅動設計Domain-Driven Design
VMware Pivotal Labs推薦使用領域驅動設計(DDD)和事件風暴作為實踐方法去定義和設計分解新的微服務邊界上下文。
分解Slicing
建立領域模型之後, 巨石應用(Monolith)分解為為若干個垂直功能部分後,可以逐步搬遷到PaaS平臺上。
Step 3: 分解步驟Decomposition Steps
VMware Pivotal Labs建議步驟序列:
1、定義目標和關鍵結果(OKR);
2、事件風暴(event storming)App和標識邊界上下文(bounded Context);
3、從核心領域中選擇幾個短的領域事件流(domain event flow);
4、用C4模型(包括context,container,component,code分析)來識別一個垂直功能和相應組件和上下文,直到user story;
5、頭腦風暴目標架構來實現垂直切片;
6、執行SNAP快速分析,得到對應功能組件滿足12要素的分數;
7、根據上面步驟,創建backlog,得到已經排好優先級順序的用戶故事user stories;
8、將用戶故事user stories映射到MVP(minimized viable product)或者release;
雲原生應用體系的構建:微服務、容器服務、DevOps、CI/CD結合共同助力。
在幫助企業進行數位化轉型的過程中,平臺產品和廠商需要致力於為企業提供全方位的雲服務與解決方案,提供PaaS/CaaS平臺、頂級開源微服務開發框架(譬如Spring,SpringBoot,SpringCloud,Steeltoe等)支撐、DevOps開發工具等;還包括完備的數位化轉型和敏捷開發最佳實踐服務。VMware在上述領域是世界頂級的開源軟體貢獻公司和絕對技術引領者。
作為Cloud Native雲原生概念的提出者、領域的技術先驅與倡導者,WMware不斷大力推動Spring開源社區和生態,促進和提供微服務系統構建的平臺,框架和工具,Spring Boot、Spring Cloud就是最強大框架之一。VMware雲原生平臺結合Spring框架按照三階段架構持續發展,支持從開發、測試到生產的雲原生應用全生命周期。除了雲原生平臺的演進外,VMware的大數據及數據平臺Greenplum和Gemfire也在與時俱進,支持最新的機器學習等新興企業級應用。
基於Spring構建的雲原生應用系統,結合雲原生平臺,加之完整的現代雲原生系統構建方法論和最佳實踐,必將助力現代企業更加順暢地完成數位化轉型之路。
關於作者
葛寧偉
VMware的MAPBU資深平臺架構師。在軟體開發、架構設計方面有超過15年的工作經驗,同時也是金融、新零售、汽車等行業的資深專家。加入Pivotal後便一直致力於雲原生平臺及應用現代化相關的技術與方法論的推廣與實施。