雲原生(Cloud Native)- 移動 App 研發新正規化
雲原生的話題近期異常火熱,對於它的概念,大家也有不同的解讀。從我個人的視角而言,雲原生代表了一種應用構建的方法論:如何最大程度地利用雲端計算服務模型的優勢低成本、快速地構建一款彈性的應用。本質上而言,雲原生的研發模型旨在降低業務的技術風險,讓開發者的形態更單純、專注 所有的執行環境透明化,按需擴充套件。
什麼是雲原生App
雲原生的話題近期異常火熱,對於它的概念,大家也有不同的解讀。從我個人的視角而言,雲原生代表了一種應用構建的方法論:如何最大程度地利用雲端計算服務模型的優勢低成本、快速地構建一款彈性的應用。本質上而言,雲原生的研發模型旨在降低業務的技術風險,讓開發者的形態更單純、專注:
- 所有的執行環境透明化,按需擴充套件;
- 所有的研發流程流水化,高效交付;
- 所有的基礎設施服務化,按量付費;
我們通常意義下的雲原生應用意指傳統的後端應用,Container、Microservice、DevOps構成了雲原生研發架構的鐵三角。對於移動 App 這類呈現重前端輕後端形態的產品而言,雲原生有另一種詮釋方式。移動 App 對比傳統的後端應用研發有著較大的形態差異,應用本身構建在異構的OS平臺之上,執行環境約束較多,依賴大量的後端服務支撐,應用本身的持續交付過程也包含了許多移動場景特有的元素,比如編譯環境(iOS)、相容測試、內測分發、渠道打包、灰度釋出等等。從基礎環境的支撐視角,雲端計算服務商面向移動 App 需要解決的幾個核心問題包括:
-
跨平臺;
移動 App 需要面對多個 OS 平臺,在研發資源和迭代週期上都會帶來巨大的挑戰。一站式跨平臺研發框架將有助於應用進入市場的節奏把控,遮蔽不同 OS 平臺對 App 的影響。 -
鬆耦合;
移動 App 本身同樣是一個非常龐大的體系工程,想象一下類似手機淘寶這樣的航母級 App 所承載的服務內容,數十個團隊併發協同一個版本的迭代是大型 App 的常態,所以一個鬆耦合結構的應用容器/腳手架是應用高速迭代的基礎底座。 -
服務化元件;
基礎元件的功能純粹,通過雲化的中介軟體和後端服務構建彈性的終端基礎能力是價效比最高的一種軟體構建方式。 -
快速迭代;
移動 App 特有的流程元素決定了開源的 CI/CD 服務不能完全滿足移動 App 快速迭代的場景訴求。另一方面持續交付流程與雲上的後端服務存在大量的互動,雲化的持續交付/研發支撐平臺將會是移動 App 生命週期管理的終極殺器。 -
按需擴充套件;
移動 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與傳統研發模型的核心差異點。
阿里雲對雲原生 App 的支援
目前國內真正能夠提供雲原生 App 完整技術棧支援的供應商並不多,絕大多數都是以 BaaS 形態進行服務的垂直廠商。由於缺少 App 研發支撐解決方案以及和 IaaS 層的聯動,這種型別的服務無法徹底利用移動 App 開發強內聚的場景特性,淪為單點的工具支撐,為開發者帶來的效率提升也是相對有限和獨立的。
阿里巴巴在移動網際網路領域有近 7 年的研發經驗積累,在移動技術不斷深化的同時,移動開發正規化也在快速演進,以支撐整個阿里巴巴體系內移動 App 的快速迭代和品質保障。下圖展示了阿里巴巴 Cloud Native App 的架構正規化。除了端+雲的硬能力棧支撐外,阿里巴巴也開放了包括 Android/iOS 平臺研發規約,移動研發 DevOps 規約在內的一系列軟能力棧。軟、硬能力棧背後蘊含的是對移動行業的深層認知與理解,絕非一朝之功。
在阿里雲平臺上,我們很高興通過 ApsaraMobile(移動雲)為大家開放阿里巴巴 Cloud Native App 的完整能力棧。阿里雲 ApsaraMobile(移動雲)是阿里巴巴移動技術的開放平臺,沉澱了阿里巴巴多年移動網際網路系統架構積累,近期也和阿里百川進行了深度整合,是阿里生態移動技術與理念對外輸出的主視窗。ApsaraMobile 目前向開發者開放的能力如下圖所示,已基本覆蓋完整了雲原生 App 的核心中軸。
跨平臺 UI 開發框架:基於 WEEX 的 MADP
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 個具體的職能域,如下圖所示。
對於絕大多數企業而言,中介軟體的建設並非位於業務的核心發展路徑上,缺少持續深耕的源生動力。而云服務則可以通過規模化的服務來平攤基礎技術研發的成本,在人才聚斂、資源投入、產品穩定性與效能等方面都具備絕對的優勢,是整個移動生態分工細化和生產效率提升的重要表現。阿里巴巴在行動網路、移動高可用、訊息、移動資料等領域積累了大量的場景能力,可以有效地幫助企業規避重複的能力建設和繁重的維護、演進成本。
結語
移動超越 PC 成為第一大流量入口,業務移動化已經成為幾乎所有企業的核心戰略之一,如何抓住時間視窗,以最快速度把產品推向市場,往往成為決定產品最終命運的關鍵元素。雲端計算帶來的研發模式變化是巨大的,對於快速成長期的團隊和企業而言,雲原生的研發正規化將帶來較低的試錯創新成本,真正助力創業進入“快消時代”。在整個移動開發生態的自然進化選擇中,雲原生勢必將成為一種主流形態。
相關文章
- Oracle Cloud Native Framework推出雲原生解決方案OracleCloudFramework
- 華為雲打造雲原生基礎設施新正規化,將“創新普惠”進行到底
- 阿里雲丁宇:雲原生啟用應用構建新正規化,Serverless奇點已來阿里Server
- 雲原生 Cloud Native 在企業中的應用與發展趨勢Cloud
- 阿里雲丁宇:以領先的雲原生技術,啟用應用構建新正規化阿里
- ionicreact-native和native開發移動app到底那個好ReactAPP
- 阿里雲移動研發平臺EMAS是什麼?移動研發平臺EMAS有什麼特色?阿里
- 淺議個人資料開發利用新正規化
- 原生移動應用框架React Native與Flutter比較框架React NativeFlutter
- 阿里雲移動研發平臺EMAS:2月產品動態阿里
- [譯] 測試原生,Flutter 和 React Native 移動開發之間的效能差異FlutterReact Native移動開發
- 阿里雲移動研發平臺EMAS4月產品動態阿里
- 龍蜥LoongArch架構研發全揭秘,龍芯開闢龍騰計劃技術合作新正規化架構
- 移動開發規範移動開發
- CODING —— 雲原生時代的研發工具領跑者
- Flutter 與Native原生互動Flutter
- 使 React Native App 更具原生質感React NativeAPP
- “大模型驅動的軟體研發” 華為雲助推企業研發智慧化升級大模型
- YonBuilder移動開發-移動原生外掛開發環境配置教程UI移動開發開發環境
- 雲原生生態,架構和相關的廠商社群介紹 cloud native eco system架構Cloud
- 深度好文|探尋雲原生時代應用研發新模式模式
- 走進雲研發時代 阿里雲釋出雲原生DevOps解決方案阿里dev
- 雲原生推動全雲開發與實踐
- 從 DevOps 到平臺工程:軟體開發的新正規化dev
- 移動短影片直播開發,短影片原始碼搭建社交平臺原生APP原始碼APP
- 阿里雲“玩轉雲上 StarRocks3.0 湖倉分析”,開啟資料分析新正規化阿里S3
- 做雲原生時代標準化工具,實現高效雲上研發工作流
- 阿里雲EMAS|App隱私合規“免費”自動化檢測阿里APP
- 移動端App開發 - 02 - iPhone/iPad/Android UI尺寸規範APPiPhoneiPadAndroidUI
- 【Spring Cloud + Vue 有來商城】研發小組開發規範全方位梳理SpringCloudVue
- SLS 查詢新正規化:使用 SPL 對日誌進行互動式探索
- 數商雲X日本高化學,共同打造跨境化學品B2B平臺新正規化
- React Native Expo開發的OW移動端專案React Native
- WebApp風雲起:站長在網站移動化大潮中如何角力?WebAPP網站
- React Native 開發規範React Native
- 亞馬遜雲科技17年引領Serverless持續進化 Serverless進入發展新正規化亞馬遜Server
- 騰訊雲CODING 戰略全面升級,要做雲原生研發工具的領跑者
- 原生APP和移動網頁我們到底該如何取捨APP網頁