全球化商家平台技术探索与演进

news2024/9/19 11:00:37

作者:马金金 阿里全球化业务平台团队

全球化业务高速发展给平台技术带来了极大的挑战。如何差异化支撑全局业务的高效迭代?如何轻量化支撑创新业务的快速建站?本文将聚焦全球化商家平台技术架构演进,为大家分享背后的技术思考。

一、背景介绍

2022年初阿里巴巴集团明确了三大战略:消费、云计算和全球化,这三大战略将作为阿里巴巴面向未来坚定不移的方向和指引。

围绕全球化战略,阿里巴巴在99年成立之初就开启了ToB模式的全球化业务Alibaba.com,09年上线ToC模式的AliExpress,16年提出“接下来的20年,阿里巴巴集团要服务20亿消费者、创造1亿就业机会,帮助1000万家中小企业盈利”,公司陆续收购Lazada、Daraz和Trendyol等海外电商公司。2016年阿里巴巴的全球化商业布局初步形成,整体业务板块和商业覆盖如下图所示。

全球化业务高速发展给平台技术带来了极大的挑战:如何差异化支撑全局业务的高效迭代和如何轻量化支撑创新业务的快速建站,成为全球化各个核心平台必须回答的命题。结合全球化商家产品的特性以及前台和中台的组织协同方式,本文内容聚焦在全球化商家平台技术架构的演进以及背后的技术思考。

二、探索与演进

2.1 商家平台定位思考

2018年阿里巴巴宣布全面启动中台战略,构建符合DT时代的更创新更灵活的“大中台、小前台”组织机制和业务机制。阿里巴巴中台战略主要来源两方面的启发,北欧游戏公司Supercell超高人均产值背后的组织设计以及美军特种部队小前台加航母舰群大中台的协同方式。所以,从技术视角中台核心需要提升迭代效率和降低创新成本,让商业创新更高效更简单。

大型电商系统可以抽象为买方(用户)系统、卖方(商家)系统、平台运营(小二)系统、供应链系统和物流系统等,其中商家系统涉及商家在平台上所有的经营产品,同时产品能力包含Web版和App版,产品服务通过开放平台对外发布API被ISV三方合作伙伴集成,ISV通过ERP服务商家,共同提升商家的经营效率。

全球化背景下,从产品能力上会区分跨境商家和本对本商家,不同国家不同角色的商家产品存在差异。下图是全球化商家产品概要图,从图中可以推演出商家产品覆盖面广、产品服务的业务角色多、不同角色业务差异性大,再叠加多端多语言整个产品能力设计会非常复杂。

20年AliExpress、Lazada、Daraz和淘宝天猫海外等几个核心前台业务近80%的商家产品需求由商家平台技术负责研发和交付。当时商家平台研发人员在100人(前端/后端/测试)左右,维护应用总数在300+,月均交付300个左右的需求,整个团队研发交付吞吐率非常低。从研发态到部署态到运维态上下游协同职责不清晰,很多商家产品通过多分支多应用模式快速支撑业务差异化迭代,且存在新老应用共存,整体系统维护成本非常高。因为涉及全球5区域部署,数据同步和一致性等问题导致系统稳定性差,导致系统整体运维成本也非常高。从中台的定位看20年的商家平台更像是资源中台,在业务快速发展和技术历史债务双重压力下,研发团队负重匍匐前进。

以上问题作为研发的你是否似曾相识,脑海中是否有画面感,或者说当下是否依然在负重匍匐前进?所以在业务和组织快速发展背景下,结合产品形态和系统能力,如何提升研发效率?如何提升交付质量?如何提升协同效率?如何面向未来构建商家平台?

2.2 商家平台技术探索

结合中台的定位,中台首先是组织战略,然后是数据连通和能力沉淀助力业务快速迭代和创新,再者是面向未来储备核心能力和硬核技术。在三个不同方向上,业务在不同阶段推进的策略和节奏也不一样,全球化商家平台处在核心能力沉淀阶段。

