阿里云 云原生应用研发平台EMAS 杨镔(泠茗)
导读:随着技术的发展和各种用户端场景的涌现,业务前台形式变得更加多样,“面向多样化的端场景提供无缝的、一致的数字用户旅程”已经成为了新时代企业应用架构的关键目标,同时它也是当下大前端技术发展背后的核心业务牵引。基于阿里云在过去几年服务海量用户的经验沉淀,本文总结了新的基于云原生技术的端应用研发范式,期望为广大开发者、企业提供云计算时代面向企业业务前台的应用研发方法论。
多样化用户体验( Multiexperience )与大前端
随着云计算、移动化、IoT、AI等技术概念地落地和持续发展,社会的数字化进程在不断加速。Gartner近期发布了新的企业应用架构方法论MASA(Mesh Application and Service Architechture,网格应用和服务架构)[1],融合近5年流行的技术趋势,为广大企业信息化的供应商、开发者和企业用户定义了更广泛的企业数字化应用架构模型。
与阿里所定义的中台不同,MASA将企业应用拆解为上中下三层,在传统的后端业务能力基础之上,将企业前台,以及用于前后台链接的API网关层也涵盖了进来,通过网格化的架构实现企业的业务流程、员工、服务、内容、设备间的动态连接,以构建匹配现有技术形态和未来技术趋势的更敏捷、灵活、可扩展的应用架构。
伴随MASA,面向企业前台的Multiexperience( 多样化用户体验 )被Gartner明确提出并定义为2020年的十大技术趋势[2]。Multiexperience期望利用多元化的前台技术(移动应用、Web、小程序、可穿戴设备等)全面升级企业面向终端客户的数字化触点,以终端客户为中心构建多元(体验多元化)而一体(架构一体化)的用户界面。Multiexperience与国内所流行的大前端概念不同,但他们背后恰恰有着相通的故事主线。
大前端在国内还没有一个统一的定义,它更偏向一个相对纯粹的技术概念,意指面向客户侧的端技术集合,它的出现始于客户端Native与Web两大技术栈的不断融合,背后核心是跨平台技术在移动、PC、小程序、Web等场景下地不断发展和成熟。
大前端技术栈在Multiexperience这样的业务需求背景下不断磨砺,同时又反向支撑业务不断扩展其面向终端客户的数字化触点的场景和范围。技术拓展商业边界,商业驱动技术变革。面向全端场景,提供无缝的、一致的数字用户旅程是Multiexperience和大前端一脉相通的用户理念。
如今,面向全新的业务架构范式,如何加速新时代下多元化的端应用研发,为业务提供更敏捷而高效地交付呢?云原生技术是最佳选项。
一云多端,云原生技术如何驱动端应用研发
很多人有疑惑,云原生与端测的研发有什么关系,云原生不是一个后端技术域的概念么?其实不然。云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、敏捷地构建和管理一款弹性的应用。它的关键理念包括:
- 所有的运行环境透明化,弹性伸缩;
- 所有的研发流程流水化,高效交付;
- 所有的基础设施服务化,按量付费;
云原生的研发模型旨在降低业务的技术风险,让开发者可以更单纯地专注于自己的业务。面向端应用场景,云原生技术理念同样适用。
Gartner在2019年定义了一条全新的技术赛道:Multiexperience Development Platform(MXDP)[3],用以描述那些通过敏捷、现代化的技术能力帮助企业高效地实现Multiexperience的研发平台,其能力矩阵示意如下图:
从MXDP的关键元素构成我们可以看到,除了传统的研发工具类组件外,云原生技术成为了MXDP最核心的技术元素,其中的典型技术包括:
DevOps,驱动端应用的高速迭代
端应用对比传统后端有着典型的差异,以移动App为例,应用本身构建在异构的机型、OS平台之上,运行环境约束较多,依赖大量的后端服务支撑,应用本身的持续集成和交付过程也包含了许多移动场景特有的元素,比如编译环境、兼容测试、内测分发、渠道打包、灰度发布等,这些关键差异决定了端应用必须构建自己特有的DevOps体系。
研发域:面向端应用的DevOps平台需要解决应用持续集成过程的组织协同和自动化。针对端应用的研发期,成熟的DevOps平台需具备:
- 面向多端的编译构建环境并实现自动化的软件更新;