我对技术架构的理解与架构师角色的思考

简介: 架构师一定要有技术的广度。大家一定要学会积累,积累到一定的程度以后,你会做到无师自通。

先自我介绍一下,我叫道延, 2014年进入阿里,在阿里通信呆了接近两年。2016年底到了业务平台,当时玄难找我的第一件事就是要解决大促的问题,第二件事就是解决安全生产的问题。

我带着这个命题进入业务平台,来做后续一系列的事。今天趁这个机会,和大家分享一下,关于这件事和这件事背后的一些想法,以及我对架构师的一些思考。

我对技术架构的理解

 

image.png

1.第一点就是顶层设计。国家每5年有五年计划,这其实就是在国家整个层面的一个非常清晰的顶层架构设计,这里面对国民经济重大建设项目和生产力进行宏观的架构设计,它也是一种架构设计。在这里面,要做什么事要定义的非常清楚,要达到什么样的结果也要定义的非常清楚。

双11的保障也是需要设计的。双11本身是一个业务的活动事件,因为规模比较大,所以需要很多的技术来支撑这个东西。技术里面我们可能要考虑低成本、高效率、高稳定,并且还要引入一些更多的新技术来支撑,也要把这些东西整合好,架构设计好,让它很润滑、很流畅地保证我们的业务。

2.第二大块是物理架构。大家在阿里可能都听说过,我们有一个比较有名的单元化架构,其实不光阿里有单元化架构,很多公司都有类似的架构。比如微信。阿里和他们的单元化架构其实有一些本质的区别。

阿里目前单元化架构达到一个什么目标呢?通过部署异地单元将生产流量完整运行在千里之外的独立机房,连续性的运行业务。这几句话里面包含了非常多的关键点,一个是异地,第二个是千里之外,第三个是独立,第四个是连续性。

单元化架构的总设计师是老毕,因为我们这块业务跟单元化的架构是非常相关的,所以要对它完成的掌握和吃透才能往下走。

3.第三大块是应用架构,目前我们中台里面做的比较多的叫星环,星环说白了,它想达到架构的本质目的就是将单纯的代码共建模式,抽象成横向和纵向的业务包模式,做到业务与业务隔离,业务与平台隔离。

这背后带来的问题是什么?我们原来产生用共建的方式支撑了50多个BU的会员、商品、交易、营销、资金、支付、库存逆向等等业务,其实每个里面都是遍地开花的if else。然后代码的合并也难,开发也难,测试也难,上线也难,整个过程都很痛苦。所以我们当时在2015年开始一直在做星环的架构,就是让这些东西不那么痛苦,慢慢的解决这个问题。当然了现在我们又用了新的痛苦点。

架构师的角色

关于架构师的角色,我来说说自己的想法。

 

image.png

1.第一个是形散而神不散。架构其实是每个应用线每个业务线都有。有些技术同学本身就是有架构师的这种角色。阿里很早以前是专门有架构师岗位,专门的去做架构,但是做着做着架构师就做没了。因为很不接地气,它没有解决具体、真实、实际的问题。但现在可能更多的看到了,其实很多平台很多应用里面都会有一些架构师的角色,他们是在抽象这些技术问题,解决这些问题。所以第一点是行散神不散。优秀的技术同学一直在用架构的意识,解决实际的技术和业务问题,这就跟普通的技术同学有本质的区别。他不光是解决这一个问题,他可能解决这一类问题,用架构的思想去解决问题。

2.第二块是前瞻性。为什么你能解决这个问题,并且能解决这一类问题?一定是你要看的多,你要想的多,这需要大量的实践和知识的积累,并且是站在过去的肩膀上。

阿里电商系统很早就开始建立了,我们这一代一代人在里面去做架构,都是站在前一代人的肩膀上。要去看前一代人为什么要这么设计,去想或跟他去聊,吸取他好的地方。现在可能遇到新的问题,通过其他的方法来解决一些新的问题,需要有实践和知识的积累。