结合上章节介绍的全球化商家产品概要图,下图是从技术视角抽象出全球化商家平台能力概要图。首先不同商业角色包括跨境商家、本对本商家、独立站商家、海内外ISV等;其次平台提供的经营工具基本覆盖商家经营整个生命周期,服务不同国家不同角色的商家产品从产品能力定义上基本类似,业务流程和产品形态会存在非常大的差异;最后是平台产品和基础服务相对标准和通用,沉淀在平台实现跨业务互通和复用。

商家平台在阿里巴巴集团没有参照建设标的,业务中台主要面向消费者侧类似交易平台、营销平台等。结合商家业务特性对比下交易链路,从架构特性和产品差异分析。

  • 架构差异:交易域重流程,流程长节点多规则相对少;商家域重规则,流程短节点少规则相对多。

  • 产品差异:交易域面向用户,产品多变且生命周期较短;商家域面向商家,产品稳定且生命周期较长。

康威定律告诉我们:组织设计系统的架构受制于产生这些设计的组织的沟通结构,通俗讲就是产品必然是由组织沟通结构决定的。在有限的中台研发资源下,平台能力需要清晰定义和取舍。结合全球化商家产品的特性以及前台和中台的组织协同方式,如下图商家平台抽象和设计出三种架构模式,从中台视角三种架构模式将商家全链路产品划分为中台支撑前台的三种方式。

  • PaaS(Platform as a Service)模式,平台基础服务通过服务化的方式支撑业务,模型、流程和领域服务沉淀在平台;业务应用通过RPC服务调用平台能力;平台交付物是API服务和接口说明;平台研发负责整体系统部署和运维。PaaS模式的系统特性是领域稳定,技术策略是持续沉淀支撑业务升级。全球化商家平台能力概要图中的灰色部分,如商品中心、库存中心和店铺中心等。

  • CaaS(Container as a Service)模式,商家经营工具是业务集成平台模式,模型、流程和标准实现等沉淀在平台;业务应用通过镜像编排依赖平台镜像的方式集成平台能力;平台交付物是镜像包或轻容器;业务研发负责整体系统部署和运维。CaaS模式的系统特性是迭代频繁,技术策略是后置沉淀支撑创新业务。全球化商家平台能力概要图中的蓝色部分,如卖家入驻、视频管理、店铺装修和订单管理等。

  • SaaS(Software as a Service)模式,平台产品是通过产品化支撑业务,模型和流程等沉淀在平台;平台交付物是产品,中台直接为相关业务目标负责。平台研发负责整体系统部署和运维。SaaS模式的系统特性是产品标准,技术策略是平台沉淀支撑业务复用。全球化商家平台能力概要图中的绿色部分,如服务市场、开放平台和类目运营等。

基于三种架构模式的设计,从研发态、部署态和运维态分解出系统构建和研发协同的流程差异化定义。不同的架构模式,代码实现、代码构建和部署运维等都存在差异,且在协同上的权责也存在差异。

PaaS模式代码、部署和运维均由平台研发负责。平台负责定义模型、流程以及SPI扩展点,并通过SPI扩展模式完成业务差异的不同实现,不同业务的定制实现划分在不同的代码模块。打包时通过Maven Profile实现不同业务生成不同的Jar/Sar包,在代码编译阶段实现业务隔离。最后不同业务实现独立部署流水线和独立运维,在运维态实现物理隔离,解决大促封网冲突等问题,提升研发和运维效率。

CaaS模式代码是业务和平台相互独立,部署和运维均由业务研发负责。平台负责定义模型、流程以及SPI扩展点,业务研发通过SPI扩展模式完成业务差异的不同实现,不同业务的定制实现划分在不同的代码仓库。业务和平台分别构建各自镜像包,业务研发在发布时选择合适的平台镜像包版本,通过镜像编排启动业务容器。最后不同业务实现独立部署流水线和独立运维,在运维态实现物理隔离。CaaS模式最大程度降低业务对平台的协同依赖,业务研发自主研发率高,业务研发迭代效率提升显著。其中平台针对扩展点会沉淀一套标准实现,核心解决未来创新业务快速新建站诉求。

