閱讀172 返回首頁    go 阿裏雲 go 技術社區[雲棲]


雲原生(Cloud Native)- 移動App研發新範式

什麼是雲原生(Cloud Native)App
雲原生的話題近期異常火熱,對於它的概念,大家也有不同的解讀。從我個人的視角而言,雲原生代表了一種應用構建的方法論:如何最大程度地利用雲計算服務模型的優勢低成本、快速地構建一款彈性的應用。本質上而言,雲原生的研發模型旨在降低業務的技術風險,讓開發者的形態更單純、專注:
所有的運行環境透明化,按需擴展;
所有的研發流程流水化,高效交付;
所有的基礎設施服務化,按量付費;
1
雲原生應用

我們通常意義下的雲原生應用意指傳統的後端應用,Container、Microservice、DevOps構成了雲原生研發架構的鐵三角。對於移動App這類呈現重前端輕後端形態的產品而言,雲原生有另一種詮釋方式。移動App對比傳統的後端應用研發有著較大的形態差異,應用本身構建在異構的OS平台之上,運行環境約束較多,依賴大量的後端服務支撐,應用本身的持續交付過程也包含了許多移動場景特有的元素,比如編譯環境(iOS)、兼容測試、內測分發、渠道打包、灰度發布等等。從基礎環境的支撐視角,雲計算服務商麵向移動App需要解決的幾個核心問題包括:
跨平台;
移動App需要麵對多個OS平台,在研發資源和迭代周期上都會帶來巨大的挑戰。一站式跨平台研發框架將有助於應用進入市場的節奏把控,屏蔽不同OS平台對App的影響。
鬆耦合;
移動App本身同樣是一個非常龐大的體係工程,想象一下類似手機淘寶這樣的航母級App所承載的服務內容,數十個團隊並發協同一個版本的迭代是大型App的常態,所以一個鬆耦合結構的應用容器/腳手架是應用高速迭代的基礎底座。
服務化組件;
基礎組件的功能純粹,通過雲化的中間件和後端服務構建彈性的終端基礎能力是性價比最高的一種軟件構建方式。
快速迭代;
移動App特有的流程元素決定了開源的CI/CD服務不能完全滿足移動App快速迭代的場景訴求。另一方麵持續交付流程與雲上的後端服務存在大量的交互,雲化的持續交付/研發支撐平台將會是移動App生命周期管理的終極殺器。
按需擴展;
移動App的流量波動將更劇烈和頻繁,按需擴展、彈性伸縮的基礎服務支撐將有助於靈活的業務運營和成本的降低。
2
雲原生App架構

我們把基於上述雲計算模型構建的移動App稱為雲原生App。在大家比較熟悉的概念中,圍繞移動App衍生的一個很典型的雲計算架構即Serverless。

Serverless
Serverless是當前軟件架構領域非常火熱的話題。從字麵上看,大家或許會比較困惑,沒有服務器,如何來托管服務實體?事實上Serverless是從用戶視角出發的一種應用架構範式,即基於雲服務的計算模型實現對業務邏輯的抽象封裝、管理,而無需關心底層資源的運維管理和擴展。我們所熟知的BaaS(Backend as a Service)以及FaaS(Function as a Service)即是Serverless架構模型的實體化服務形態。比如,當你想創建一個天氣服務,方便自己的應用或第三方的應用能夠很方便的獲取即時的天氣數據時,你就可以基於FaaS + API Gateway快速構建一個獨立的天氣微服務,並對外開放,這就是一種非常典型的Serverless服務場景。
Serverless架構模型的核心價值體現在三個方麵:
成本
傳統的研發支出模型需要預先購置一批服務器設備,並按照使用周期內的預估業務峰值來量化預算的大小,不確定性因素較多,服務器資源的空置也會帶來非常巨大的成本浪費。而Serverless的架構模型則實現了按需擴展、按量付費的彈性模型,讓企業成本更高效可控。由於Serverless服務粒度的進一步打細,基於高效的bin-packing算法甚至可以獲得對比彈性伸縮的虛擬機集群更高的使用效率。
運維
開發者不必再關心底層計算資源的容量與日常運維問題,所有基礎設施維護將會由雲計算服務商負責解決並對開發者透明。
效率
細粒度的Serverless計算模型非常適用運算密集型的場景,能夠低成本地實現瞬時高強度脈衝計算能力。而傳統架構為這樣的脈衝計算場景則需要付出高昂成本的準備工作,環境搭建、容量壓測、計算存儲擴容、應用上線部署等等,這些隱性的時間資源成本更佐證了Serverless的核心價值。
Serverless意圖把服務運行時封裝在服務本身的交付體係中,麵向開發者屏蔽與業務無關的基礎環境支撐細節,是你能想象到的對應用邏輯最高等級的抽象。

雲原生App對比傳統研發架構的收益
基於Serverless的介紹,我們應該已經能看到雲原生架構範式帶來的不同,接下來我們一起係統化地對比一下雲原生App與傳統研發模型的核心差異點。
e
e2

