架构师是一个承前启后的岗位,正如一个路由器,对各种业务需求加以分析处理后路由到下游产品和研发团队。所以,对于业务的理解能力是必不可少的。7 月 12 日深圳架构师峰会上,邀请到了蘑菇街架构师陈辉老师来演讲架构师该如何提升自己的业务思维。以下是陈辉老师的回复整理。
目前,我的日常工作主要包括电商架构体系的规划和建设,结合对业务方向的变化以及存在的问题,打造一个能够稍稍跑在业务前面的架构。
传统电商架构向业务中台架构的演进工作,当前蘑菇街的业务结构不仅仅包括电商,还包括直播和 mogu 内容,需要对整体的技术架构做一些演进。
此外,也会重点去做基础平台的架构升级,架构逐步云原生化的工作筹备。平时还参与静态化服务器的开发,主要还是从部署架构上的变化带来成本优化。
做业务不是等着别人来找你,这就变成了做需求的了,业务思维很重要的一点就是要能主动出击。
不能一味的用业务的模式来解决问题,也不能固执的用技术思维来确定方案,两者需要做好平衡。
架构先行一定是需要有一定的业务前瞻性,虽然架构师都知道设计出高扩展性的架构,这个扩展性很大一部分体现在对业务的适配上。
大部分情况下很多开发或者架构师都会犯的错误就是过度设计,这个过度设计很多时候并不是没有业务思维,而是技术思维占据主导作用,用很技术的手段来思考业务问题。
案例:电商这边会有一个比较基础的系统称为库存中心,库存中心主要负责电商下单过程中的库存扣减和交易逆向流程回补工作。系统设计技术难点主要还是集中在防超卖上,类似《库存中心高并发实践》的文章在网上都能搜到。
当时在设计架构的时候,从技术思维上,蘑菇街花了更多的精力在怎么能达到更好的性能上,而没有好好结合业务发展的形态,只是幻想后期业务变化快,在扩展性上大做文章 。 可是一段时间后发现,其实系统能力超过了业务能力几倍,但是业务变化起来,系统要跟上业务节奏就会比较累。
在带基础平台之前,主要作为电商和基础平台的对接人,发现两边的开发其实会有非常大的差异。电商的开发总觉得中间件怎么那么难用,基础平台的开发总不理解业务到底在做什么。两边很多合作类的项目要开展,但是协作成本很大。在此过程中我明显的体会到,缺少业务思维的开发往往容易钻技术牛角尖,在沟通协作上,大家很难从公司的维度去达成一致,更多的会从技术的角度去聊问题,这样带来最大的问题就是方案到最后可能是技术最优雅,但从成本、长期收益等角度看,存在很多潜在问题。
架构师很大的一个工作就是要把自己的想法落地,除了技术上能让大家接受外,更多的其实是要能带着大家创造价值。 具备业务思维,可以更好的去权衡利弊,能够让沟通的维度更多,但方向更一致。
从个人经验来看,尤其是对于业务架构师来说,思维的培养需要经历这几个阶段:
一、心中有解决方案,架构师很大的一部分设计来源于之前经验和解决方案的积累,所以解决方案的积累阶段比较重要。这部分的建议,一方面在日常工作过程中, 一定不要只关注眼前做的那部分东西,要学会横向去看,去对比,对标行业的解决方案和思路; 另外可以多关注类似极客时间 App 的专栏,或者 QCon,ArchSummit 这样的大会,上面会有很多不错的思路可以借鉴,开阔眼界真的很重要。
二、对业务的理解和把握能力,一般参与到业务中会经历几个阶段: 理解分析业务、参与到业务中、对业务有前瞻性;
三、权衡技术思维和业务思维的阶段,这个阶段就需要实践来看什么样的场景下该偏重什么样的思维。说到权衡的维度,在蘑菇街业务背景下, 我的标准就是客户价值,比如,我的设计是否真的解决了客户的实际问题, 哪怕是一个偏平台类的系统设计,我也会从实际的客户价值上去判断,不能因为是平台型的就一定会很技术性。
四、经验之外的创新,架构设计不可能一味的用固有的体系, 如何权衡业务,如何带来创新,是这个阶段需要考虑的问题。
架构师业务思维如何推动公司转型?业务要变化,并不是今天说变,明天就直接变了。 业务的演变需要一个过程,技术要做的是怎么缩短这个等待的时间。这其中很关键的能力就是能不能提前做好技术布局? 比如 2016 年,蘑菇街和美丽说融合,以当时两家平台的体量,在一个月内完成从数据到系统的全部融合是个非常不可思议的项目,如果不是之前在系统上做了平台化的能力,相信这个项目就很难去落地。 电商系统的平台化应该也是发展到某个阶段需要去落地的实现,平台化的能力主要是让交易、商品等电商的核心链路可以支持多平台的正向、逆向流程,支持多平台业务的混合部署、隔离运行。 电商的发展还是能够看到一些预期和苗头的,所以技术上的提前布局,后期发展就水到渠成,容易很多。
业务稳定了,还需要调整、创新?对于这个问题,其实在整个架构升级和调整的过程中,蘑菇街也会做一些技术上的创新和试验。 比如蘑菇街会在局部尝试 Serverless 概念,以及 Cloud Native 开发。 并不是说完全适配业务、成本最低化、没有任何创新的架构就是最合适的,在考虑性价比的同时适当的做一些技术层面的尝试,来决定后续是否可以在这上面更深入进行。技术的创新很多时候可以带给业务更多的可能性,所以创新无止尽。
在阿里提出中台战略的很长一段时间里,我自己也一直在思考蘑菇街的技术架构应该怎么去演进,才能更好的适应大中台小前台这样的业务组织模式。随着蘑菇街业务的复杂度不断提升、业务不断多元化发展,也正在摸索自己的中台架构, 期望通过一种平台化的基础层来支持多渠道业务的扩展,建立核心的组件库来支持业务的复用,并通过轻量级的业务组装形态来完成业务的迭代。
首先是要走出去,和业务线的同学待在一起,和客户待在一起,了解他们在干什么,遇到什么困难,有什么解决思路?其次是,不仅仅是技术能力,对业务的理解要深入,对周边知识体系的了解都能决定对问题的看法,都可以影响做出来的设计,最关键是要有创新,要学会取巧,架构设计也能有创意,适合业务的才是最好的。
陈辉:2015 年加入蘑菇街。目前在蘑菇街负责基础技术平台(中间件、稳定性、效能工具、网关)和电商技术架构相关工作,主要职责是在业务方向下,明确技术规划和技术架构,并落地技术输出。曾负责或参与蘑菇街前后端技术架构升级、静态化改造、网关统一化、上云等横向性工作。
7 月深圳 ArchSummit 会议上( https://sz2019.archsummit.com/track?utm_source=web&utm_medium=infoq&utm_content=chenhui ),我会分享如何锻炼自己的业务思维,以及我自己过去的经验新心得,感兴趣的可以来现场交流。现在 8 折购票,可以联系票务灰灰 17326843116