【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

中台建设踩坑史,别说这些问题你不会遇到

刘诗遥

  • 2019-09-25
  • 本文字数:2765 字

    阅读完需:约 9 分钟

中台建设踩坑史,别说这些问题你不会遇到

“中台”是 2019 年技术圈的热词之一,从观望到试水,很多公司做出了从 0 到 1 的探索。本文采访了蘑菇街技术专家刘诗遥(花名英斗),主要分享了蘑菇街中台建设过程中的坑。他也将在 10 月 17~19 日召开的QCon上海2019分享蘑菇街中台转变之路的更多实践案例,敬请关注!

中台建设背景

在蘑菇街,平台技术团队一直是作为强有力的支撑力量在构建着蘑菇街技术中台,他们不仅维护了与云厂商交互的云适配层,也维护了蘑菇街的一些高效业务中间件。而电商、直播、内容三大业务部门也是各自支撑自己的业务内容,但是每个业务部门内的中台建设推动则是在 2019 年初。通过对业务发展趋势的理解,可以预判出技术未来的方向,在中台改造的过程中按照中台演变的方式来进行部门内人员的分工,提前为公司业务的调整做好了技术侧基础的搭建,改造进行的几个月后,公司的组织架构也如预判一样进行了相应的调整。基于这样变动的原因主要来自于以下的考虑:


  • 在年初的几个项目实施过程中,我们发现当项目涉及业务系统较多时,各系统在实现时仅考虑自己系统的实现部分设计;

  • 设计后的方案虽说在每个业务领域内合理,但是新项目的维护却十分困难;

  • 同时这些新实施的内容大多偏向于很多业务的组合,并不能很好的归属到某一个业务范畴;

  • 通过对业务的预判,我们认为公司会不断进行深入产业链的内容,类似的业务支持还会有很多,而且这些业务的维护周期可能很长、也可能仅有几天,而这些都和传统互联网架构产生冲突。


在做中台之前,一些业务需求的实现如果涉及多个业务领域系统的时候,各内容仅会对自己的业务维度进行思考,现在可以站在全局的维度上,了解需求的更合理设计方式,并且不断强化各业务自身的能力;而在现在,一些新业务的支持,仅需要将各业务领域系统的功能做简单组合即可完成。

中台建设战略

在蘑菇街中台的实现也是会区分技术中台和业务中台的;技术中台主要是由云适配层、业务中间件、直播公共技术等模块组成的,下面会针对这几方面展开说明:


  1. 云适配层:由于蘑菇街是借力云厂商的云化架构体系,所以云适配层在初期就是为了适配不同云厂商而建立的;但是在不断发展的过程中,我们逐渐发现云厂商在不同方面提供的能力各有强弱,而针对云厂商的灾备考虑等也使得云适配层在不断强化,逐步会演变成为适配混云架构的核心接入层。

  2. 业务中间件:在业务不断升级和转变的过程中,我们发现针对业务的支撑会有大量可抽象可复用的功能形态,而针对于这部分的功能又无法归属到业务的范畴之内,所以我们针对于这部分内容抽象出了业务中间件;而业务中间件的产生,也大大的提升了业务研发的效率,减少了很多重复功能和重复架构的负担,这也使得业务中间件逐步成为技术中台中的重要一员。

  3. 直播公共技术:在业务发展的过程中,直播业务的能力也在不断迭代和发展,我们发现直播的底层技术可进行充分的解耦,抽离出与业务相关较小的核心技术模块;借此契机,我们开始了针对于直播公共技术的剥离,进一步使得剥离后的部分成为可被其他业务复用的基础技术,从而达到通过这部分内容而为其他业务赋能的目的。


除了技术中台的组成外,业务中台的组成也可以总结为以下几部分:


  1. 商品、交易、促销等电商核心业务:整合了电商相关的核心功能,为其他业务变现提供电商的支撑。

  2. 内容核心业务:包含了内容相关的完整能力,可以快速为其他业务提供内容侧的相关功能,并支撑内容与其他业务的结合。

  3. 直播核心业务:包含了主播、机构等直播核心业务的核心技术,可为其他业务快速提供直播相关的核心数据和核心业务逻辑,能快速支撑业务的快速调整和业务交叉。