阿裏雲對雲原生App的支持
目前國內真正能夠提供雲原生App完整技術棧支持的供應商並不多,絕大多數都是以BaaS形態進行服務的垂直廠商。由於缺少App研發支撐解決方案以及和IaaS層的聯動,這種類型的服務無法徹底利用移動App開發強內聚的場景特性,淪為單點的工具支撐,為開發者帶來的效率提升也是相對有限和獨立的。
阿裏巴巴在移動互聯網領域有近7年的研發經驗積累,在移動技術不斷深化的同時,移動開發範式也在快速演進,以支撐整個阿裏巴巴體係內移動App的快速迭代和品質保障。下圖展示了阿裏巴巴Cloud Native App的架構範式。除了端+雲的硬能力棧支撐外,阿裏巴巴也開放了包括Android/iOS平台研發規約,移動研發DevOps規約在內的一係列軟能力棧。軟、硬能力棧背後蘊含的是對移動行業的深層認知與理解,絕非一朝之功。
3
阿裏巴巴Cloud Native App Paradigm

在阿裏雲平台上,我們很高興通過ApsaraMobile(移動雲)為大家開放阿裏巴巴Cloud Native App的完整能力棧。阿裏雲ApsaraMobile(移動雲)是阿裏巴巴移動技術的開放平台,沉澱了阿裏巴巴多年移動互聯網係統架構積累,近期也和阿裏百川進行了深度整合,是阿裏生態移動技術與理念對外輸出的主窗口。ApsaraMobile目前向開發者開放的能力如下圖所示,已基本覆蓋完整了雲原生App的核心中軸。
4
ApsaraMobile體係圖

跨平台UI開發框架:WEEX-based MADP(Mobile App Development Platform)
WEEX是阿裏巴巴開源的跨平台移動UI開發框架,並於16年底正式捐贈給Apache基金會進行孵化。WEEX
具備一次開發,三端(Android,iOS,H5)運行的能力,相對於H5來說,在使用相同的web化開發模式,保持較高的研發效率、較低的研發成本的同時,又具備接近Native的性能體驗,非常適合需要快速迭代又對性能體驗有一定要求的APP開發者。
移動App應用容器:Atlas
Atlas是阿裏巴巴開源的Android端應用容器,提供解耦的組件化/插件化模塊框架及動態化支持。幫助工程師解決在工程編碼期、Apk運行期以及運維修複期麵臨的各種棘手問題。
在工程期,實現工程獨立開發,調試的功能,工程模塊獨立。
在運行期,實現完整的組件生命周期的映射,類隔離等機製。
在運維期,提供快速增量的更新修複能力,快速升級。
目前,Atlas在阿裏巴巴體係內部的應用十分廣泛,手淘自身超過60+業務組件、20個協作團隊,以及百萬行級別代碼都在Atlas上運行,其快速迭代能力讓應用的發布周期從每月到每周再到隨時發布,在過去半年裏就發布了446次。另外Atlas本身非常輕量,隻有90多個類,支持大小型App開發,從大型的手淘到相對小型的阿裏健康等都在使用該框,其穩定性也接受了考驗,兼容Android 4.x以上係統版本。整體手淘的Crash率一直維持在萬分之五左右,因為容器導致的crash占比小於百分之一。
研發支撐平台:MobileHub
對於企業而言,單純的購買虛機替代傳統的物理機僅僅實現了基礎資源的雲化,這是雲計算最初階的使用模式。企業互聯網+的真正標誌應該是研發體係的互聯網化,如何通過敏捷、DevOps、容器、分布式、Serverless等互聯網形態的思維和架構來真正影響企業內部的產品體係結構和研發的日常運轉形態,這才是雲計算更高階的價值傳遞。
MobileHub是阿裏巴巴多年移動互聯網行業沉澱、打磨的移動App研發支撐平台,支撐了阿裏巴巴數個億級App的完整生命周期全流程管理,從項目管理、持續集成、持續構建到自動化測試、版本管理、灰度發布、監控運維、用戶運營等環節,整個工作流融入了阿裏巴巴在移動互聯網領域的深層認知與理解,是移動App研發體係中軟能力棧的幾個關鍵元素(機製、流程、方法論)的重要載體。
移動中間件與BaaS服務矩陣
移動中間件與BaaS服務負責了移動App基礎設施能力的支撐,與App業務解耦,適合以雲服務的形態幫助業務快速完成從0至1的基礎建設。雲化的移動中間件與BaaS服務本質上即是移動App Serverless架構的具象化實現。ApsaraMobile按照組件職能範疇把移動中間件劃分為5個具體的職能域,如下圖所示。
5
ApsaraMobile移動中間件服務矩陣

對於絕大多數企業而言,中間件的建設並非位於業務的核心發展路徑上,缺少持續深耕的源生動力。而雲服務則可以通過規模化的服務來平攤基礎技術研發的成本,在人才聚斂、資源投入、產品穩定性與性能等方麵都具備絕對的優勢,是整個移動生態分工細化和生產效率提升的重要表現。阿裏巴巴在移動網絡、移動高可用、消息、移動數據等領域積累了大量的場景能力,可以有效地幫助企業規避重複的能力建設和繁重的維護、演進成本。

結語
移動超越PC成為第一大流量入口,業務移動化已經成為幾乎所有企業的核心戰略之一,如何抓住時間窗口,以最快速度把產品推向市場,往往成為決定產品最終命運的關鍵元素。雲計算帶來的研發模式變化是巨大的,對於快速成長期的團隊和企業而言,雲原生的研發範式將帶來較低的試錯創新成本,真正助力創業進入“快消時代”。在整個移動開發生態的自然進化選擇中,雲原生勢必將成為一種主流形態。

作者:阿裏雲 ApsaraMobile 楊镔(泠茗)

最後更新:2017-09-18 15:03:23

  上一篇:go  如何利用深度學習診斷心髒病
  下一篇:go  三步搞定Jmeter壓測DNS