接触更多的人和事,用新方法解决新问题。这个很关键。不能只看代码看一个月,要找真实的业务方,你的上游,你的下游,你的合作伙伴。比如说做双11,我是2016年12月份到业务平台,我花了整整三个月,跟每年双11的大队长、重要人去聊双11。他们是怎么理解,怎么来思考的,他们认为什么地方有问题。我再找他们要一些建议:我应该怎么去做。跟他们聊的过程中才知道我们需要做什么样大促,要把握什么是关键点,这都是一些宝贵的财富。

3.第三点是解决复杂问题。好的架构师都在解决复杂的问题。只有复杂的问题,它才需要更多不一样的技术或更新的技术彻底解决。高并发高可用是我们阿里电商面临的基本面问题,但是架构师要有不一样的高并发和高稳定性的解决思路。

当前最紧急的问题,比如说用户体验、提升效率、低成本。这些问题其实是非常复杂的。很多同学都想解决这个问题,很多种方法都在解决,但是整体来说效果不是特别明显。因为它链路太长了,链路长代表影响的业务和影响的人更多,你必须得换一种新的思路来考虑这个问题。同时用户分层,内部的技术人员增多,其实我们最终要化为一句话:要把解决复杂问题定义为架构师的一个典型角色。

架构师需要什么样的能力

架构师需要什么样的能力?我参考了很多外面一些同学的分享,总结出来其实就是发现问题、分析定义问题、解决问题。

 

image.png

  • 发现问题

对局部和全局的问题需要有发现的眼光,更应该有发现未发生问题的能力,哪些是需要治标,哪些需要治本,这个是发现问题的基本判断力。现在系统可能没什么大问题,但你要有发现的眼光,这些问题如果不解决,未来业务可能遇到更严重的问题。架构师看问题的眼光和别人不一样,不要只看见这一个问题,还要看见这个问题背后是什么,这一类问题背后是什么,我怎么能用抽象的方法解决一类问题。想好了以后,我就把当前的这个问题先解决掉,其他的问题用抽象的方式去解决它。

  • 定义和分析问题

阿里不缺解决问题的同学,但是缺定义问题的同学。你怎么知道这是个问题,并且把这个问题定义清楚。需要将发现的问题进行抽象和归纳,定义出问题的基本要素,同时定义出问题的短期和长期方案,推进技术整体的进步。

定义问题这个要求非常高。你们平时在解决业务技术问题的时候,也要去分析和定义问题的一些能力,把一个问题定义清楚了,可以真正的能推动业务往前进。

解决问题是制定问题的实施路径和解决方案,协同团队和上下游,推进问题的解决。架构要解决的问题一定不是一个局部问题,一定是一个全局问题。架构师一定会碰到各种各样的角色和链路,他要有这个能力去定义问题的解决方案和实施路径,同时要协同团队。他不能闷头做事,真的要抬头,并且是要有良好的沟通能力,跟所有的同学达成共识才能往前进。

第一点就是沟通能力非常关键。你怎么把这个问题说清楚,切中问题的点,同时也能帮助上下游带来实际的效果。第二点是架构需要能救火,但不仅仅是救眼前的火,应该救未来的火,架构师救火能力要很强。

我来阿里之前在做一个CRM的系统。刚开始前几年一直在做CRM系统的业务,后来我要解决很多业务的问题,要把它抽象出来,去做业务问题下面基础的平台。再后来发现基础平台的要解决更彻底,还要做下面的中间件。来阿里之前我做过业务,做过业务的开发平台,也做过开发平台下面的中间件。

从2017年到业务平台以后能学到系统它的链路是什么样的,数据链路是怎么样的,整个调用链路是怎么样的,它和底层的关系是什么样的,可能遇到什么样的问题了?现在可能出现这个问题,再往后运行是不是会出现其他的问题。通过救火的过程中积累对系统的了解。

也许我对当前系统也不是很清楚,但有很多以前技术的积累,现在的问题还是能非常快地解决掉,帮助团队解决当下问题的同时,也能让自己对全局有所了解。

架构师的挑战

 

image.png

  • 全局式的视角