SaaS模式与PaaS模式类似,代码、部署和运维均由平台研发负责。平台负责定义模型、流程以及SPI扩展点,并通过SPI扩展模式完成业务差异的不同实现,不同业务的定制实现划分在不同的代码模块。打包时通过Maven Profile实现不同业务生成不同的Jar/Sar包,在代码编译阶段实现业务隔离,不同业务实现独立部署流水线和独立运维。类似CaaS模式,平台针对扩展点会沉淀一套标准实现,上图中C业务没有定制,可默认使用平台标准版本即可。

围绕三种架构模式的长期技术目标牵引,PaaS主要围绕稳定(大促保障4个9)和高效扩展(需求交付<10天);CaaS主要围绕开放(业务自主研发率>95%)和快速建站(创新业务快速0-1建站);SaaS主要围绕体验(产品体验PSAT>130)和标准复用(80%产品能力跨业务复用)。当然不同模式在业务不同阶段技术目标可能存在差异,体验、效率、稳定和成本可以作为平台技术持续追求和突破的目标。

商家门户除开放平台外还有Web版和App版,下图是商家平台多端开放架构标准,目的是通过架构标准规范二方和三方的垂直产品体验,做到Web和App端商家统一体验。其中DADA研发工作台是全球化业务平台自研的前端低代码搭建平台。

以上阐述了全球化商家平台服务业务的三种架构规范,针对不同产品特性和平台能力,从研发态、部署态和运维态定义出不同的系统构建和研发协同流程。从技术演进视角看CaaS模式的业务能力增强和丰富完全依赖后置沉淀,业务快速发展背景下如何保证业务和平台协同高效且平台层可以持续沉淀面向未来的业务能力,架构挑战非常大。保持架构高度开放基础上,可持续沉淀业务能力是个长期探索的命题。

阿里巴巴业务平台前技术负责人玄难说过“中台不是外部消费者和入门级技术人员能直接感知到的,但业务中台才是真正制约整个商业发展速度的核心地带。业务中台如何能支撑几千种业务和几万人在同一时间进行变更,对业务抽象和系统架构的能力要求都是极高的。”同时中台的迭代和演进也依赖技术架构与组织架构的匹配程度,对于前后台研发高效协同是重要的必要条件。

中台作为商业发展速度的核心地带,一方面高效承接内部新老业务需求,另一方面在商业化上持续探索。平台先后孵化出面向东南亚本地商家OMS经营工具和中国跨境商家DTC建站产品,包括沉淀面向不同国家的合规解决方案等。中台在现有商业模式上持续沉淀商业化能力,面向未来创新场景也持续在挖掘和探索,全球化中台是阿里商业出海的重要保障和驱动。

三、总结与展望

最后,本文结合全球化商家业务特性和前后台组织协同方式,定义出商家平台服务业务的三种架构模式PaaS、CaaS和SaaS及开放标准,经过近半年的工程实践,PaaS基本实现需求交付<10天,CaaS达成业务自主研发率>95%实现业务研发高效闭环迭代,SaaS在体验优化和产品复用均取得确定性结果。

作为电商域面向商家和运营提供产品的技术体系建设,因为供给侧产品相对标准和稳定,所以前期需要有比较清晰的产品顶层设计,研发基于产品设计从业务架构视角定义出核心技术架构策略。当然,不论是前台还是中台,所有架构都会受限于康威定律,所以作为中台研发需要考虑在有限的研发资源下,制定出适合当前组织协同关系下的架构模式,清晰定义平台的能力边界和团队的权责。架构本质上就是一种平衡与取舍。

商家平台的三种架构模式未来会持续迭代和演进,如何让业务能力沉淀更标准和更丰富,并结合云原生让创新业务新建站更高效,还有非常多的协同机制及技术挑战需要进一步探索和克服。同时,中台沉淀了供给侧非常宝贵的数据资产,借助数智化能力商家运营和货品运营是未来商家平台建设和沉淀的核心方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Understanding LSTM Networks

