端应用研发进入云原生时代

本文涉及的产品
移动研发平台 EMAS,开发者版免费套餐
简介: 随着技术的发展和各种用户端场景的涌现,业务前台形式变得更加多样,“面向多样化的端场景提供无缝的、一致的数字用户旅程”已经成为了新时代企业应用架构的关键目标,同时它也是当下大前端技术发展背后的核心业务牵引。基于阿里云在过去几年服务海量用户的经验沉淀,本文总结了新的基于云原生技术的端应用研发范式,期望为广大开发者、企业提供云计算时代面向企业业务前台的应用研发方法论。

阿里云 云原生应用研发平台EMAS 杨镔(泠茗)

若对文章感兴趣想联系作者,请加入钉钉交流群,群号35248489,微信公众号:EMAS

多样化用户体验( Multiexperience )与大前端

随着云计算、移动化、IoT、AI等技术概念地落地和持续发展,社会的数字化进程在不断加速。Gartner近期发布了新的企业应用架构方法论MASA(Mesh Application and Service Architechture,网格应用和服务架构)[1],融合近5年流行的技术趋势,为广大企业信息化的供应商、开发者和企业用户定义了更广泛的企业数字化应用架构模型。
image.png

与阿里所定义的中台不同,MASA将企业应用拆解为上中下三层,在传统的后端业务能力基础之上,将企业前台,以及用于前后台链接的API网关层也涵盖了进来,通过网格化的架构实现企业的业务流程、员工、服务、内容、设备间的动态连接,以构建匹配现有技术形态和未来技术趋势的更敏捷、灵活、可扩展的应用架构。

伴随MASA,面向企业前台的Multiexperience( 多样化用户体验 )被Gartner明确提出并定义为2020年的十大技术趋势[2]。Multiexperience期望利用多元化的前台技术(移动应用、Web、小程序、可穿戴设备等)全面升级企业面向终端客户的数字化触点,以终端客户为中心构建多元(体验多元化)而一体(架构一体化)的用户界面。Multiexperience与国内所流行的大前端概念不同,但他们背后恰恰有着相通的故事主线。

大前端在国内还没有一个统一的定义,它更偏向一个相对纯粹的技术概念,意指面向客户侧的端技术集合,它的出现始于客户端Native与Web两大技术栈的不断融合,背后核心是跨平台技术在移动、PC、小程序、Web等场景下地不断发展和成熟。

大前端技术栈在Multiexperience这样的业务需求背景下不断磨砺,同时又反向支撑业务不断扩展其面向终端客户的数字化触点的场景和范围。技术拓展商业边界,商业驱动技术变革。面向全端场景,提供无缝的、一致的数字用户旅程是Multiexperience和大前端一脉相通的用户理念。

如今,面向全新的业务架构范式,如何加速新时代下多元化的端应用研发,为业务提供更敏捷而高效地交付呢?云原生技术是最佳选项。

一云多端,云原生技术如何驱动端应用研发

很多人有疑惑,云原生与端测的研发有什么关系,云原生不是一个后端技术域的概念么?其实不然。云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、敏捷地构建和管理一款弹性的应用。它的关键理念包括:
• 所有的运行环境透明化,弹性伸缩;
• 所有的研发流程流水化,高效交付;
• 所有的基础设施服务化,按量付费;

云原生的研发模型旨在降低业务的技术风险,让开发者可以更单纯地专注于自己的业务。面向端应用场景,云原生技术理念同样适用。

Gartner在2019年定义了一条全新的技术赛道:Multiexperience Development Platform(MXDP)[3],用以描述那些通过敏捷、现代化的技术能力帮助企业高效地实现Multiexperience的研发平台,其能力矩阵示意如下图:
image.png

从MXDP的关键元素构成我们可以看到,除了传统的研发工具类组件外,云原生技术成为了MXDP最核心的技术元素,其中的典型技术包括:

DevOps,驱动端应用的高速迭代

