每一个技术人都有着一个架构师的梦,希望自己有朝一日能登上技术之巅,以下结合我自己13年的从业经验,分别从架构师进阶之路、架构师能力模型(这里是亮点)、架构师技能树、架构师业务技能树谈起,完整的剖析一个好的架构师的能力模型,希望这篇文章能让大家清晰的了解架构师的能力和要求,以及找到自己的不足,努力去提升自己缺乏的技能(不仅仅只是技术)。
本文作者,陈睿|mikechen,优知学院创始人,曾先后历任淘宝高级研发工程师、盛大高级架构师、百度技术经理、携程定制旅游CTO。

技术进阶之路

上图是一个完整的技术进阶之路,今天我们重点是谈架构师,我先从架构师进阶之路谈起,然后我们一步步往里讲,完整的剖析架构师能力模型。

架构师进阶之路

1 架构师胚胎(程序员)

工作年限1-3年左右,掌握程序相关的基础知识:语言编程开发、基本的数据结构、基本的算法掌握、对熟练使用常用的语言开发环境:java、c#、c++、go、groovy、php、python等相关的开发环境、基本的数据库知识(还到不了性能调优)、基础的设计模式(eg:工厂模式等 )、常用的通讯协议等。

2、架构师萌芽(高级程序员)

工作年限一般3-5年,如果你做研发超过了5年还是处于重复搬砖的节奏,还没有考虑代码效率以及避免重复造轮的情况,还不能算到高级。

这个阶段需要掌握的知识,比如:掌握更多的设计模式、操作系统原理、分布式系统原理、常见的性能调优方案:数据库端(事务超时、索引如何优化、高效sql等)、应用端、web端(静态分离怎么做)等、高并发基础场景..

3、架构师幼苗

工作超过5年,身经百战的同时,至少必须参与个一个次大型项目,你还不能完全操盘一个大项目的架构设计,但至少对整个架构设计整体有一定的了解,比如:单点登录、分布式缓存的场景、异步消息场景…典型的基础架构设计怎么实现。以及从理论的角度,透彻领会应用设计模式、JVM的原理、listener、filter等为什么要这样设计…了解技术的核心原理。

4、架构师

如果你经历了上述3个步骤阶段的项目操练,如果在这个阶段,你能独自带队操盘一个中型、大型项目的架构设计,并且从架构设计的角度:效率、可维护性、可扩展、容错…能胜任这个项目并且成功上线,这是一个标志性的架构师节点,独立胜任中、大型项目架构设计操盘手。

架构师再往上进阶,就会涉及到上图提到的技术总监以及CTO,如果有兴趣的同学可以参考我之前写的这篇文章一篇文章搞懂高级程序员、架构师、技术经理、技术总监、CTO,从薪资到技能要领的区别

备注:架构师并不只是技术进阶的终点,还可以继续往技术总监和CTO进阶。

架构师完整能力模型

架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案。

年薪百万的架构师,基本属于公司的首席架构师,需要包含两块能力,而不仅仅只是技术能力。

这两块能力分别包含:技术能力和业务能力。

架构师技术能力


分层的应用设计思想:SOA,事件驱动等。

分布式原理:CAP,最终一致性,幂等操作等

大型网络应用结构


消息中间件,分布式缓存,负载均衡,集群技术,数据同步等,详细请查看一篇文章了解架构设计的本质,文章里有详细的描述。

还有高可用,可容灾分布式系统设计能力

容灾系统,作为为计算机信息系统提供的一个能应付各种灾难的环境,尤其是计算机病毒、掉电、网络/通信失败、硬件/软件错误和人为操作错误等人为灾难时,容灾系统将保证用户数据的安全性(数据容灾),甚至,一个更加完善的容灾系统,还能提供不间断的应用服务(应用容灾)。可以说,容灾系统是数据存储备份的最高层次。

例如,淘宝在早期就遇到过机房停电的情况,所以才促使了后来的机房容灾的能力,保证服务稳定。尤其是当发生灾难性事件并对IDC节点产生影响时,能够具备节点级别的快速恢复能力,保障系统的持续可用。

去年携程也遇见了一次几乎一整天的宕机事故,后来发现是自动化部署的的脚本的问题,代码重新部署,重新执行脚本,不断把数据等等都删除,这也算是人为事故中的经典案例。

还有大容量数据存储和检索系统设计能力、数据库分区,NoSQL,搜索引擎、自动化部署、回滚机制等,以及监控系统等等,这些知识体系,敬请关注我后续的文章和课程。

架构师业务能力

技术架构的目的是为了服务好业务,技术离开了业务,就是空谈。所以,对于好的架构师来讲,需要对业务有本质的理解,技术再牛逼,解决不了业务的问题也是没用的。所以一定要站在业务的角度去了解他们的需求,它到底是要并发高还是流量高,还是要分布式,还是要高可用。

这就是业务分析能力

架构师需要学会基于自己的经验知识进行分析,把业务语言转换成产品语言、开发语言。这样在跟产品、研发团队的沟通中,才能完成信息的有效、高保真传递。当然,这就涉及到沟通能力,因为团队协作需要良好的沟通。

开启你的架构进阶之旅