文章目录Recurrent Neural NetworksThe Problem of Long-Term DependenciesLSTM NetworksThe Core Idea Behind LSTMs.Step-by-Step LSTM Walk Through本篇文章记述了自己对“Understanding LSTM Networks”的理解 Recurrent Neural Networks Humans don’t start their thin…

springmvc统一日志打印request和response内容

在web项目中&#xff0c;有不少场景需要统一处理一些和实际业务基本不相关的逻辑&#xff0c;比如rest接口的监控、出入参日志、操作记录、统一异常处理(避免将错误堆栈等信息直接打到web端)。如果你觉得日志打印rest接口出入参非常简单&#xff0c;直接getParameter()就好了&a…

Redis6学习笔记【part4】Jedis-API与手机验证码功能实现

1.连接 Jedis 第一步&#xff0c;修改 redis 的配置&#xff0c;以允许外网 ip 访问 redis。 在 redis.conf 中注释掉 bind 127.0.0.1 &#xff0c;并修改 protected-mode no 。 第二步&#xff0c;导入依赖。 <dependency><groupId>redis.clients</groupId…

Unity 进阶 之 资源文件夹下资源名的重名检查,并简单生产资源表的方法整理

Unity 进阶 之 资源文件夹下资源名的重名检查,并简单生产资源表的方法整理 目录 Unity 进阶 之 资源文件夹下资源名的重名检查,并简单生产资源表的方法整理 一、简单介绍 二、简单实现过程 三、关键代码 一、简单介绍 Unity中的一些知识点整理。 本节简单介绍在Unity开发…

python使用sentinelsat库下载sentinel影像数据

GIS遥感不分家&#xff0c;最近开始找一些影像的下载脚本了&#xff0c;这两天搞定了哨兵和modis的&#xff0c;分别贴一下 鉴于《Python中使用sentinelsat包自动下载Sentinel系列数据》这篇文章已经写得非常全乎&#xff0c;这里就简单补充一下&#xff0c;放个最简单的下载脚…

Vue CLI(Vue.js 开发的标准工具)

Vue CLI&#xff08;Vue.js 开发的标准工具&#xff09;参考描述Vue CLI获取检测项目创建项目Please pick a presetCheck the features needed for your projectChoose a version of Vue.jsPrefer placing configSave this as a preset for future projects?Save preset asFin…

[MRCTF2020]Ezaudit(随机数的安全)

目录 信息收集 代码审计 相关函数 前提知识 思路分析 补充知识 信息收集 查看源代码没有发现有用信息&#xff0c;尝试dirmap扫下目录 python3 dirmap.py -i 网址 -lcf 扫描时发现一个www.zip目录 下载到一份index.php文件&#xff0c;找到一个login.html <?php h…

docker安装pg数据库及pg数据库基本操作

一、首先准备pg数据库的docker镜像二、先创建一个文件作为pg数据库数据文件、配置文件等的外部挂载文件三、创建镜像docker run -it -d --name postgres14 --restartalways --privilegedtrue -p 5432:5432 -e POSTGRES_PASSWORDpostgres -v /home/fengyang/pg_data:/var/lib/po…

SpringBoot+VUE前后端分离项目学习笔记 - 【25 SpringBoot实现1对1、1对多、多对多关联查询】

新增课程Course页面&#xff0c;实现学生选课功能、课程教授老师选择等功能 1. 课程与授课老师是一对一关系 因为course表仅记录了teacherid&#xff0c;而页面需要的是老师的名字 select course.*,sys_user.id from course left join sys_user **on ** course.teacher_id sys…

第六章SpringFramework之声明事务

文章目录JdbcTemplate准备工作导入依赖创建jdbc.properties配置Spring的配置文件配置测试类的环境实例声明式事务概念先看看对应的编程式事务声明式事务通过一个案例了解声明式事务前提准备三层架构的构建模拟场景的情况添加事务Spring声明式事务的属性事务注解标识的位置事务属…

