阿裡雲 雲原生應用研發平台EMAS 楊镔(泠茗)
若對文章感興趣想聯系作者,請加入釘釘交流群,群号35248489,微信公衆号:EMAS
多樣化使用者體驗( Multiexperience )與大前端
随着雲計算、移動化、IoT、AI等技術概念地落地和持續發展,社會的數字化程序在不斷加速。Gartner近期釋出了新的企業應用架構方法論MASA(Mesh Application and Service Architechture,網格應用和服務架構)[1],融合近5年流行的技術趨勢,為廣大企業資訊化的供應商、開發者和企業使用者定義了更廣泛的企業數字化應用架構模型。
與阿裡所定義的中台不同,MASA将企業應用拆解為上中下三層,在傳統的後端業務能力基礎之上,将企業前台,以及用于前背景連結的API網關層也涵蓋了進來,通過網格化的架構實作企業的業務流程、員工、服務、内容、裝置間的動态連接配接,以建構比對現有技術形态和未來技術趨勢的更靈活、靈活、可擴充的應用架構。
伴随MASA,面向企業前台的Multiexperience( 多樣化使用者體驗 )被Gartner明确提出并定義為2020年的十大技術趨勢[2]。Multiexperience期望利用多元化的前台技術(移動應用、Web、小程式、可穿戴裝置等)全面更新企業面向終端客戶的數字化觸點,以終端客戶為中心建構多元(體驗多元化)而一體(架構一體化)的使用者界面。Multiexperience與國内所流行的大前端概念不同,但他們背後恰恰有着相通的故事主線。
大前端在國内還沒有一個統一的定義,它更偏向一個相對純粹的技術概念,意指面向客戶側的端技術集合,它的出現始于用戶端Native與Web兩大技術棧的不斷融合,背後核心是跨平台技術在移動、PC、小程式、Web等場景下地不斷發展和成熟。
大前端技術棧在Multiexperience這樣的業務需求背景下不斷磨砺,同時又反向支撐業務不斷擴充其面向終端客戶的數字化觸點的場景和範圍。技術拓展商業邊界,商業驅動技術變革。面向全端場景,提供無縫的、一緻的數字使用者旅程是Multiexperience和大前端一脈相通的使用者理念。
如今,面向全新的業務架構範式,如何加速新時代下多元化的端應用研發,為業務提供更靈活而高效地傳遞呢?雲原生技術是最佳選項。
一雲多端,雲原生技術如何驅動端應用研發
很多人有疑惑,雲原生與端測的研發有什麼關系,雲原生不是一個後端技術域的概念麼?其實不然。雲原生代表了一種應用建構的方法論:如何最大程度地利用雲計算服務模型的優勢低成本、靈活地建構和管理一款彈性的應用。它的關鍵理念包括:
• 所有的運作環境透明化,彈性伸縮;
• 所有的研發流程流水化,高效傳遞;
• 所有的基礎設施服務化,按量付費;
雲原生的研發模型旨在降低業務的技術風險,讓開發者可以更單純地專注于自己的業務。面向端應用場景,雲原生技術理念同樣适用。
Gartner在2019年定義了一條全新的技術賽道:Multiexperience Development Platform(MXDP)[3],用以描述那些通過靈活、現代化的技術能力幫助企業高效地實作Multiexperience的研發平台,其能力矩陣示意如下圖:
從MXDP的關鍵元素構成我們可以看到,除了傳統的研發工具類元件外,雲原生技術成為了MXDP最核心的技術元素,其中的典型技術包括:
DevOps,驅動端應用的高速疊代
端應用對比傳統後端有着典型的差異,以移動App為例,應用本身建構在異構的機型、OS平台之上,運作環境限制較多,依賴大量的後端服務支撐,應用本身的持續內建和傳遞過程也包含了許多移動場景特有的元素,比如編譯環境、相容測試、内測分發、管道打包、灰階釋出等,這些關鍵差異決定了端應用必須建構自己特有的DevOps體系。
研發域:面向端應用的DevOps平台需要解決應用持續內建過程的組織協同和自動化。針對端應用的研發期,成熟的DevOps平台需具備:
• 面向多端的編譯建構環境并實作自動化的軟體更新;
• 可靠,彈性伸縮的建構服務叢集;
• 代碼與證書托管;
• 靜态代碼掃描;
• 軟體定義的工作流;
測試域:端應用的測試較傳統後端應用複雜度大幅提升,除了基礎的功能、性能測試外,還需要有面向異構機型、終端、作業系統的相容性測試,成熟的端應用測試平台應具備:
• 相容性測試服務,覆寫主流的機型、裝置、作業系統;
• 性能測試服務,支援各類應用崩潰、ANR、卡頓、IO、CPU、記憶體等關鍵性能名額監測和評估;
• 自動化測試引擎,支援測試用例編寫、回放和管理;
• 遠端真機能力,支援裝置的雲端通路;
• 智能Monkey與AITest等智能化技術驅動的測試能力;
釋出域:端應用的目标釋出對象是海量的終端裝置,生産釋出受應用市場稽核限制,是以,可靠、精準、定向的應用分發能力是應用生産分發的關鍵技術要求,包括:
• 企業内分發能力;
• 支援軟體定義的灰階能力,支援面向不同的地域、網絡、機型、管道及其他自定義标簽進行灰階分發;
• 面向不同管道的生産釋出能力;
• 版本管理與歸檔;
運維域:面向端應用的運維體系應始終圍繞問題的感覺,問題的定位,問題的修複展開,在傳統的Metrics,Tracing,Logging基礎之上,我們特别強調面向端的Hotfix的能力,這是差別于後端應用形态的特殊之處。成熟的端運維體系應包含:
• 面向端應用的APM能力,支援包括啟動速度、頁面加載、崩潰、網絡性能、API性能等在内的監控報警體系,并能與後端APM關聯進行基于事務的通路追蹤;
• 面向端應用的遠端日志能力,支援實時的終端日志記錄和管理,加速問題的遠端診斷;
• 面向端應用的熱修複能力,支援針對不同裝置平台的代碼、資源熱更新;
營運域:端應用作為企業業務入口,是企業面向終端使用者的關鍵界面,必須時刻洞察使用者的行為、傾聽使用者的聲音,驅動業務的靈活疊代。面向App的資料分析以及輿情回報能力是DevOps的關鍵閉環之一。
資料分析應具備:
• 面向全端的使用者行為資料采集能力,包括小程式,APP,H5,PC,WEB,IoT等;
• 易用的終端埋點工具:支援代碼埋點,自動埋點,可視化埋點等;
• 開放的資料能力:支援以API方式同步資料,支援與雲廠商的計算平台無縫對接;
輿情回報應具備:
• 面向全端的使用者回報通道能力;
• 智能化的應答機器人;
• 輿情資料搜集和分析;
DevOps為Multiexperience的生産實踐帶來的關鍵價值包括:
• 更短的業務疊代周期
覆寫端應用全生命周期的工作流與自動化能力将帶來應用持續傳遞能力以及跨團隊協同效率地大幅提升,進而縮短業務的傳遞周期。作為企業面向終端使用者的入口,更短的業務疊代周期意味着面向市場更快速的反應,這是數字時代商業成功的基石。
• 更合理的人力資源配置設定
雲原生的工具鍊與自動化流水線将幫助企業避免耗費大量工程技術人員來維護本地化的工具和系統,同時大幅削減應用持續傳遞過程的人工環節。企業能夠将寶貴的人力資源專注在自己核心業務的生産和研發上。
• 更穩固的應用傳遞品質
自動化的終端測試體系以及全方位的監控診斷體系将為端應用提供完整而充分的品質保障,這些雲原生服務将為企業節省大量細分領域的專業人員投入,并通過專業且持續的工程技術演進以及智能技術的引進不斷優化應用品質保障體系。
• 更優異的即時使用者體驗
圍繞端應用全方位的行為資料埋點和分析将幫助企業更好地把握産品功能與市場的比對度,而即時的輿情回報能力則幫助企業更好地進行使用者管理和關系維護。所有這些直接和間接來自客戶的聲音将直接驅動業務的快速疊代,通過雲原生DevOps實作靈活開發的生産實踐。
Serverless & Backend as a Service(BaaS),端應用的運作引擎
Serverless是當下開發者社群最火爆的話題之一,其核心理念即去伺服器化:把底層雲計算的基礎能力進行高維抽象,以API/SDK的方式開放後端能力的通路和擷取,無需開發人員配置和部署伺服器資源即可獲得彈性伸縮、按量付費的後端服務支援。Serverless的技術理念其實在數年前就已出現:後端即服務(Backend as a Service,BaaS)[4]是典型的遵循Serverless設計理念的服務形态,早在2012年BaaS便在開發者社群中傳播并因其便捷的使用模型而深受開發者喜愛。比較典型的BaaS服務包括消息推送、使用者認證、雲存儲、雲資料庫等。
由于BaaS服務大幅削減了企業在後端研發力量上的開銷,其在端應用場景得到了大範圍地應用。但BaaS核心解決的主要是垂直場景化的後端能力抽象,并沒法支撐業務本身的後端邏輯部分。Function as a Service(Faas)[5]的出現彌補了這一空缺,并使得Serverless的架構範式能夠面向端應用場景提供更加完整的閉環。
FaaS是一種軟體建構和部署的新方式,基于事件驅動模型,以函數粒度為開發者提供業務代碼的托管環境。這種架構模型在資料處理、Backend for Frontend、移動應用、IoT應用和Web應用等場景有較常見的應用空間。
綜上我們可以看到,面向應用的Serverless架構包含了BaaS和FaaS兩種服務形态,為了完整地支撐端應用的場景需求,成熟的Serverless引擎應包括
• 消息推送
支援在伺服器與用戶端間建立可靠、省電的長連接配接,面向Android、iOS、Web、IoT等端應用提供下行消息推送能力。
• 登入認證
為開發者提供多元度的安全可靠的端到端身份驗證能力,進而降低開發者在登入和賬号體系上的開發成本和業務風險。身份驗證模式包括郵箱認證、短信認證、号碼認證以及主流網際網路平台(淘寶、支付寶、QQ、微信、Google等)提供的登入認證能力。
• 資料同步
提供一個穩定可靠、加密安全的資料同步系統,支援資料在用戶端的離線使用以及線上同步更新,以提供業務在移動應用、Web應用以及PC應用間的一緻化使用者體驗。
• 遠端配置
遠端配置是面向端應用的持久配置管理服務,通過雲端管理配置内容,并實時推送更新到用戶端,靈活控制應用的功能、配置及UI實作。
• 雲存儲
提供基于API/SDK的便捷的雲端存儲能力,支援包括文本、圖檔、視訊以及其他由使用者生成的内容。
• 雲資料庫
基于雲端的NoSQL資料庫,提供面向各種前端的便捷通路接口,支援實時的資料操作、跨端資料同步和彈性伸縮。
• 雲函數
允許開發者直接将程式托管到雲函數平台上,以函數作為最小單元完成事件驅動的業務邏輯開發,通過API方式進行遠端通路和調用。
• AI能力
應用智能化是端應用的關鍵技術趨勢,基礎AI能力将成為端應用Serverless架構的基礎組成,包括但不限于OCR、人臉識别、語音識别等。
Serverless架構及服務帶來的核心價值展現在三個方面:
• 資源成本
傳統的應用架構模型需要預先購置一批伺服器裝置,并按照使用周期内的預估業務峰值來進行财務預算,不确定性因素較多,伺服器資源的空置也會帶來非常巨大的成本浪費。而Serverless的架構模型則實作了按需擴充、按量付費的彈性模型,讓企業成本更可控。
• 運維成本
開發者不必再關心底層計算資源的容量與日常運維問題,所有基礎設施維護将會由Serverless服務商負責解決并對開發者透明。削減的運維成本,彈性的資源使用和可擴充·能力都将幫助開發者更好地專注于業務本身的增長。
• 研發效率
完整的Serverless引擎提供了面向端應用的絕大部分場景能力的支撐,使得應用的研發非常便捷并易于維護。而在傳統的研發模型下,代碼開發、環境搭建、容量壓測、叢集擴容、應用部署等環節都會帶來巨大的時間成本。
低代碼,應用研發形态的新變革
雲原生技術的出現使得傳統業務架構大規模地向雲架構轉型,軟體開發效率在這個階段也得到了明顯地提升。然而數字化時代,各種應用場景地湧現,業務對IT面向市場的響應即時性也提出了更高的要求。在跨時代的技術演進浪潮中,Low-code Development Platform(低代碼平台)[6]快速浮出水面,并伴随多樣化的端應用場景開始加速普及。低代碼技術為軟體研發效率帶來的不僅僅是提升,更是變革。
對比傳統的基于手工編碼方式建構應用的模型,低代碼平台提供給開發者基于GUI的軟體編輯環境,并結合雲原生基礎設施幫助開發者快速完成應用的搭建。同時,這樣的研發模型使得軟體研發對軟體開發者的技能要求門檻大幅降低,更多的具備一定IT基礎概念的人群可以參與到軟體開發中,而雲原生架構則天然地幫助開發者解決了軟體本身的部署、運維等工作。
成熟的低代碼平台将廣泛應用于企業的生産、營銷、BPM、工具應用等場景,其核心能力主要由兩部分組成:
- 可視化應用編排引擎
• 支援包括Web、移動App、小程式在内的多端應用場景;
• 支援包括UI可視化編排、業務流編排、邏輯編排、資料編排等能力;
• 支援元件、子產品、模闆等模型,有開放化的物料系統群組件市場;
• 模型驅動,搭配中繼資料解析引擎(包括多端轉譯引擎/渲染引擎等);
- 雲原生應用平台
• 行業化領域模型與中繼資料管理
• 代碼生成引擎
• 雲原生應用托管
• CI/CD
• 豐富的內建與擴充能力
我們可以從施耐德電氣與頂級低代碼平台公司Outsystems的合作中看到低代碼帶來的價值:施耐德電氣在應用低代碼平台後,在短短20個月的時間内快速上線了60款App,其中絕大多數App在10周内完成開發和上線,第一年節省的人工成本達到650人天。低代碼技術大幅縮短了傳統企業數字化轉型的路徑。
至2024年,Gartner預計所有應用程式開發活動當中的65%将通過低代碼的方式完成,似乎比想象的更快一些,但它确實在持續地發生。在全球市場,我們能夠看到OutSystems、Mendix、PowerApps、App Maker快速的成長腳步,未來結合AI與機器學習,我們可以預見真正的“App工廠”的誕生。
求變應變,永不止步成就技術革新
作為國内移動網際網路、雲計算領域的行業巨擘,阿裡巴巴在大前端、雲原生領域有着豐富的實戰經驗。我們從2016年開始逐漸将集團内部成熟的應用中間件雲化輸出,并在2018年推出了移動研發平台EMAS(
https://cn.aliyun.com/product/emas),如今,EMAS已經逐漸成長為橫跨多端(移動App、H5應用、小程式、Web應用等)場景的雲原生應用研發平台,基于廣泛的雲原生技術(Backend as a Service、Serverless、DevOps、低代碼等),為企業、開發者提供一站式的應用研發管理服務,涵蓋開發、測試、運維、營運等應用全生命周期。
截止到今天,伴随雲計算的迅速普及和發展,我們已服務了15萬以上的企業與開發者。
(EMAS開發者版套餐免費訂閱)。
在海量的生産實踐中,我們也看到了雲原生技術在端應用場景下所面臨的的關鍵挑戰:
• 研發心智的改變
對于所有開發團隊而言,前後端團隊的定義根深蒂固,協同界面已成自然。然而随着Serverless等雲原生技術地廣泛應用,在越來越多的端應用場景中,開發團隊僅需前端開發人員即可以閉環完成應用的研發和上線工作;在應用架構次元,Serverless FaaS帶來的是基于事件驅動,無狀态,函數式邏輯片段的全新範式,與傳統的應用模型有着較大的差別。改變即成本,更關鍵的是改變背後不是純粹的技術,還有組織的變革,生産關系的變革。
• 技術成熟度
無論是Serverless FaaS還是低代碼開發,都屬于商業導入期的技術,産品化完善度還有欠缺,所能覆寫的場景也有一定的局限性,對于主流的複雜應用場景,Serverless FaaS還需結合傳統微服務等架構形成混合式的Serverless應用。在系統可觀測性,研發調試便捷性,函數啟動性能,函數執行時長等技術關鍵控制點上依然有較長的路要走。
• 架構靈活度
雲原生能力代表了對雲基礎設施的高維封裝和抽象,抽象即意味着管控粒度變粗,系統的靈活性與定制擴充能力會天然地受到一定的削弱;
雖然挑戰巨大,但趨勢已現。EMAS BaaS已經成為國内大量移動App的必備基礎設施,全球範圍内覆寫超過20億的活躍裝置終端,每天的API調用量超過百億規模;基于EMAS Serverless(
https://www.aliyun.com/product/miniappdev),疫情期間我們看到大量開發者快速地實作了防疫抗疫工具應用的開發,從誕生想法到産品上線曆時僅需一周;在企業内部,越來越多的辦公應用和表單應用基于低代碼平台快速建構,企業生産力得到了大幅提升。參照Hype Cycle[7]的模型,雲原生的多項新興技術已經湧現大量生産實踐項目,技術成熟度已然進入了穩步爬坡期。
毫無疑問我們站在了又一個技術紀元的前夜,雲端一體,一雲多端正在成為前台應用研發的事實标準,擁抱雲原生将成為開發者享受雲計算紅利的最短路徑。我們歡迎更多的有識之士加入我們( [email protected] ),變革生産力,改變世界。
歡迎加入EMAS開發者釘釘交流群
群号:35248489
REFERENCES
[1] Use MASA to Deliver an Agile Multiexperience Enterprise Application Architecture, Gartner, 2019
[2] Top 10 Strategic Technology Trends for 2020: Multiexperience, Gartner, 2020
[3] Technology Insight for Multiexperience Development Platforms, Gartner, 2020
[4]
https://en.wikipedia.org/wiki/Mobile_backend_as_a_service,WIKIPEDIA
[5]
https://en.wikipedia.org/wiki/Function_as_a_service,[6]
https://en.wikipedia.org/wiki/Low-code_development_platform,[7]
https://en.wikipedia.org/wiki/Hype_cycle,WIKIPEDIA