比如看到一个会员,你不能仅仅只看到会员,你要看到会员上面的业务是什么,谁在用会员,这叫全局。同时,会员用的最多的是导购和交易,登录仅仅是会员本身一个很小的业务功能而已。基于会员,我们有导购有交易,把这些东西要串起来看明白,就能完整的认识到会员到底提供了什么,一定要有一个全局视角。

  • 技术广度

阿里的技术特别复杂,能入职到阿里来,把阿里的整个技术栈完整摸一遍的同学真的是很了不起。以单元化架构为例,我们可能需要了解端,有iOS、安卓端,有PC端,还要了解CDN、网络、接入层、服务发现、服务路由、HSF等的。数据库的储存同步、多点写,还有消息。这些东西其实平时同学们都在用,但架构师不仅在用,架构师真的是要去把玩,彻底了解透彻这些东西,这是关键点。

给大家举个例子,像数据库组成的强同步,对我们后续技术架构进和业务的改进都是有极大影响的。这个时候大家要对数据库有一个全局的认识。

2009年用Oracle数据库用的非常多。。我当时不是做数据库相关的,但是为了把Oracle数据库研究透,去学了非常多Oracle数据库相关的内容。了解里面的逻辑,知道它是什么开发态,是什么运行态,什么管理态,知识都是延续的,后来到了阿里,可能花很短的几个小时就能把现在阿里所有的数据库吃透。

技术的广度非常依赖于积累。你一定要带着问题去想,这个时候你才有记忆力、有了积累,慢慢的你技术的广度就会越来越深。你要了解数据库,你必须对下层的网络了解,所以我们要对网络,CDN可能要更进一步的认识。

2009年以后我花了两年时间学习网络,对交换机、路由器、骨干网、城域网,运营商怎么建网的,我们的IDC是怎么建网的,除了实践以外,已经基本了解了。大家每天都跟网络有交互,为什么重传高?为什么延时高,TCP/IP第4层的下面IP第3层是怎么操作的,IP下面的MAC层是怎么操作的,大家都要深入了解一下。

救火很多时候就考验你这个能力。我去救火时根本不会用现在那些平台化的工具,直接上手用TCP代码抓原始发文,马上能分析出很多问题。这就是平时的积累,慢慢的你就会对全局有认知。

2019年整个核心系统上云的时候,同样跟技术的广度有关系,我们上云发生了什么变化?整个底座到云上去了,计算、存储、网络全到云上去了,那要了解云啊。我2018年在阿里云注册了个账号,基本把阿里云的云产品全摸了一遍,这时就会对阿里云的网络、技术有本质的了解。

架构师一定要有技术的广度。大家一定要学会积累,积累到一定程度以后,你会做到无师自通。比如你了解网络、数据库,然后你又了解了磁盘30%,当这些知识逐渐成体系了,你是有能力去消化和打通不同技术点背后的相关性,对于你的个人能力的提升和认知层面的提升有巨大的帮助。

  • 持续的学习

每时每刻都在发生技术的升级和变革,只有持续不断的学习,才能对老的架构有新的认识,对于老的问题产生新的解法,要了解业界最近在发生什么变化,这个领域最关键的项目和人在做什么,学习他们的技术,学习他们的论文。我以前每天大概2到3个小时是用来学习。这几个小时的学习时间是我最放松的时间,不用去想太多事。

学习也不是说去瞎学,一定要有体系化的。首先跟你工作相关的,要体系化的去学习,从最下到最上体系化的去学习,学习完了以后你会有新的不一样的认识。把你的想法可以向你的团队说出来,向你的主管说出来。

还有就是要去看论文。跟数据相关的,OLTP和OLAP都有非常好的论文。看了论文以后再看其他人对论文的理解。一定要去看一些比较好的东西,跟工作相关的都可以去看,每天去学习。每天花2到3个小时去学习,三年以后你就知道自己跟别人完全不一样。有人说过:在一个行业你能付出1万个小时,你会跟别人形成本质的区别。但是在我们这个领域,1000个小时就形成差别。

  • 业务理解

