如何提高软件开发的复用度是全世界的 IT 企业都面临的问题,但“中台”这个词目前却找不到任何对应的英文词汇,某种程度上来说,它具有一定的中国特色。最近半年,关于中台的讨论热度甚至达到了前所未有的程度。
往前追溯,中台思想是在 15 年马云带领阿里技术团队参观完游戏公司 Supercell 后提出。Supercell 的做法是将游戏开发过程中公共和通用的游戏素材和算法整合起来,为小团队提供工作的工具和框架,从而支持好几个小团队能够在短时间内开发出一款新的游戏,并鼓励员工充分试错。半年后,阿里宣布了组织架构的全面升级,全面启动中台战略,“中台”这个词因此大火。
国内让“中台”讨论热度达到沸点的是百度、腾讯等企业,他们针对实现“中台”做出的调整企业架构整合技术体系的举动:面向 ToB,建设“中台”。百度高级副总裁王海峰曾表示,百度于 2018 年 12 月份进行的组织架构调整中,将打造技术中台作为战略方向之一。
追看历史,大公司的管理层提出“中台”策略之目的是为了快速支撑和响应业务,而具体怎么去实现“中台”,更是没有统一的方法,需要结合公司自身的情况。
那这些“中台倡导者”是如何实现他们的中台的呢?百度搜索在阿拉丁的基础上构建了多个垂直领域的搜索产品,也扩展了更多的流量入口,包括小程序、独立站等,产品形态日趋复杂。为了满足多场景、多产品的高频创新需求,以低成本落地通用能力为目标,进行了平台升级,完成了垂直搜索产品技术中台的打造。
百度垂直行业 & 阿拉丁架构技术负责人张安站 在接受 InfoQ 采访时表示,利用百度的搜索中台孵化新的垂直搜索产品,从学习中台系统、开发、部署,到完成线上效果验证的全流程,所用的时间可以缩短到一个月内。
以下是张安站介绍其所在团队是如何通过技术实现各个业务的创新叠加,促进各个创新业务的快速可持续发展的解读。更多内容查看 7 月深圳ArchSummit全球架构师峰会演讲信息。
1. 如何看待中台与平台的关系
平台是提供特定的服务,平台一般有确定的接口和功能集合,业务可以按照规范使用平台;平台提供的是通用的、确定的服务,而不关注业务是如何使用的。在企业内部,平台是跨部门、跨体系共享技术的重要方式,降低了企业的技术研发成本,因此很多互联网企业采用了平台化战略。
中台在某个领域内提供了可定制的通用解决方案,通过可定制能力来满足细分领域的需求。一般来说,具备多场景的复杂领域都可以产生自己领域的中台,比如搜索、电商、推荐等,比如搜索中台可以为各个垂直搜索领域提供服务,业务可以基于搜索的通用能力和定制能力发展自己领域的搜索业务。
在架构分层上, 业务是构建在平台之上的; 而业务和中台则是共生关系,他们属于同一层,业务需要在中台定制自己业务的特殊逻辑,整个通路本质上都属于这个业务。
举例说明一下, 平台好比一个烤箱 + 一批调制好的食物(比如面包,蛋糕,这是平台对外的服务能力), 使用方只需要按照约定的接口或者平台操作,就可以获得到烤制好的食物。 中台好比一个烤箱 +一批基本调制好的食物,但是允许业务方进行定制(比如烤箱的火力大小, 食物中添加更多食材),甚至可以发明一些黑暗料理。中台以可定制的形式,给业务提供了灵活性, 而中台自身能力的集合,则节省了业务的创新成本。
2. 中台是否需要微服务化
技术中台支持的业务非常多,变更频率也非常高,这样就导致了如果不采用微服务化,那么各个业务不但开发阶段就要刻意的避免影响其他业务,要做非常全的回归测试,上线的时候也要排队,这个是更要命的。 很多业务关键模块每天都有 1 次以上的变更,那这样上线的协调、上线过程中的 check 都是一个复杂的工程了。此外还有容量管理,因为不同业务的流量来源不同、资源开销不同,导致容量管理会非常复杂,异常时候跨机房流量调度,稍有不慎可能会影响其他业务。其他潜在问题还有很多。
所以,微服务化是做好中台的必然选择。可以说,微服务化是我们中台技术体系的基础,我们的容量管理、资源审计、全流程的无人值守设计,都依赖各个核心模块的微服务化。此外,基于这些微服务,我们也低成本实现了这些业务的 SET 化部署,可以做到灵活的流量调度和容灾建设。
我们在离线对业务开放的定制模块,还实现了 serverless,serverless 对业务带来的是开发成本的极大节省。 目前离线的业务开发者,只需要写内容加工处理的函数即可;其他的复杂工作,都交由中台来完成。
3. 百度垂直搜索为什么要做中台,在做中台之前如果要支持新业务是什么样子的?
我们的中台,实际是从平台建设的基础上发展起来的。之前我们的产品形态相对确定,因此可以提供完善的平台化能力,来满足这些相对确定的需求;如果有新的需求,那么就直接在系统核心模块增加功能、扩展能力即可。
现在,我们不但深耕了更多的搜索结果,满足用户更完善的获取信息甚至服务的需求,也扩展了更多的流量入口,包括小程序、独立站等,随着产品思路的调整,产品形态日趋复杂,之前的平台化的思路就行不通了。原有系统核心模块无法满足业务多样性的扩展需求, 一些扩展成本非常高、上线和维护的风险特别大,使得之前的系统优势转换为了制约当前业务发展的缺陷。而转为中台战略,使得我们同时高效高质量的支持更多业务,成为可能。
4. 中台建设的思路是什么,对个人和团队的能力要求是否有变化?
我们中台的技术思路是:提供完备的通用能力、定制能力,持续完善领域技术沉淀能力。业务视角, 中台提供了灵活的可定制业务框架, 使得业务可以聚焦业务特有逻辑的开发;中台还提供了可以复用的业务组件, 使得业务可以通过配置化来复用优秀的中台能力; 中台还提供了完备的文档建设、视频教程, 支持业务快速上手、快速迭代, 同时还提供了面向全流程开发效能提升的完整自动化工具链。 我们系统架构图如下:
业务方最直接看到的是展现策略统一框架、在线排序统一框架、内容加工统一框架,以及可以通过框架配置化使用的丰富的业务组件;这些业务组件沉淀了大量的领域知识和经验,可以极大加速业务的创新和迭代。
在架构升级的背后,包含了个人和团队的能力矩阵的升级。 我们团队之前从事的偏基础架构的工作,关注的是架构的可用性、性能、成本等核心指标。团队转型到业务驱动后,使得团队除了继续承担架构的核心职责外,还要持续为业务交付可持续增长的技术方案,这对团队提出了更要的要求。
5. 中台是如何推动的,以及中台和前台是怎么协作的
我们充分考虑的业务落地/升级的成本。通用机制,我们尽量考虑的是无缝升级、透明升级。
当然,一些大的改进,部分功能是不可能做到完全的向前兼容的(或者说不像拖着沉重的历史包袱前行), 所以不可避免的会出现需要业务改动代码上线的情况, 在这种情况下,我们团队的业务专家就会发挥作用了,不单单是在设计之初就会考虑到落地成本、进行针对性的设计, 落地时也会参与到业务的具体升级方案的设计和人力预估对于一些关键升级,我们的组件有时候会提供更高抽象的 lite 版本,lite 版本损失了灵活性但是却提供了更强大的集成能力,从而使得业务可以更低成本升级。
简单来说,我们以低成本落地通用能力为目标,统合综效,与业务高度协同,实现升级的完整性。因为升级本身会带来业务的收益,在保证效率的前提下,前台还是非常配合的,中台技术落地普遍得到了业务的支持。
此外, 我们在完备了中台能力的基础上,正在推进全系统的内部开源,希望构建高效协同的开放生态,吸引更多的开发者,追求创造性协作,共建中台技术体系。
6. 是否有实际案例说明中台能提高前台研发效率?
首先给出我们已经做到的:月级别孵化新的垂直搜索产品,完成线上小流量;用不超过一个季度的精雕细琢,完成产品的全流量上线 。这个时间包含了业务从学习我们系统,进行开发,然后部署整套系统到生产环境,并完成线上效果验证的全流程;对于熟悉我们系统的同学,这个周期会更短。
我们怎么做到的?
除了我们建设的完备的技术能力(定制能力、通用能力、创新能力),还有在我们深刻理解业务的基础上,在这些技术能力之上的再次抽象: 我们提供了 3 层的能力输出。
L1: 接口形式获取垂直搜索的结构化数据,以方便业务在此基础的二次加工、新场景的快速试验
L2: 配置化能力,实现业务 0 code 即可上线。我们提供了完整的搜索通路能力。这对于业务的迭代效率非常关键;此外 PM 可以通过这个通路验证想法,从而辅助产品决策。
L3: 从离线到在线的可定制能力,以及完备的架构组件和策略插件。
这样不同业务的发展阶段,不同的角色都可以获得所需, 这是我们能够获得高效的一个根本的技术保障。
我们为了追求效率的卓越,还专门成立了研发效率团队,聚焦全流程、全周期的效率提升, 包括我们建设了在线的 debug 系统、离线的 trace 系统,都是帮助业务能够自助和高效的追 case、查问题;我们还建设了统一集成开发环境,实现开发环境和仿真环境的自动打通,实现低成本的产品效果验证, 这种例子还有很多。 最终我们为业务提供了卓越的研发效率。
我们提供的不仅仅是简单的生产工具和开发方式的升级,而是逐渐完善的技术体系,我们为业务带来的是生产力的升级,为业务带来了质变的研发效能提升。
7. 中台未来有何演进计划?
未来依然围绕技术中台的核心目标,进行不断的技术创新,来满足业务需求,促进业务可持续增长。一个是作为技术中台本身,需要密切关注业界技术发展的趋势,实现技术先行,通过技术发展来实现业务增长。一个从各个业务沉淀行业经验,来实现技术驱动的产品创新,来引领技术的发展。
总之,我们会通过持续的技术演进来不断完善中台能力集,以应对未来场景的千变万化,促进业务的可叠加创新,实现技术驱动增长。
受访嘉宾:张安站,百度垂直行业 & 阿拉丁架构技术负责人。2014 年加入百度后一直在大搜索从事架构和平台化相关的研发工作。目前主要负责大搜索垂直行业和阿拉丁的整体架构和研发中台,为众多业务提供了可定制和可复用的垂直搜索产品研发的中台技术体系,可在月级别孵化多场景的垂直搜索创新产品,善用技术思维解决效能问题,通过技术实现各个业务的创新叠加,促进各个创新业务的快速可持续发展。
评论