中台改造问题

在建设中台的过程中,还是产生了不少的问题的,而下面这些问题可能在很多公司建设时都可能遇到:


  • 在中台建设过程中,业务仍然需要快速迭代,所以就出现了改造和业务实现并行的问题

  • 这个问题应该比较常见,在一些改造与重构时也会遇到类似的问题,中台的建设无法在业务完全停止的情况下进行,这种情况就类似于一个常见的比喻,就是给飞行中的飞机换引擎;

  • 我们的解决方法就是梳理和分类业务领域内的系统功能,然后逐一进行中台维度抽离和改造,当日常业务需要这部分功能时,通过切换开关和流控的方式将外层对于功能的依赖,逐步转化为使用中台改造后的功能,类似通过一层网关来达到对于新旧内容的路由,而不影响外部业务的迭代。

  • 人员的变动也是中台建设过程中碰见的一个难题

  • 中台的改造是对核心技术部分进行修改和重新划分,那么人员的变动必然会让新接手的人员增加熟悉的工作,这个也是碰见的难题;

  • 但是,当我们发现熟悉的工作无法避免之后,我们开始进行人员的调整,让其他业务领域的人员来进行跨领域内容的熟悉,通过这样的方式,我们让各业务领域的人员都对全局有了更深入的了解;

  • 所以,通过跨领域人员的调动,来达到对不同业务领域内容的了解,可以让中台的改造向着更适合的方向前进。

中台提效案例

在蘑菇街,业务中间件作为技术中台的一部分,它的核心目的就是为了提升日常的研发效率,所以类似案例还是有很多的。在日常的业务研发过程中,我们发现各系统都有对较长生命周期的缓存需求,而每个系统都要自行研发一套针对于缓存的读取,和增量与全量 DUMP 的流程。鉴于这种需求的抽象,我们抽离出这套逻辑内容,研发出了蘑菇街现在在较多系统所使用 Zonda 中间件,通过简单的配置,就可以完成对此类似功能的实现,大大提升了日常业务研发的效率。更多案例分享,将会在QCon上海站的“业务中台化演进”专题中跟大家分享。

未来演进计划

蘑菇街中台的未来大概也会从技术中台和业务中台两方面来进行:


技术中台方面:


不断优化现有的业务中间件,抽离业务需求实现过程中的公共内容,不断为业务研发提升效率;


  1. 针对业务发展过程中的一些基础技术进行剥离,将例如直播的底层技术不断做强做厚,可以让直播技术与其他业务的结合提供更多的可能性;

  2. 混云架构的持续推进,实现基础设施部分在灾备方向上的可控。


业务中台方面:


  1. 业务中台建设首先要注重各业务领域系统的能力沉淀,不断提升中台层面上各业务领域系统可支持的能力,为之后业务的快速搭建或者业务的快速转型提供一个坚实的基础。

  2. 除此之外,业务方向上的预判能力也是业务中台演进计划上的考量之一,通过考虑业务的发展方向,预判未来业务所需要的能力,在业务中台建设的过程中,提前设计这些业务所需要的功能。

采访嘉宾介绍

刘诗遥,花名英斗,现任蘑菇街技术专家。曾就职于京东、支付宝等公司,2016 年加入蘑菇街。目前在蘑菇街负责电商技术相关业务架构工作,主要职责是在业务方向上,明确技术规划和业务技术架构,并完成相关技术方案的落地。曾负责推动蘑菇街大促等项目的进行,协调并完成技术中台内容与业务侧的深度结合等。


QCon上海2019的演讲中,刘诗遥将结合业务和技术两方面的视角,为你详解蘑菇街中台建设过程中的难点和变通之法,帮你避开中台设计过程中必踩的坑,点击了解详情


2019-09-25 08:002164

评论

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

2022年8月国产数据库大事记-墨天轮

墨天轮

