AI 时代下组织如何快速变革?如何提升全员 AI 技能?戳> 了解详情
写点什么

Cloud Native App:阿里推出的移动开发新范式

  • 2017-10-22
  • 本文字数:3880 字

    阅读完需:约 13 分钟

什么是云原生(Cloud Native)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-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 个具体的职能域,如下图所示。

对于绝大多数企业而言,中间件的建设并非位于业务的核心发展路径上,缺少持续深耕的源生动力。而云服务则可以通过规模化的服务来平摊基础技术研发的成本,在人才聚敛、资源投入、产品稳定性与性能等方面都具备绝对的优势,是整个移动生态分工细化和生产效率提升的重要表现。阿里巴巴在移动网络、移动高可用、消息、移动数据等领域积累了大量的场景能力,可以有效地帮助企业规避重复的能力建设和繁重的维护、演进成本。

结语

移动超越 PC 成为第一大流量入口,业务移动化已经成为几乎所有企业的核心战略之一,如何抓住时间窗口,以最快速度把产品推向市场,往往成为决定产品最终命运的关键元素。云计算带来的研发模式变化是巨大的,对于快速成长期的团队和企业而言,云原生的研发范式将带来较低的试错创新成本,真正助力创业进入“快消时代”。在整个移动开发生态的自然进化选择中,云原生势必将成为一种主流形态。

本文已获原文作者方授权发布。

原文链接: https://yq.aliyun.com/articles/217376


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-10-22 19:003069

评论

发布
暂无评论
发现更多内容

记某百亿级mongodb集群数据过期性能优化实践

杨亚洲(专注MongoDB及高性能中间件)

Java MySQL 数据库 mongodb 分布式数据库mongodb

JAVA 九种排序算法详解(下)

加百利

Java 数组 排序 7月日更

Go 学习笔记之 字符串数据类型

架构精进之路

Go 语言 7月日更

渗透工程师必看-网络安全法条例-国家安全法介绍和案例

学神来啦

运维 黑客 安全 渗透

腾讯上线零点巡航,用Java手撕一个人脸识别系统

北游学Java

Java 腾讯 人脸识别

开源即巅峰!阿里首次分享:Java架构师全栈“成长笔记”

Java架构师迁哥

DICOM--网关(路由器/适配器)

birdbro

医学影像 DICOM PACS dicom4che DICOMWeb

字节跳动有状态应用云原生实践

火山引擎开发者社区

云原生 后端

爱了!阿里巴巴 Java 面试参考权威指南(泰山版)5月版开源

Java 编程 程序员 架构 面试

MySQL连接数管理

Simon

MySQL

灵魂拷问:我们该如何写一个适合自己的状态管理库?

尔达Erda

开源 云原生 大前端 API 运维开发

监测生命体征、活动水平的可穿戴电子产品设计方案

不脱发的程序猿

物联网 ADI 可穿戴电子产品设计方案 监测生命体征、活动水平 智能传感器

云原生打包工具:Buildpacks

QiLab

Docker 云原生 k8s buildpacks

手机如果能折叠能卷的话,电脑为什么不能呢?

船医特拉法尔加

开发者 工具 柔性屏

CDH 安装搭建(二)

大数据技术指南

CDH 7月日更

区块链时代下,企业如何打造数据要素的“新竞争力”?

旺链科技

大数据 产业区块链

linux网络编程—7层网络以及5种Linux IO模型以及相应IO基础

Linux服务器开发

后端 网络编程 Linux服务器开发 网络模型 IO模型

云图说|应用魔方AppCube:揭秘码农防脱神器

华为云开发者联盟

低代码 华为云 AppCube 云图说 应用魔方

云端赛车-Amazon DeepRacer 的前世今生

亚马逊云科技 (Amazon Web Services)

人工智能 开源

这套获50w+星标的算法神仙文档,足你解决90%的对手,牛逼

编程 程序员 架构 面试

手把手教你实现聚光灯效果

ThingJS数字孪生引擎

大前端 可视化 智能灯控 数字孪生

部分简单网页的基础了解

Emotion

html html5 Html报文解析 内部样式、 CSS语法

mPaaS 月度小报 | CodeDay#6 成都站落幕,下一站北京;上新季:新容器、新官网、新视觉

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

Hive学习笔记(一)

五分钟学大数据

hive 7月日更

Java项目实战营总结

eoeoeo

银行4.0时代的营销与风控之路

索信达控股

大数据 金融科技 数字化转型 银行数字化转型 营销数字化

阿里的架构师一致好评!IT界首版全栈架构师全栈“成长笔记”开源!

Java架构追梦

Java 阿里巴巴 架构 面试 成长笔记

共36万字!为上岸Alibaba,我把Github上Java面试题都整理了一遍

Java 编程 程序员 架构 面试

数据归档 - 冷热数据处理大师

趣链科技

数据处理 区块链+

对EF Core进行扩展使支持批量操作/复杂查询

Spook

EF Core

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 编程 程序员 架构 面试

Cloud Native App:阿里推出的移动开发新范式_语言 & 开发_Apsara Mobile_InfoQ精选文章