端应用对比传统后端有着典型的差异,以移动App为例,应用本身构建在异构的机型、OS平台之上,运行环境约束较多,依赖大量的后端服务支撑,应用本身的持续集成和交付过程也包含了许多移动场景特有的元素,比如编译环境、兼容测试、内测分发、渠道打包、灰度发布等,这些关键差异决定了端应用必须构建自己特有的DevOps体系。
image.png

研发域:面向端应用的DevOps平台需要解决应用持续集成过程的组织协同和自动化。针对端应用的研发期,成熟的DevOps平台需具备:
• 面向多端的编译构建环境并实现自动化的软件更新;
• 可靠,弹性伸缩的构建服务集群;
• 代码与证书托管;
• 静态代码扫描;
• 软件定义的工作流;

测试域:端应用的测试较传统后端应用复杂度大幅提升,除了基础的功能、性能测试外,还需要有面向异构机型、终端、操作系统的兼容性测试,成熟的端应用测试平台应具备:
• 兼容性测试服务,覆盖主流的机型、设备、操作系统;
• 性能测试服务,支持各类应用崩溃、ANR、卡顿、IO、CPU、内存等关键性能指标监测和评估;
• 自动化测试引擎,支持测试用例编写、回放和管理;
• 远程真机能力,支持设备的云端访问;
• 智能Monkey与AITest等智能化技术驱动的测试能力;

发布域:端应用的目标发布对象是海量的终端设备,生产发布受应用市场审核限制,因此,可靠、精准、定向的应用分发能力是应用生产分发的关键技术要求,包括:
• 企业内分发能力;
• 支持软件定义的灰度能力,支持面向不同的地域、网络、机型、渠道及其他自定义标签进行灰度分发;
• 面向不同渠道的生产发布能力;
• 版本管理与归档;

运维域:面向端应用的运维体系应始终围绕问题的感知,问题的定位,问题的修复展开,在传统的Metrics,Tracing,Logging基础之上,我们特别强调面向端的Hotfix的能力,这是区别于后端应用形态的特殊之处。成熟的端运维体系应包含:
• 面向端应用的APM能力,支持包括启动速度、页面加载、崩溃、网络性能、API性能等在内的监控报警体系,并能与后端APM联动进行基于事务的访问追踪;
• 面向端应用的远程日志能力,支持实时的终端日志记录和管理,加速问题的远程诊断;
• 面向端应用的热修复能力,支持针对不同设备平台的代码、资源热更新;

运营域:端应用作为企业业务入口,是企业面向终端用户的关键界面,必须时刻洞察用户的行为、倾听用户的声音,驱动业务的敏捷迭代。面向App的数据分析以及舆情反馈能力是DevOps的关键闭环之一。

数据分析应具备
• 面向全端的用户行为数据采集能力,包括小程序,APP,H5,PC,WEB,IoT等;
• 易用的终端埋点工具:支持代码埋点,自动埋点,可视化埋点等;
• 开放的数据能力:支持以API方式同步数据,支持与云厂商的计算平台无缝对接;

舆情反馈应具备
• 面向全端的用户反馈通道能力;
• 智能化的应答机器人;
• 舆情数据搜集和分析;

DevOps为Multiexperience的生产实践带来的关键价值包括:
更短的业务迭代周期
覆盖端应用全生命周期的工作流与自动化能力将带来应用持续交付能力以及跨团队协同效率地大幅提升,进而缩短业务的交付周期。作为企业面向终端用户的入口,更短的业务迭代周期意味着面向市场更快速的反应,这是数字时代商业成功的基石。
更合理的人力资源分配
云原生的工具链与自动化流水线将帮助企业避免耗费大量工程技术人员来维护本地化的工具和系统,同时大幅削减应用持续交付过程的人工环节。企业能够将宝贵的人力资源专注在自己核心业务的生产和研发上。
更稳固的应用交付质量
自动化的终端测试体系以及全方位的监控诊断体系将为端应用提供完整而充分的质量保障,这些云原生服务将为企业节省大量细分领域的专业人员投入,并通过专业且持续的工程技术演进以及智能技术的引进不断优化应用质量保障体系。
更优异的即时用户体验
围绕端应用全方位的行为数据埋点和分析将帮助企业更好地把握产品功能与市场的匹配度,而即时的舆情反馈能力则帮助企业更好地进行用户管理和关系维护。所有这些直接和间接来自客户的声音将直接驱动业务的快速迭代,通过云原生DevOps实现敏捷开发的生产实践。