这个一定要到实践中去,不是业务离不开架构,而是架构离不开业务,业务、架构、技术要三位一体才能达到最佳的效果。我们平时学习、实践的过程就在磨刀,但你不能说你天天在磨刀,总得要用这个刀。这就是跟业务结合起来,用不一样的思路解决实际的业务问题,会带来更低的成本、更高的效率。

  • 结果

要将技术的先进性转化为业务的先进性,忘掉屁股。这个“忘掉屁股”就是你做很多事情不是你一个人能搞定的,复杂、越大的事情是要协同更多的人。如果你就是为了你自己,比如说KPI去做事,我告诉你,这个事情做一次两次可以,但后面就没人跟你配合。你一定要忘掉屁股,才能慢慢的把这个事情做成,真正做到你想要的结果。

遇山开道、遇水架桥,这讲的是决心。很多时候问题确实很难解决,也需要协调更多的人。很多人可能会放弃。我们最近在做架构的升级,用国产化芯片,从底到上全链路的。如果有一方配合不到位,这事情就很难推进了。从 4 月份一直到 7 月底被阻碍了两次,第三次如果再没办法开展下去,这个事情就彻底的结束了。我们当时把整个团队召集到一起,互相打气:一定要干成。遇山开道、遇水架桥,有什么问题抛出来,大家一起来解决,要有决心,更要果断。

作者:中间件小哥

原文链接

本文为阿里云原创内容,未经允许不得转载

 

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

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

相关文章

2018年计算机CPU纳米制程,联发科疯狂堆核计划曝光:7纳米制程,12核CPU

【PConline 资讯】联发科疯狂堆核的脚步并未停歇,在商用量产10纳米十核处理器——Helio X30之后,联发科瞄准了更先进的制程、更密集的CPU核心。据台湾电子时报(DIGITIMES)消息,联发科将首次集成12核CPU,预计第二季度由台积电的7纳…

佳能hdr_烧设备无止境不代表随时败家,佳能EOS 5D4“闲鱼”翻身取代200D

2019年最后一天马上翻篇,想过去看今朝我此起彼伏。待到明年赏花浪漫时,我希望我会笑得更开心一点。今天跟大伙说说刚从闲鱼入手的5D4。烧设备可以,烧相机要出人命,看大佬们三天两头往家里败镜头,我的荷包可撑不住。第一…

浅谈数据中台安全体系构建思路

作者:王振东来源:绿盟科技 战略规划部 摘要数据中台是大数据业务体系数据规约化建设的核心场景,数据中台既搭建大量数据归集的相关设施,又针对数据开展大量治理、运维、分析、加工、共享、开放等交互事务,数据暴露面、…

滴滴 Flink-1.10 升级之路

简介: 滴滴实时计算引擎从 Flink-1.4 无缝升级到 Flink-1.10 版本,做到了完全对用户透明。并且在新版本的指标、调度、SQL 引擎等进行了一些优化,在性能和易用性上相较旧版本都有很大提升。 一、 背景 在本次升级之前,我们使用的…

苹果新算法已混进 iOS 14.3!CSAM 检测技术再遭网友争议

整理 | 禾木木出品 | CSDN云计算(ID:CSDNcloud)苹果宣布即将推出 CSAM 检测系统时,遭到了 4000 多个组织及个人的公开反对,他们质疑苹果会破坏用户隐私和端到端加密机制。一位 Reddit 用户发现 CSAM 算法竟已被悄悄地隐…

数字化时代,阿里云云效如何构建下一代研发协作工具平台?

简介: 本次分享主要由四部分组成: 1、企业在成长过程中遇到的研发效能困境; 2、研发管理从信息化走向数字化的路径,以及背后的逻辑; 3、云原生和 AI 两项新技术在研发平台上的落地; 4、结合阿里巴巴自身案例…

珠海小学计算机比赛,欢聚一堂 共叙佳话 —— 参加珠海市中小学信息技术工作年会纪要...

欢聚一堂 共叙佳话——参加珠海市中小学信息技术工作年会纪要2012年12月22日,香洲区中小学信息技术工作室一行8人赴金湾一小,参加了珠海市教育学会中小学信息技术教学专业委员会组织的第三届年会,会议分为四项议程。一、近两年工作总结上午&a…

