Cloud Native 云原生- 移动App研发新范式

什么是云原生(Cloud )App
云原生的话题近期异常火热 , 对于它的概念,大家也有不同的解读 。从我个人的视角而言 , 云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、快速地构建一款弹性的应用 。本质上而言,云原生的研发模型旨在降低业务的技术风险,让开发者的形态更单纯、专注:

Cloud Native  云原生- 移动App研发新范式

文章插图
云原生应用
我们通常意义下的云原生应用意指传统的后端应用,、、构成了云原生研发架构的铁三角 。对于移动App这类呈现重前端轻后端形态的产品而言 , 云原生有另一种诠释方式 。移动App对比传统的后端应用研发有着较大的形态差异 , 应用本身构建在异构的OS平台之上,运行环境约束较多,依赖大量的后端服务支撑,应用本身的持续交付过程也包含了许多移动场景特有的元素,比如编译环境(iOS)、兼容测试、内测分发、渠道打包、灰度发布等等 。从基础环境的支撑视角,云计算服务商面向移动App需要解决的几个核心问题包括:
Cloud Native  云原生- 移动App研发新范式

文章插图
云原生App架构
我们把基于上述云计算模型构建的移动App称为云原生App 。在大家比较熟悉的概念中,围绕移动App衍生的一个很典型的云计算架构即 。
是当前软件架构领域非常火热的话题 。从字面上看,大家或许会比较困惑,没有服务器 , 如何来托管服务实体?事实上是从用户视角出发的一种应用架构范式,即基于云服务的计算模型实现对业务逻辑的抽象封装、管理,而无需关心底层资源的运维管理和扩展 。我们所熟知的BaaS( as a )以及FaaS( as a )即是架构模型的实体化服务形态 。比如,当你想创建一个天气服务 , 方便自己的应用或第三方的应用能够很方便的获取即时的天气数据时,你就可以基于FaaS + API快速构建一个独立的天气微服务,并对外开放,这就是一种非常典型的服务场景 。
架构模型的核心价值体现在三个方面:
意图把服务运行时封装在服务本身的交付体系中 , 面向开发者屏蔽与业务无关的基础环境支撑细节,是你能想象到的对应用逻辑最高等级的抽象 。
云原生App对比传统研发架构的收益
Cloud Native  云原生- 移动App研发新范式

文章插图
基于的介绍,我们应该已经能看到云原生架构范式带来的不同 , 接下来我们一起系统化地对比一下云原生App与传统研发模型的核心差异点 。
Cloud Native  云原生- 移动App研发新范式

文章插图
阿里云对云原生App的支持
【Cloud Native云原生- 移动App研发新范式】目前国内真正能够提供云原生App完整技术栈支持的供应商并不多,绝大多数都是以BaaS形态进行服务的垂直厂商 。由于缺少App研发支撑解决方案以及和IaaS层的联动,这种类型的服务无法彻底利用移动App开发强内聚的场景特性,沦为单点的工具支撑,为开发者带来的效率提升也是相对有限和独立的 。
阿里巴巴在移动互联网领域有近7年的研发经验积累,在移动技术不断深化的同时,移动开发范式也在快速演进,以支撑整个阿里巴巴体系内移动App的快速迭代和品质保障 。下图展示了阿里巴巴CloudApp的架构范式 。除了端+云的硬能力栈支撑外,阿里巴巴也开放了包括/iOS平台研发规约,移动研发规约在内的一系列软能力栈 。软、硬能力栈背后蕴含的是对移动行业的深层认知与理解 , 绝非一朝之功 。
Cloud Native  云原生- 移动App研发新范式

文章插图
阿里巴巴Cloud Native App Paradigm
在阿里云平台上,我们很高兴通过(移动云)为大家开放阿里巴巴CloudApp的完整能力栈 。阿里云(移动云)是阿里巴巴移动技术的开放平台,沉淀了阿里巴巴多年移动互联网系统架构积累,近期也和阿里百川进行了深度整合,是阿里生态移动技术与理念对外输出的主窗口 。目前向开发者开放的能力如下图所示,已基本覆盖完整了云原生App的核心中轴 。
Cloud Native  云原生- 移动App研发新范式