Serverless & Backend as a Service(BaaS),端应用的运行引擎

Serverless是当下开发者社区最火爆的话题之一,其核心理念即去服务器化:把底层云计算的基础能力进行高维抽象,以API/SDK的方式开放后端能力的访问和获取,无需开发人员配置和部署服务器资源即可获得弹性伸缩、按量付费的后端服务支持。Serverless的技术理念其实在数年前就已出现:后端即服务(Backend as a Service,BaaS)[4]是典型的遵循Serverless设计理念的服务形态,早在2012年BaaS便在开发者社区中传播并因其便捷的使用模型而深受开发者喜爱。比较典型的BaaS服务包括消息推送、用户认证、云存储、云数据库等。
image.png

由于BaaS服务大幅削减了企业在后端研发力量上的开销,其在端应用场景得到了大范围地应用。但BaaS核心解决的主要是垂直场景化的后端能力抽象,并没法支撑业务本身的后端逻辑部分。Function as a Service(Faas)[5]的出现弥补了这一空缺,并使得Serverless的架构范式能够面向端应用场景提供更加完整的闭环。

FaaS是一种软件构建和部署的新方式,基于事件驱动模型,以函数粒度为开发者提供业务代码的托管环境。这种架构模型在数据处理、Backend for Frontend、移动应用、IoT应用和Web应用等场景有较常见的应用空间。

综上我们可以看到,面向应用的Serverless架构包含了BaaS和FaaS两种服务形态,为了完整地支撑端应用的场景需求,成熟的Serverless引擎应包括
消息推送
支持在服务器与客户端间建立可靠、省电的长连接,面向Android、iOS、Web、IoT等端应用提供下行消息推送能力。
登录认证
为开发者提供多维度的安全可靠的端到端身份验证能力,从而降低开发者在登录和账号体系上的开发成本和业务风险。身份验证模式包括邮箱认证、短信认证、号码认证以及主流互联网平台(淘宝、支付宝、QQ、微信、Google等)提供的登录认证能力。
数据同步
提供一个稳定可靠、加密安全的数据同步系统,支持数据在客户端的离线使用以及在线同步更新,以提供业务在移动应用、Web应用以及PC应用间的一致化用户体验。
远程配置
远程配置是面向端应用的持久配置管理服务,通过云端管理配置内容,并实时推送更新到客户端,灵活控制应用的功能、配置及UI实现。
云存储
提供基于API/SDK的便捷的云端存储能力,支持包括文本、图片、视频以及其他由用户生成的内容。
云数据库
基于云端的NoSQL数据库,提供面向各种前端的便捷访问接口,支持实时的数据操作、跨端数据同步和弹性伸缩。
云函数
允许开发者直接将程序托管到云函数平台上,以函数作为最小单元完成事件驱动的业务逻辑开发,通过API方式进行远程访问和调用。
AI能力
应用智能化是端应用的关键技术趋势,基础AI能力将成为端应用Serverless架构的基础组成,包括但不限于OCR、人脸识别、语音识别等。

Serverless架构及服务带来的核心价值体现在三个方面:
资源成本
传统的应用架构模型需要预先购置一批服务器设备,并按照使用周期内的预估业务峰值来进行财务预算,不确定性因素较多,服务器资源的空置也会带来非常巨大的成本浪费。而Serverless的架构模型则实现了按需扩展、按量付费的弹性模型,让企业成本更可控。
运维成本
开发者不必再关心底层计算资源的容量与日常运维问题,所有基础设施维护将会由Serverless服务商负责解决并对开发者透明。削减的运维成本,弹性的资源使用和可扩展·能力都将帮助开发者更好地专注于业务本身的增长。
研发效率
完整的Serverless引擎提供了面向端应用的绝大部分场景能力的支撑,使得应用的研发非常便捷并易于维护。而在传统的研发模型下,代码开发、环境搭建、容量压测、集群扩容、应用部署等环节都会带来巨大的时间成本。

