随着云计算、移动化、IoT、AI等技术概念地落地和持续发展,社会的数字化进程在不断加速。Gartner近期发布了新的企业应用架构方法论MASA(Mesh Application and Service Architechture,网格应用和服务架构),融合近5年流行的技术趋势,为广大企业信息化的供应商、开发者和企业用户定义了更广泛的企业数字化应用架构模型。
与阿里所定义的中台不同,MASA将企业应用拆解为上中下三层,在传统的后端业务能力基础之上,将企业前台,以及用于前后台链接的API网关层也涵盖了进来,通过网格化的架构实现企业的业务流程、员工、服务、内容、设备间的动态连接,以构建匹配现有技术形态和未来技术趋势的更敏捷、灵活、可扩展的应用架构。
伴随MASA,面向企业前台的Multiexperience( 多样化用户体验 )被Gartner明确提出并定义为2020年的十大技术趋势。Multiexperience期望利用多元化的前台技术(移动应用、Web、小程序、可穿戴设备等)全面升级企业面向终端客户的数字化触点,以终端客户为中心构建多元(体验多元化)而一体(架构一体化)的用户界面。Multiexperience与国内所流行的大前端概念不同,但他们背后恰恰有着相通的故事主线。
大前端在国内还没有一个统一的定义,它更偏向一个相对纯粹的技术概念,意指面向客户侧的端技术集合,它的出现始于客户端Native与Web两大技术栈的不断融合,背后核心是跨平台技术在移动、PC、小程序、Web等场景下地不断发展和成熟。
大前端技术栈在Multiexperience这样的业务需求背景下不断磨砺,同时又反向支撑业务不断扩展其面向终端客户的数字化触点的场景和范围。技术拓展商业边界,商业驱动技术变革。面向全端场景,提供无缝的、一致的数字用户旅程是Multiexperience和大前端一脉相通的用户理念。
如今,面向全新的业务架构范式,如何加速新时代下多元化的端应用研发,为业务提供更敏捷而高效地交付呢?云原生技术是最佳选项。
很多人有疑惑,云原生与端侧的研发有什么关系,云原生不是一个后端技术域的概念么?其实不然。云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、敏捷地构建和管理一款弹性的应用。它的关键理念包括:
云原生的研发模型旨在降低业务的技术风险,让开发者可以更单纯地专注于自己的业务。面向端应用场景,云原生技术理念同样适用。
Gartner在2019年定义了一条全新的技术赛道:Multiexperience Development Platform(MXDP),用以描述那些通过敏捷、现代化的技术能力帮助企业高效地实现Multiexperience的研发平台,其能力矩阵示意如下图:
从MXDP的关键元素构成我们可以看到,除了传统的研发工具类组件外,云原生技术成为了MXDP最核心的技术元素,其中的典型技术包括:
DevOps,驱动端应用的高速迭代
端应用对比传统后端有着典型的差异,以移动App为例,应用本身构建在异构的机型、OS平台之上,运行环境约束较多,依赖大量的后端服务支撑,应用本身的持续集成和交付过程也包含了许多移动场景特有的元素,比如编译环境、兼容测试、内测分发、渠道打包、灰度发布等,这些关键差异决定了端应用必须构建自己特有的DevOps体系。
研发域:面向端应用的DevOps平台需要解决应用持续集成过程的组织协同和自动化。针对端应用的研发期,成熟的DevOps平台需具备:
测试域:端应用的测试较传统后端应用复杂度大幅提升,除了基础的功能、性能测试外,还需要有面向异构机型、终端、操作系统的兼容性测试,成熟的端应用测试平台应具备:
发布域:端应用的目标发布对象是海量的终端设备,生产发布受应用市场审核限制,因此,可靠、精准、定向的应用分发能力是应用生产分发的关键技术要求,包括:
运维域:面向端应用的运维体系应始终围绕问题的感知,问题的定位,问题的修复展开,在传统的Metrics,Tracing,Logging基础之上,我们特别强调面向端的Hotfix的能力,这是区别于后端应用形态的特殊之处。成熟的端运维体系应包含:
运营域:端应用作为企业业务入口,是企业面向终端用户的关键界面,必须时刻洞察用户的行为、倾听用户的声音,驱动业务的敏捷迭代。面向App的数据分析以及舆情反馈能力是DevOps的关键闭环之一。
数据分析应具备:
舆情反馈应具备:
DevOps为Multiexperience的生产实践带来的关键价值包括:
Serverless & Backend as a Service(BaaS),端应用的运行引擎
Serverless是当下开发者社区最火爆的话题之一,其核心理念即去服务器化:把底层云计算的基础能力进行高维抽象,以API/SDK的方式开放后端能力的访问和获取,无需开发人员配置和部署服务器资源即可获得弹性伸缩、按量付费的后端服务支持。Serverless的技术理念其实在数年前就已出现:后端即服务(Backend as a Service,BaaS)是典型的遵循Serverless设计理念的服务形态,早在2012年BaaS便在开发者社区中传播并因其便捷的使用模型而深受开发者喜爱。比较典型的BaaS服务包括消息推送、用户认证、云存储、云数据库等。
由于BaaS服务大幅削减了企业在后端研发力量上的开销,其在端应用场景得到了大范围地应用。但BaaS核心解决的主要是垂直场景化的后端能力抽象,并没法支撑业务本身的后端逻辑部分。Function as a Service(Faas)的出现弥补了这一空缺,并使得Serverless的架构范式能够面向端应用场景提供更加完整的闭环。
FaaS是一种软件构建和部署的新方式,基于事件驱动模型,以函数粒度为开发者提供业务代码的托管环境。这种架构模型在数据处理、Backend for Frontend、移动应用、IoT应用和Web应用等场景有较常见的应用空间。
综上我们可以看到,面向应用的Serverless架构包含了BaaS和FaaS两种服务形态,为了完整地支撑端应用的场景需求,成熟的Serverless引擎应包括:
Serverless架构及服务带来的核心价值体现在三个方面:
低代码,应用研发形态的新变革
云原生技术的出现使得传统业务架构大规模地向云架构转型,软件开发效率在这个阶段也得到了明显地提升。然而数字化时代,各种应用场景地涌现,业务对IT面向市场的响应即时性也提出了更高的要求。在跨时代的技术演进浪潮中,Low-code Development Platform(低代码平台)[6]快速浮出水面,并伴随多样化的端应用场景开始加速普及。低代码技术为软件研发效率带来的不仅仅是提升,更是变革。
对比传统的基于手工编码方式构建应用的模型,低代码平台提供给开发者基于GUI的软件编辑环境,并结合云原生基础设施帮助开发者快速完成应用的搭建。同时,这样的研发模型使得软件研发对软件开发者的技能要求门槛大幅降低,更多的具备一定IT基础概念的人群可以参与到软件开发中,而云原生架构则天然地帮助开发者解决了软件本身的部署、运维等工作。
成熟的低代码平台将广泛应用于企业的生产、营销、BPM、工具应用等场景,其核心能力主要由两部分组成:
• 支持包括UI可视化编排、业务流编排、逻辑编排、数据编排等能力;
• 支持组件、模块、模板等模型,有开放化的物料系统和组件市场;
• 模型驱动,搭配元数据解析引擎(包括多端转译引擎/渲染引擎等);
• 代码生成引擎
• 云原生应用托管
• CI/CD
• 丰富的集成与扩展能力
我们可以从施耐德电气与顶级低代码平台公司Outsystems的合作中看到低代码带来的价值:施耐德电气在应用低代码平台后,在短短20个月的时间内快速上线了60款App,其中绝大多数App在10周内完成开发和上线,第一年节省的人工成本达到650人天。低代码技术大幅缩短了传统企业数字化转型的路径。
至2024年,Gartner预计所有应用程序开发活动当中的65%将通过低代码的方式完成,似乎比想象的更快一些,但它确实在持续地发生。在全球市场,我们能够看到OutSystems、Mendix、PowerApps、App Maker快速的成长脚步,未来结合AI与机器学习,我们可以预见真正的“App工厂”的诞生。
作为国内移动互联网、云计算领域的行业巨擘,阿里巴巴在大前端、云原生领域有着丰富的实战经验。我们从2016年开始逐步将集团内部成熟的应用中间件云化输出,并在2018年推出了移动研发平台EMAS,如今,EMAS已经逐渐成长为横跨多端(移动App、H5应用、小程序、Web应用等)场景的云原生应用研发平台,基于广泛的云原生技术(Backend as a Service、Serverless、DevOps、低代码等),为企业、开发者提供一站式的应用研发管理服务,涵盖开发、测试、运维、运营等应用全生命周期。
截止到今天,伴随云计算的迅速普及和发展,我们已服务了15万以上的企业与开发者。
在海量的生产实践中,我们也看到了云原生技术在端应用场景下所面临的的关键挑战:
阿里云 云原生应用研发平台EMAS 杨镔(泠茗)
原文链接
本文为阿里云原创内容,未经允许不得转载。