文章插图
ApsaraMobile体系图
跨平台UI开发框架:WEEX-based MADP( App)
WEEX是阿里巴巴开源的跨平台移动UI开发框架,并于16年底正式捐赠给基金会进行孵化 。WEEX具备一次开发,三端(,iOS,H5)运行的能力,相对于H5来说,在使用相同的web化开发模式 , 保持较高的研发效率、较低的研发成本的同时,又具备接近的性能体验,非常适合需要快速迭代又对性能体验有一定要求的APP开发者 。
移动App应用容器:Atlas
Atlas是阿里巴巴开源的端应用容器,提供解耦的组件化/插件化模块框架及动态化支持 。帮助工程师解决在工程编码期、Apk运行期以及运维修复期面临的各种棘手问题 。
目前,Atlas在阿里巴巴体系内部的应用十分广泛,手淘自身超过60+业务组件、20个协作团队 , 以及百万行级别代码都在Atlas上运行,其快速迭代能力让应用的发布周期从每月到每周再到随时发布 , 在过去半年里就发布了446次 。另外Atlas本身非常轻量,只有90多个类,支持大小型App开发,从大型的手淘到相对小型的阿里健康等都在使用该框 , 其稳定性也接受了考验,兼容 4.x以上系统版本 。整体手淘的Crash率一直维持在万分之五左右,因为容器导致的crash占比小于百分之一 。
研发支撑平台:
对于企业而言,单纯的购买虚机替代传统的物理机仅仅实现了基础资源的云化,这是云计算最初阶的使用模式 。企业互联网+的真正标志应该是研发体系的互联网化,如何通过敏捷、、容器、分布式、等互联网形态的思维和架构来真正影响企业内部的产品体系结构和研发的日常运转形态,这才是云计算更高阶的价值传递 。
是阿里巴巴多年移动互联网行业沉淀、打磨的移动App研发支撑平台 , 支撑了阿里巴巴数个亿级App的完整生命周期全流程管理,从项目管理、持续集成、持续构建到自动化测试、版本管理、灰度发布、监控运维、用户运营等环节,整个工作流融入了阿里巴巴在移动互联网领域的深层认知与理解 , 是移动App研发体系中软能力栈的几个关键元素(机制、流程、方法论)的重要载体 。
移动中间件与BaaS服务矩阵
移动中间件与BaaS服务负责了移动App基础设施能力的支撑,与App业务解耦,适合以云服务的形态帮助业务快速完成从0至1的基础建设 。云化的移动中间件与BaaS服务本质上即是移动App 架构的具象化实现 。按照组件职能范畴把移动中间件划分为5个具体的职能域,如下图所示 。
Cloud Native  云原生- 移动App研发新范式

文章插图
ApsaraMobile移动中间件服务矩阵
对于绝大多数企业而言,中间件的建设并非位于业务的核心发展路径上 , 缺少持续深耕的源生动力 。而云服务则可以通过规模化的服务来平摊基础技术研发的成本,在人才聚敛、资源投入、产品稳定性与性能等方面都具备绝对的优势,是整个移动生态分工细化和生产效率提升的重要表现 。阿里巴巴在移动网络、移动高可用、消息、移动数据等领域积累了大量的场景能力 , 可以有效地帮助企业规避重复的能力建设和繁重的维护、演进成本 。
结语
移动超越PC成为第一大流量入口,业务移动化已经成为几乎所有企业的核心战略之一 , 如何抓住时间窗口,以最快速度把产品推向市?。?往往成为决定产品最终命运的关键元素 。云计算带来的研发模式变化是巨大的 , 对于快速成长期的团队和企业而言,云原生的研发范式将带来较低的试错创新成本,真正助力创业进入“快消时代” 。在整个移动开发生态的自然进化选择中,云原生势必将成为一种主流形态 。
原文链接: