?

疯狂java

?
您现在的位置: 疯狂软件 >> 学生感言 >> 正文

一篇文章了解架构师的核心技能

学生:杨明浩   时间:2019-02-22 11:27:14  
       要想成为一名合格,甚至优秀的架构师,你至少需要懂得抓住架构师的核心技能,学会抓住架构设计的本质,这就是架构之道,比架构之术重要的多。
架构之道?
       我发现现在大家很难说清楚架构师的核心技能是什么,如何客观的来准确定义架构设计,什么样的架构师才是你学习和借鉴的方向,今天我来开启这个话题。
       首先,这里我把架构师这个职位划分为如下三类:
1 技术型架构师
       这一类大家接触到最多,大家的理解就是技术专家、技术大牛,解决公司的技术难题、架构设计,甚至都不需要了解业务。
2 业务型架构师
       精通业务但不一定懂技术,部分公司不一定有业务架构师这个title,也许是类似BD这样的称呼,但都需要精通业务。
       怎么来定义精通业务?
       具有典型的行业属性特征,比如是电子商业领域的专家、在线旅游的专家、零售行业的专家、医美行业的专家...,对某一行业有非常深入的了解,熟悉该行业的特征,熟悉业务流程,以及该行业面临的挑战等。
3 技术和业务结合型架构师?
       技术和业务的两者的集合,同时都需要精通,这样的人往往在公司我们统称为“首席架构师”
       我们工作中接触到大部分都是偏技术型的架构师,解决技术难题为主,以下我谈到的所谓“架构师”这个称谓,特指技术型架构师,技术专家。
架构师的核心技能
       架构师,一般公司相关的技术选型和架构设计由其来承:透涸,工作中遇到了搞不定的技术问题,或者公司遇见的技术瓶颈,找架构师解决。
       例如,10年前早期采用windows体系:windows、IIS、SQL-Sever、C# ,随着公司的发展,业务百倍、千倍的发展,流量越来越大,当流量超过一千多万时,面对性能和成本这些不可控的因素,进行了业务拆分和性能优化,但是依然解决不了问题,痛定思痛于是决定转型:将整个 windows 技术体系转向java 体系,对应的技术方案是什么,技术演变的关键点在哪里,以及在不影响业务为前提下,按照什么样的步骤来推进技术演变?
        这就会涉及到架构师的核心技能,如何设计一套高可用的架构来支撑千万、亿级的访问技能:
        目前我已知的几家大公司,正在经历.net到java的演变阵痛,懂得关键节点怎样演变的人在这个市场非常稀少。
        再例如淘宝最早期典型LAMP结构快速上线,随着业务的发展,很早就迁移到java体系,随着业务的爆炸性发展,业务从百万级到千万级再到亿级的用户发展,在java体系下如何一步步推进的技术架构演变:淘宝发展历程最具决定性的一次技术架构演变。
        再例如,随着业务的快速发展,需要更多用户设计场景:双11的挑战,秒杀系统,短期的时间涌入大量的用户都以亿级用户单位,技术怎样支撑这个业务场景,需要做哪些方面的技术储备?
        再例如当公司越来越依重与技术的时候,公司不能接受1个小时的宕机,甚至1分钟也接受不了的情况,这些技术挑战将都需要架构师去解决,这就是牵涉到一套可容灾的安全可靠的架构设计。
架构设计场景
        上海外滩的环球金融中心楼高492米,如果你想建造一座492米的高楼,这一定于平时我们建几楼、十几楼的打地基以及材料有完全不懂的方法,这里的地址和材质,以及对应的设计方法决定了之后你想建造楼房的高度。
同理,当你的网站需要承受千万、亿级的访问的时候,这就涉及到网站的基础设施需要怎样搭建才能支撑这样的高楼建设。 
        我们都说架构是演变而来的,但我想说的是不管架构怎样演变,但架构设计的本质和建筑设计的本质往往都是想通的。
?