`

架构组织形式的讨论,以及架构师之路的建议

阅读更多
架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享。
第二期:本篇文章是对于《来自滴滴、微博、魅族、唯品会、点评关于高可用架构的实践分享》的续接。
本期参与嘉宾:滴滴技术负责人彭令鹏、魅族系统架构师何伟、唯品会应用架构负责人张广平、新浪微博技术专家聂永、大众点评交易平台技术负责人陈一方、七牛云首席架构师李道兵。
本文是对此次交流的整理,欢迎探讨。

第二轮:话题交流
主持人:大家觉得是需要有统一的技术架构部门,还是不需要有统一技术架构部门,各个业务部门自己独立往前发展?

唯品会张广平:如果我们有一个通用的基础架构,这样开发的学习成本比较低,学习一套,然后他可以持续的开发。那如果有多套框架的话,对于开发人员学习成本比较高,另外就是运维的成本。其实任何一个系统,它不是一个独立存在的东西。要上线的话,还需要去做运维。简单举个例子,我们开发了一套日志监控的框架,叫 Mercury,这个框架看起来技术和现有的一些比较流行的东西差不多。比如说用kafka,之类的等等的一系列作业。如果要运维,需要几百台机器才能这套系统玩得起来。如果我们各用各的框架,对于公司来说成本非常高,运维上去以后,每个框架都要去建一个运维团队去运维。刚开始是有这个问题,开发的东西很难推出去,刚开发了基础组件出一点点问题,然后就被无限地放大,就没人用了。我刚提到那个重构,我们自己去招聘一个团队,也是因为我们的CTO支持,给了我们一个团队,让我们去把这个重构做起来。当我们核心的服务一点一点接进去,发现效果非常好,后面接入的团队越来越多。我们肯定也不能强行的去压,因为每个团队他们都有KPI。我们当时是采取渐进的方式,一个一个模块去接。

滴滴彭令鹏:我还是倾向于业务架构跟着业务技术部一起走。因为无论是从百度的经验,还是在滴滴的感觉来讲,我们肯定是需要一些最基础的架构,像消息队列、存储、计算这些,这个可以交给基础架构去做。但是做业务架构,我觉得还是要非常贴近业务,个人感觉,之前碰到过不少做基础架构的同学,他们做的架构其实和业务,比如说在延迟,或其他方面的一些需求,其实相差还是很大的,用起来不那么顺手。

魅族何伟:因为基础架构其实是大家都认可的,业务架构它一定是跟业务组的,因为业务的场景,比如原来技术架构开发MQ的框架,它的框架可能MQ正常,技术架构团队做出来的可能就是,消息的基本特征能发能接,业务要求是消息到达的时序,消息到达有延迟,它有时候就要求延迟,有时候这个消息必须在这个消息前面有持续的。像这种的话,架构团队是不了解的,还是要重新做。

滴滴彭令鹏:我觉得从整个团队来讲,可能在组建初期,这样做是可行的。但随着业务发展,团队肯定会去招一些新人,但新人其实他对业务会越来越不了解。而老人可能会逐渐偏向于做顶层设计,具体落地的时候,到最后新同学会实施的不好,那基本上满足不了业务需求。像百度网页搜索部和其他部门原来都是有自己的基础架构的,在2011年联合成立了一个专门的基础架构部,最开始业务部门和架构部门还愿意合作,但到2013年以后,基本上就不相往来了。

唯品会张广平:我们当时成立了一个架构评审委员会,我们在推的同时,也通过委员会去做一些强制要求,比如说每个项目我们都来做评审,如果你不用一些标准的东西,或者不按照一些比较好的方法去解决,我们就不让他上线。

七牛云七道兵:如果有基础架构,其实最担心的事情,就是基础架构的东西卖不出去,就是业务部门不买基础架构部门的账。如果是各自做的话,就比较担心效率问题。更多是一些企业前期与后期的策略。

大众点评陈一方:技术架构其实是跟组织架构走的,或者是跟业务架构走的。基础架构其实和组织架构相关的。

第三轮:架构师能力提升的建议
主持人:这里有三个问题,大家挑一个来发表自己的观点。
1、很多架构师都是从程序员转过来的,那么对于一个想成为架构师的程序员,你有什么好的建议?
2、不同架构师的在选型上会有不同的做法,有的偏保守,有的偏激进,你的观点是什么?为啥你会做这样的选择?
3、在做架构设计时,你最害怕什么情况?为什么?

滴滴彭令鹏:我选程序员转型。因为我做一线的工作挺多的。很重要的一点是,我们不能纯写代码,还要留充足地时间去思考和抽象。因为我发现很多一线工程师他干了五六年,换了一家公司,或在一家公司呆了很久总是在写类似的业务代码。如果没有思考,我觉得他的能力还是上不去。第二是我们做一些事情要打破边界,很多程序员会觉得,这东西不属于我的,我不去接触,或者说这个东西c++的,我不熟,我也不管等等,这样知识面较窄。第三做了架构师以后,还是要贴近业务。而且对于一个程序员转过来的架构师,需要注意的是不要纯看技术,更重要的是贴近业务去落地。第四我们做一个东西,比如做服务治理,你战略上可以很大,有一个理想目标在那里,但是具体落地的时候,你每一项战术要做的非常细,才有可能做成。整个是一个螺旋迭代的过程。

魅族何伟:我刚才还是第二个问题,其实前面都很认同,一个是基础打好,然后就是学习一些业界架构方面的经验。我补充一点,做程序员,你要找机会来锻炼自己,而不是给你安排什么,你就去做什么,而是要多思考,敢于跟别人PK。第二个问题架构选型,我觉得没有必然偏保守或者激进,这个没有绝对。关键业务,我是倾向于偏保守,毕竟是稳定第一,经过验证的东西,我才敢用在业务环境上。不太重要的一些业务,成长的新业务,可以去尝试一些新的技术,适当的做一些激进的尝试。

微博聂永:第一个问题,我认为不要在意是不是架构师,不要为架构而做架构,要结合实际,用心去思考,在思考的时候思维角度要全面一些,然后全身心就去投入所构建的系统中去,很自然的就能把技术做的很深。第二个问题,关于保守还是激进?其实我可能偏于保守型的,我们在做架构或系统的时候,针对外部依赖就要尽可能少依赖,因为你一旦添加了一项依赖,在后续实践过程中,每一个环节都有可能会出现问题,造成运维层面的难度增加。第三个问题,在做架构的时候,最害怕的问题就是你所引入的每一个所依赖组件,你没有认真的去深度理解,这样到后面出现问题的时候就很麻烦了。

唯品会张广平:我针对第二个问题。到底是偏保守还是激进,要看一些具体的场景。如果架构师参与到时间比较紧的项目,或者是关键的项目,这些项目做改动对生产环境影响比较大,这时候衡量方案一定要谨慎。到底应不应该去做一些改动,而且这些改动给我们带来的回报是什么。那么对于新的项目,类似于重构。如果只是在原地踏步,有可能得不到一些回报。所以我们需要去发挥主观能动性,比如说发挥一些抽象思维,对现有的系统做一些充分的调研,大胆提出一些自己的方案。当然这个方案需要跟各个团队去做一些互动,然后去验证。

大众点评陈一方:我其实是偏实用的,也不叫保守,也不叫激进。就像产品的理念一样,少就是美。现在一个系统都很复杂,如果每个人都采取不一样的策略,或者不一样的技术战,其实很难管理,这里是要求简单,大家尽量是统一的。然后这个模块和这个技术的引进来以后,是可维护的。还要对这个系统负责,谁引进来的,谁就要驾驭这个技术战。这个策略总体称为是偏实用的。还要做迭代,加工,调整都有可能的,没有一下子就能出一个非常好的系统出来,都是慢慢进入技术战往上加的。技术站的优劣,要根据自己的用户场景,经营的流量规模来选择,因为长期流量规模就决定了你这个系统会有多大的冲击,将来的瓶颈是什么。

七牛云李道兵:关于第一个问题,我觉得首先是提高眼界,其次是刻意练习。提高眼界主要是多看一些书,多参加一些会议,多了解一些新兴的思路,如何把这些思路融合到你现在的知识体系里边去。刻意练习主要是两块,如何解决问题和如何评估解决方案的优劣,比如看一个演讲,就尝试先只读问题部分,不看解决部分,自己尝试去解决这个问题,再跟演讲者提出的方案对比,评估一下优劣。
分享到:
评论

相关推荐

    UML和模式应用(架构师必备).part06.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    我的架构思想-基本模型理论与原则-周爱民-epub文字版-附带epub阅读软件

    我想在大多数人看来,这些更多地应该是属于架构师讨论的话题集,而非程序员。然而,到了现在你所读的这本《我的架构思想》中,却只剩下了“系统”这个讨论对象,那些基础构件已经全然不见了。这一切的根源又在哪里呢...

    UML和模式应用(架构师必备).part01.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part07.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part02.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part03.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part04.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part08.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    UML和模式应用(架构师必备).part05.rar

    第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...

    大数据的财务管理.doc

    " 如何建立大数据分析能力 想要在大数据竞争中处于领先地位,三个步骤不可 或缺:设定目标、建立分析能力以及围绕大数据策略组织企业架构以实现价值最大化.而 高质量的数据、先进的工具、精通数据的员工以及支持...

    大数据的财务管理(1).doc

    " 如何建立大数据分析能力 想要在大数据竞争中处于领先地位,三个步骤不可或缺:设定目标、建立分析能力 以及围绕大数据策略组织企业架构以实现价值最大化。而高质量的数据、先进的工具、 精通数据的员工以及支持...

    大数据的财务管理(2).doc

    " 如何建立大数据分析能力 想要在大数据竞争中处于领先地位,三个步骤不可或缺:设定目标、建立分析能力以 及围绕大数据策略组织企业架构以实现价值最大化.而高质量的数据、先进的工具、精通 数据的员工以及支持分析...

    《计算机网络基础》课程标准(1).doc

    理论部分是在学生掌握必备的网络基础知识基础上,再学习 局域网的规划、制作网线及测试分析网络连通性的基本技能,这部分内容主要由任课教 师通过典型案例分析及学生课堂讨论完成教学任务。采用"任务驱动法"、"计划...

Global site tag (gtag.js) - Google Analytics