低代码,应用研发形态的新变革

云原生技术的出现使得传统业务架构大规模地向云架构转型,软件开发效率在这个阶段也得到了明显地提升。然而数字化时代,各种应用场景地涌现,业务对IT面向市场的响应即时性也提出了更高的要求。在跨时代的技术演进浪潮中,Low-code Development Platform(低代码平台)[6]快速浮出水面,并伴随多样化的端应用场景开始加速普及。低代码技术为软件研发效率带来的不仅仅是提升,更是变革。
image.png

对比传统的基于手工编码方式构建应用的模型,低代码平台提供给开发者基于GUI的软件编辑环境,并结合云原生基础设施帮助开发者快速完成应用的搭建。同时,这样的研发模型使得软件研发对软件开发者的技能要求门槛大幅降低,更多的具备一定IT基础概念的人群可以参与到软件开发中,而云原生架构则天然地帮助开发者解决了软件本身的部署、运维等工作。

成熟的低代码平台将广泛应用于企业的生产、营销、BPM、工具应用等场景,其核心能力主要由两部分组成:

  • 可视化应用编排引擎

• 支持包括Web、移动App、小程序在内的多端应用场景;
• 支持包括UI可视化编排、业务流编排、逻辑编排、数据编排等能力;
• 支持组件、模块、模板等模型,有开放化的物料系统和组件市场;
• 模型驱动,搭配元数据解析引擎(包括多端转译引擎/渲染引擎等);

  • 云原生应用平台

• 行业化领域模型与元数据管理
• 代码生成引擎
• 云原生应用托管
• CI/CD
• 丰富的集成与扩展能力

我们可以从施耐德电气与顶级低代码平台公司Outsystems的合作中看到低代码带来的价值:施耐德电气在应用低代码平台后,在短短20个月的时间内快速上线了60款App,其中绝大多数App在10周内完成开发和上线,第一年节省的人工成本达到650人天。低代码技术大幅缩短了传统企业数字化转型的路径。

至2024年,Gartner预计所有应用程序开发活动当中的65%将通过低代码的方式完成,似乎比想象的更快一些,但它确实在持续地发生。在全球市场,我们能够看到OutSystems、Mendix、PowerApps、App Maker快速的成长脚步,未来结合AI与机器学习,我们可以预见真正的“App工厂”的诞生。

求变应变,永不止步成就技术革新

