【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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:002843

评论

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

一图看懂华为云CodeArts Board5大特性,带你玩转看板服务

华为云PaaS服务小智

云计算 数据可视化 华为云 企业研发管理 数据看板

3dMax 应该用哪个渲染器?Vray、Corona、Arnold?

Finovy Cloud

Go 语言中 Context 的作用和使用方法详解

KaiwuDB

Go 语言 KaiwuDB

沐曦与百度飞桨完成兼容性测试,助力计算机视觉应用发展

飞桨PaddlePaddle

人工智能 百度 paddle

码控算法

qh12346

Maven进阶学习指南 | 京东云技术团队

京东科技开发者

maven 组件 依赖 Maven仓库 企业号 6 月 PK 榜

STC89C52+DHT20设计的环境温湿度检测仪

DS小龙哥

6 月 优质更文活动

实现 AI 大语言模型的关键在于超高性能存储能力

焱融科技

复旦发布云上最大科研智算平台

新云力量

智能 计算 复旦 科研智算平台

提升测试质量的四个关键特征

老张

质量保障 测试质量

CVPR2023|小红书提出 OvarNet 模型:开集预测的新SOTA,“万物识别”有了新玩法

小红书技术REDtech

深度学习 算法 小红书

[Qt开发]一口气搞懂串口通信

EquatorCoco

通信 qt

据平台流量回放最佳实践|精选

得物技术

前端 后端

李彦宏:AI原生应用比大模型数量更重要

飞桨PaddlePaddle

人工智能 百度 paddle 大模型

华为开发者大会—开发者的一站式代码检查利器:华为云代码检查CodeArts Check

华为云PaaS服务小智

云计算 华为云 华为开发者大会2023

架构实战营(一)

架构实战营

AI与企业信息安全的应用、技术以及前景

行云管家

AI 网络安全 信息安全 企业信息

直播程序源码技术分享主播邀请上麦功能

山东布谷科技

软件开发 程序 源码搭建 直播源码

.NET的基元类型包括哪些?Unmanaged和Blittable类型又是什么?一文带你深度解析

不在线第一只蜗牛

.net 编程

消息中间件最强笔记大全:MQ+Kafka+体系图+笔记

小小怪下士

Java 消息队列 消息中间件

一种接口依赖关系分层方案 | 京东云技术团队

京东科技开发者

依赖关系 接口优化 API 接口 企业号 6 月 PK 榜 接口分层

New Arrival: QCN9074 Dual Band/Tri-band 4X4 WIFI6 Network Card DR9074 (#QCN9074)

wallyslilly

QCN9074

IoT场景时序数据库性能对比报告出炉,TDengine 远超 InfluxDB & Timescal

电子信息发烧客

入门指南:使用Spring Boot构建Java应用程序

2756

入门学习

Go语言中的init函数: 特点、用途和注意事项

EquatorCoco

编程 Go 语言

NFTScan 与 Sender Wallet 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

NFT Research

NFT\

618技术揭秘:探究竞速榜页面核心前端技术 | 京东云技术团队

京东科技开发者

前端 H5页面 海报生成 动画特效 企业号 6 月 PK 榜

Flutter性能优化的一些路径思考

Onegun

flutter 移动开发

搜索语义模型的大规模量化实践

百度Geek说

paddle NLP 大模型 企业号 6 月 PK 榜 6 月 优质更文活动 INT8

工业物联网SCADA软件推荐

2D3D前端可视化开发

工业物联网 工业控制系统 web组态软件 HMI SCADA软件

目前包头市等保测评企业有几家?2家还是3家?

行云管家

等保 等级保护 等保测评 等保合规

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