手把手教你学51单片机-点亮你的LED

单片机内部资源 Flash——程序存储空间。对于单片机来说 Flash 最大的意义是断电后数据 不丢失。 RAM——数据存储空间。RAM 是单片机的数据存储空间,用来存储程序运行过程中产生的和需要的数据,关电后数据丢失 SFR——特殊功能寄存器。通过对特殊工程寄存器读写操作,可以…

循环语句(循环结构)——“C”

各位CSDN的uu们好呀&#xff0c;我又来啦&#xff0c;今天&#xff0c;小雅兰给大家介绍的是一个知识点&#xff0c;就是循环语句啦&#xff0c;包括while循环、do-while循环、for循环&#xff0c;话不多说&#xff0c;让我们一起进入循环结构的世界吧 首先&#xff0c;我们先来…

利用Python暴力破解邻居家WiFi密码

如觉得博主文章写的不错或对你有所帮助的话&#xff0c;还望大家多多支持呀&#xff01;关注、点赞、收藏、评论。 文章目录一、编写代码二、展示测试结果三、测试四、生成密码本&#xff08;建议自己找一个密码本&#xff09;一、编写代码 在桌面新建一个文件 如果你新建的文…

如何实现everything的http外网访问

Everything是voidtools开发的一款文件搜索工具&#xff0c;官网描述为“基于名称快速定位文件和文件夹。”可以实现快速文件索引、快速搜索、最小资源使用、便于文件分享等功能。 everything部署本地后&#xff0c;可以开启配置Http访问功能&#xff0c;这样在局域网内就可以直…

【自用】Git日常开发教程

因为经常容易忘记指令&#xff08;年纪大了&#xff09;&#xff0c;所以打算记录一下将一堆文件从vscode上传到GitHub仓库 目录软件下载初始化状态过程可能出现的错误其他操作参考资料软件下载 https://gitforwindows.org/ https://code.visualstudio.com/ 初始化状态 过程 …

上海亚商投顾:两市缩量微涨,数字经济概念全线走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。市场情绪三大指数今日缩量震荡&#xff0c;黄白二线有所分化&#xff0c;题材概念表现活跃。数字经济概念全线走强&#xff0…

8、MariaDB11数据库安装初始化密码

MariaDB11安装 安装前准备 下载安装包 点我去MariaDB官网下载安装包 查看相关文档 Mariadb Server官方文档 使用zip安装 解压缩zip 将下载到的zip解压缩到想安装的位置。 生成data目录 打开cmd并进入到刚才解压后的bin目录&#xff0c; 执行mysql_install_db.exe程序生…

Flowable进阶学习(二)流程部署的深入解析

文章目录一、流程部署涉及表及其结构1. 部署流程代码示例&#xff1a;2. 流程部署所涉及表&#xff1a;3. 流程部署涉及表的结构、字段解析二、流程部署中数据的存储的过程一、流程部署涉及表及其结构 1. 部署流程代码示例&#xff1a; 设计俩个流程&#xff0c;并压缩成zip包…

项目引入多类数据源依赖,MyBatisPlus 是如何确定使用哪种数据源的?

背景 壬寅年腊月廿八&#xff0c;坚守在工作岗位。看了一下项目的 pom.xml 依赖&#xff0c;发现了好几个数据库连接相关的包&#xff0c;有 commons-dbcp2、c3p0、hikaricp、druid-spring-boot-starter&#xff0c;这可是四种不同的数据库连接池呢&#xff0c;一个项目中引入…

Github访问办法

GitHub GitHub是为开发者提供Git仓库的托管服务。这是一个让开发者与朋友、同事、同学及陌生人共享代码的完美场所。 GitHub除提供Git仓库的托管服务外&#xff0c;还为开发者或团队提供了一系列功能&#xff0c;帮助其高效率、高品质地进行代码编写。 GitHub的创始人之一Chr…