总之,要想成为优秀的架构师,需要时间实践(提升技术能力),也需要不断的深入业务分析(提升业务能力),再加上自己的领悟能力(需要时间阅历),这才是一个有效的路径。

以上就是我对架构师完整能力模型的拆解,希望对你有所帮助:)

你可能也喜欢:

  1. 最全Java架构师技能图谱
  2. 史上最全java架构师技能图谱(上)
  3. 一篇文章搞懂架构师的核心技能
  4. 想成为阿里160万年薪的P8架构师?你必须掌握如下6大技能体系!
  5. 阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!
  6. 从Java程序员进阶到架构师,史上最全进阶详解(中篇)-架构扩展篇

一篇文章了解架构师能力模型相关推荐

  1. 做人、做事,做架构师——架构师能力模型解析

    引子 究竟是什么让你在同一个位置上--例如程序员或技术负责人--工作了三年.五年或者更久,而仍然得不到任何的发展空间?你觉得自己已成为技术圈中的大牛,并信心满满地去拿明天就要颁发的某某大奖,然而却仍然 ...

  2. 旧文重发:做人、做事,做架构师——架构师能力模型解析

    这篇文章发表于<程序员>2008.04期.其中有关模型图参见: http://blog.csdn.net/aimingoo/archive/2007/06/26/1667508.aspx ...

  3. 周爱民 - 架构师能力模型

    要想从一名普通程序员发展成为优秀的架构师,"个人特性"与"技术技能"缺一不可:而"技术专业能力"."人际关系能力"和&q ...

  4. 史上最强Java架构师的13大技术能力讲解! | 附架构师能力图谱

    从程序员进阶成为架构师,并非一蹴而就,需要系统化.阶段性地学习,在实战项目中融会贯通,这如同打怪通关,我们得一关一关突破,每攻破一个关口,就能得到更精良的装备,技能值也随之不断增长,直至大获全胜. 凡 ...

  5. 认知决定着架构师能力的上线——架构认知的三个层次

    架构认知的三个层次:行业视野.技术视野.工作视野.架构师能力的上线是什么?是你对业务本质的理解,因此,行业视野(包含公司)这是第一步.但与技术还有较大落地上的差据,技术要把业务需求转化成系统.这要具备 ...

  6. 一篇文章了解架构设计的本质

    " 大型网站的架构设计,涉及到的面非常多,并不像大家想象的那样,就是一个网站这么简单,今天抛砖引玉,希望大家正确看待架构设计. 什么是架构设计的本质? 任何系统,自然情况下,都是从有序到无序 ...

  7. linux架构师面试题,怎么判断web前端架构师能力高低,前端架构师面试题目

    综述:找到自己和架构师之间的距离 架构师是很多程序员梦寐以求的title,但是在我的成长过程中,看到了太多因为架构问题失败的项目.很多架构师其实还停留在应用技能会用的阶段,基础很差.一方面,可以从问基 ...

  8. 【SA系列】市场对解决方案架构师能力要求

    今天想对SA这个角色做个市场能力需求分析,先后对头部10家大型公司做了职位调研和分析,包括华为.阿里.百度.字节.京东科技.网易等等. 获得如下结论:市场对解决方案主要要求一共5点.包括解决方案实操力 ...

  9. java多线程 模型_一篇文章读懂Java多线程模型

    要真正了解Java的多线程,我们还要从进程和线程的概念说起 进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期 ...

最新文章

  1. ENAS加载自己的数据集之路
  2. linux 硬链接和软链接
  3. linux emule 编译 wx-config --libs,linux下编译wxwidgets所写程序所遇到的问题
  4. Luogu P1607 庙会班车【线段树】By cellur925
  5. JVM垃圾回收机制总结(3) :按代垃圾收集器
  6. Mask R-CNN详解和安装
  7. 显卡欺骗器状态检测及安装注意事项
  8. ArcGIS删除地图投影坐标,只保留地理坐标
  9. 程序员使用未经批准的软件时会怎么样?
  10. Python:命令安装pyQt5相关插件
  11. python xlwt_Python中xlwt解析
  12. 从零学计算机网络、TCP、IP、路由器、Vlan、HCIA-数通
  13. 暴力电脑锁机生成器(加机械硬盘锁)
  14. Bugku:Snowfall
  15. 2021-05-12 MongoDB面试题 什么情况下需要用到MongoDB的分片
  16. tp3调用微信jsjdk扫一扫接口,并实现微信扫一扫签到
  17. 阿里云安全管家使用教程
  18. Pycharm Setting Python Interpreter
  19. Android 获取指定图片或文件的大小
  20. 奥利给 之 【优学院自定义速度】

热门文章

  1. 将源字符串的前count个字符拷贝到目的字符串中strncpy()
  2. c/c++整理--c++面向对象(5)
  3. 从没想过会有一个这样的机会|大疆招聘
  4. 苦练IoT应用开发,还能加速变现,这个机会别错过
  5. printf 宏 调试技巧
  6. bind1nd\bind2nd
  7. 包与模块管理及面向对象初步
  8. LeetCode 5268. 找出两数组的不同(set)
  9. LeetCode 2169. 得到 0 的操作数
  10. LeetCode 2116. 判断一个括号字符串是否有效(栈)