作为国内移动互联网、云计算领域的行业巨擘,阿里巴巴在大前端、云原生领域有着丰富的实战经验。我们从2016年开始逐步将集团内部成熟的应用中间件云化输出,并在2018年推出了移动研发平台EMAS( https://cn.aliyun.com/product/emas ),如今,EMAS已经逐渐成长为横跨多端(移动App、H5应用、小程序、Web应用等)场景的云原生应用研发平台,基于广泛的云原生技术(Backend as a Service、Serverless、DevOps、低代码等),为企业、开发者提供一站式的应用研发管理服务,涵盖开发、测试、运维、运营等应用全生命周期。
image.png

截止到今天,伴随云计算的迅速普及和发展,我们已服务了15万以上的企业与开发者。(EMAS开发者版套餐免费订阅)

在海量的生产实践中,我们也看到了云原生技术在端应用场景下所面临的的关键挑战:
研发心智的改变
对于所有开发团队而言,前后端团队的定义根深蒂固,协同界面已成自然。然而随着Serverless等云原生技术地广泛应用,在越来越多的端应用场景中,开发团队仅需前端开发人员即可以闭环完成应用的研发和上线工作;在应用架构维度,Serverless FaaS带来的是基于事件驱动,无状态,函数式逻辑片段的全新范式,与传统的应用模型有着较大的区别。改变即成本,更关键的是改变背后不是纯粹的技术,还有组织的变革,生产关系的变革。
技术成熟度
无论是Serverless FaaS还是低代码开发,都属于商业导入期的技术,产品化完善度还有欠缺,所能覆盖的场景也有一定的局限性,对于主流的复杂应用场景,Serverless FaaS还需结合传统微服务等架构形成混合式的Serverless应用。在系统可观测性,研发调试便捷性,函数启动性能,函数执行时长等技术关键控制点上依然有较长的路要走。
架构灵活度
云原生能力代表了对云基础设施的高维封装和抽象,抽象即意味着管控粒度变粗,系统的灵活性与定制扩展能力会天然地受到一定的削弱;

虽然挑战巨大,但趋势已现。EMAS BaaS已经成为国内大量移动App的必备基础设施,全球范围内覆盖超过20亿的活跃设备终端,每天的API调用量超过百亿规模;基于EMAS Serverless( https://www.aliyun.com/product/miniappdev ),疫情期间我们看到大量开发者快速地实现了防疫抗疫工具应用的开发,从诞生想法到产品上线历时仅需一周;在企业内部,越来越多的办公应用和表单应用基于低代码平台快速构建,企业生产力得到了大幅提升。参照Hype Cycle[7]的模型,云原生的多项新兴技术已经涌现大量生产实践项目,技术成熟度已然进入了稳步爬坡期。

毫无疑问我们站在了又一个技术纪元的前夜,云端一体,一云多端正在成为前台应用研发的事实标准,拥抱云原生将成为开发者享受云计算红利的最短路径。我们欢迎更多的有识之士加入我们( lingming.yb@alibaba-inc.com ),变革生产力,改变世界。

欢迎加入EMAS开发者钉钉交流群
群号:35248489


钉群二维码.png

REFERENCES

[1] Use MASA to Deliver an Agile Multiexperience Enterprise Application Architecture, Gartner, 2019
[2] Top 10 Strategic Technology Trends for 2020: Multiexperience, Gartner, 2020
[3] Technology Insight for Multiexperience Development Platforms, Gartner, 2020
[4] https://en.wikipedia.org/wiki/Mobile_backend_as_a_service, WIKIPEDIA
[5] https://en.wikipedia.org/wiki/Function_as_a_service, WIKIPEDIA
[6] https://en.wikipedia.org/wiki/Low-code_development_platform, WIKIPEDIA
[7] https://en.wikipedia.org/wiki/Hype_cycle,WIKIPEDIA

相关文章
|
18天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
19天前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
16天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
21天前
|
Kubernetes Cloud Native 物联网
云原生技术在现代软件开发中的应用与挑战####
本文探讨了云原生技术的兴起背景、核心理念及其在现代软件开发中的广泛应用。通过具体案例分析,揭示了云原生架构如何促进企业数字化转型,并指出了在实施过程中面临的主要挑战及应对策略。 ####
|
11天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
16天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
23天前
|
消息中间件 Cloud Native 持续交付
云原生技术在现代企业中的应用与优势###
本文深入探讨了云原生技术在现代企业中的具体应用及其带来的显著优势。随着云计算的普及,云原生作为一种新兴的技术架构,正逐渐成为企业数字化转型的关键驱动力。文章将详细介绍云原生的核心概念、主要技术组件以及在实际业务场景中的成功案例,旨在为读者提供一个全面且实用的参考框架,以便更好地理解和应用云原生技术。 ###
|
16天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
26天前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
40 3
|
27天前
|
Cloud Native 持续交付 云计算
云原生架构的演进与挑战
随着云计算技术的不断发展,云原生架构已成为企业数字化转型的重要支撑。本文深入探讨了云原生架构的概念、发展历程、核心技术以及面临的挑战,旨在为读者提供一个全面了解云原生架构的视角。通过分析Kubernetes、Docker等关键技术的应用,以及微服务、持续集成/持续部署(CI/CD)等实践案例,本文揭示了云原生架构在提高应用开发效率、降低运维成本、增强系统可扩展性等方面的显著优势。同时,也指出了云原生架构在安全性、复杂性管理等方面所面临的挑战,并提出了相应的解决策略。
下一篇
DataWorks