数据库 opengauss 国产数据库 达梦 polarDB

软件测试 | 测试开发 | app自动化测试(Android)--显式等待机制

测吧(北京)科技有限公司

测试

国产操作系统应用小程序化:夯实技术底座,促进生态发展

Speedoooo

小程序 国产操作系统 小程序容器

北京哪家WEB前端培训机构比较不错

小谷哥

软件测试 | 测试开发 | 基于Requests与mitmproxy打造迷你接口测试框架

测吧(北京)科技有限公司

测试 Request

代码质量与安全 | 实践“边写边清理”,您需要做好这两件事:质量配置文件和质量门

龙智—DevSecOps解决方案

代码质量 代码安全 静态代码安全

硅谷名企、国内大厂是如何度量研发效能的?|ONES 研发管理大师课

万事ONES

我用 极狐 Gitlab issue 来点菜 #JIHULAB 101

朱亚光

JIHULAB 101

Serverless 架构下的 AI 应用开发:入门、实战与性能优化

阿里巴巴云原生

阿里云 Serverless 云原生

最后 3 天|报名参加 OpenYurt+EdgeX 挑战赛 ,冲击最高 5 万元奖励!

阿里巴巴云原生

阿里云 云原生 openyurt EdgeX

设计模式的艺术 第二十二章观察者设计模式练习(开发一款实时在线股票软件。该软件需要提供如下功能:当股票购买者所购买的某只股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统)

代廉洁

软件测试 | 测试开发 | 文未有福利 | 接口自动化你不懂?听HttpRunner的作者怎么说

测吧(北京)科技有限公司

测试 接口调试

GOPS现场 | 对话龙智技术顾问,分享DevOps观察与心得

龙智—DevSecOps解决方案

运维 DevOps工具链

LED屏幕有色差要怎么办?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务内容接口卡片接入指南

荣耀开发者服务平台

手机 激励 卡片服务 厂商 honor

在Java培训机构中怎么学习?

小谷哥

设备健康管理在石化行业的探索与实践

PreMaint

预测性维护 设备健康管理

数据变更白屏化利器-推送轨迹上线

阿里巴巴云原生

zookeeper 阿里云 开源 微服务 云原生

软件测试 | 测试开发 | 抓包分析 TCP 协议

测吧(北京)科技有限公司

TCP 抓包分析

牛客“基础-中级-高级”Java程序员面试八股文集结,熬夜挑灯刷

程序知音

Java java面试 后端技术 Java面试八股文 Java 面试题

版本管理 | 如何解决SVN的合并冲突与分支问题?

龙智—DevSecOps解决方案

svn 版本管理

2022最新BATJ等一线互联网大厂秋招面试题汇总,速刷

程序知音

Java 程序员面试 后端技术 Java面试题 Java面试八股文

Spring源码分析(九)lazy-init 在Spring中是怎么控制加载的

石臻臻的杂货铺

spring 9月月更

leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)

okokabcd

LeetCode 算法与数据结构

测试管理 | 龙智获得Xray专家认证

龙智—DevSecOps解决方案

Jira插件

CI/CD | 大型企业与开发团队如何进行持续集成与持续发布

龙智—DevSecOps解决方案

持续集成 CI/CD 持续发布

区块链NFT网站开发:NFT数字藏品网站开发

开源直播系统源码

NFT 数字藏品 数字藏品系统

软件测试 | 测试开发 | RPC接口测试技术-Tcp 协议的接口测试

测吧(北京)科技有限公司

软件测试 | 测试开发 | 接口管理工具YApi怎么用?颜值高、易管理、超好用

测吧(北京)科技有限公司

测试 Mock

软件测试 | 测试开发 | 一文搞懂测试左移和测试右移的 Why-How-What

测吧(北京)科技有限公司

测试 安全测试

软件测试 | 测试开发 | app自动化测试(Android)-- 特殊控件 T识别oast

测吧(北京)科技有限公司

自动化测试 Android;

中台建设踩坑史,别说这些问题你不会遇到_语言 & 开发_InfoQ精选文章