安谋科技发布新业务品牌“核芯动力”,先手布局智能计算产业

安谋科技(中国)有限公司(“安谋科技”)举行“创芯生,赋未来” 新业务品牌战略发布会,重磅发布“双轮驱动”战略以及新业务品牌“核芯动力”。新业务品牌的发布代表安谋科技引领智能计算产业发展趋势、推动计…

技术方案设计的方法论及案例分享

简介: 怎么去体现技术方案设计的深度是大家普遍关心的一个问题,这个问题不是个例问题,因此本文主要分享下作者个人的一些观点和看法。 怎么去体现技术方案设计的深度是大家普遍关心的一个问题,这个问题不是个例问题,因…

第四范式:现代存储架构下的系统优化实践

8月21日,白玉兰开源联合示说网主办的“开源大数据技术线上meetup”特邀约大数据领域的前沿技术专家,就大数据存储的关键技术、挑战和当前应用展开交流讨论,阵容强大、内容全面。第四范式体系架构科学家,高性能计算Team leader卢冕…

穿越疫情,阿里云3000万补贴助力中小企业寒冬突围

简介: 2021年,活下去,是所有中小企业的一致心愿。冬将尽,春将来。我们也都在迫切等待着百花齐放的春天到来,阿里云愿和广大中小企业一起守望相助,共待山河无恙,春暖花开! 简介&#…

KubeVela:标准化的云原生平台构建引擎

简介: 本文由“GO 开源说”第三期 KubeVela 直播内容修改整理而成,视频内容较长,本文内容有所删减和重构。 KubeVela 的背景 KubeVela 是一个基于 Go 语言开发的云原生平台级开源项目,这个项目是去年 11 月中旬正式发布的。虽然发…

漫画:什么是自动驾驶?

作者:小灰来源:程序员小灰什么是自动驾驶自动驾驶,也被称为无人驾驶,顾名思义,是指交通工具在没有人类操作的情况下,也能够完成环境的感知与导航,顺利到达目的地。从传统的手动驾驶到智能的自动…

一场关于动态化开发实践的技术探讨

简介: 开发团队在面临业务高并发需求时,如何对技术模型进行迭代升级? 在过去的一年中,经过跟支付宝移动端团队和广大开发者的交流和沟通,我们了解到大家在涉及到关于移动应用跨端开发的过程中遇到的一些问题&#xff0…

云效故障定位研究论文被ICSE 2021 SEIP track收录

近期,由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队,合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。本文针对大规模微服务系统…

CSDN 开学见面礼!3 周带你 Get 大厂工程师基础能力

暑假即将结束,金秋开学季来袭。别让年轻的自己虚度光阴,现在加入C友会,大厂CTO级别导师陪你加buff!10+场考前辅导,50个任务文档,600+分钟大咖讲解与答疑,3周带你掌握大厂…

迷雾世界无限号服务器,迷雾世界部分服务器互通公告_迷雾世界部分服务器3月31日数据互通详情分析_手心游戏...

迷雾世界部分服务器3月31日数据互通公告!迷雾世界亲爱的玩家:为了优化游戏体验,更好地提升组队、交互的互动体验,开发组在3.27 -3.30对所有玩家进行了关于数据互通的调查投票。结果显示,78%的玩家投票同意。因此&#…

一文读懂云上DevOps能力体系

简介: 阿里云ECS自动化运维套件架构师,深度拆解云上运维能力体系建设:自动化运维等级金字塔、自动化运维的进阶模式、DevOps的基础核心、云上标准化部署三大能力…… 序言 云计算行业已经有十多年的发展了,话题早已从“要不要上云…

mcem r语言代码_R语言阈值自回归模型(TAR)代码示例

原文链接:R语言时间序列TAR阈值模型分析​tecdat.cn阈值模型用于统计的几个不同区域,而不仅仅是时间序列。一般的想法是,当变量的值超过某个阈值时,过程可能表现不同。也就是说,当值大于阈值时,可以应用不同…

【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解🌏题目描述&a…