什么是架构师?

 

文章系网络转载,仅供学习参考使用。前端

什么是架构师?程序员

 

架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责“产品”宏观的架构设计。web

 

在一个团队里,架构师充当了技术Leader的角色,不只要完成项目的总体设计和规划,还要带领技术团队一块儿解决实际问题,攻克技术难点,使得软件的设计、开发、测试、发布流程得以顺利完成。sql

 

下面这张图,表达了一个应用架构师(技术Leader)在团队当中的角色:数据库

 


须要注意的是,这张图中的架构师只是应用架构师,因此运维和DBA人员没有纳入到他的管辖范围。同时,每一个公司的具体组织结构也不尽相同。后端

 

 

架构师都作些什么?缓存

 

 

 

1.架构设计安全

 

 

 

架构师,顾名思义,第一职责就是在软件设计阶段,作好软件“骨架”的设计。架构师须要把产品的需求翻译成软件工程的设计文档,肯定各个系统与模块的边界,评估系统的量级。服务器

 

 

 

2.技术选型网络

 

 

 

从前端到后端,从缓存到数据库,面对为数众多的第三方组件,架构师须要做出合理的选择。

 

 

 

前端页面选择模板引擎仍是动静分离?

 

服务端选择Java仍是Node.js?

 

服务治理选择DubboX仍是Spring Cloud?

 

消息队列选择RocketMQ仍是Kafka?

 

分布式缓存选择Redis Cluster 仍是 Codis?

 

数据库选择Mysql仍是Oracle?

 

全文检索选择Solr仍是ES?

 

技术没有绝对的好坏之分,关键看是否适用于公司的业务场景。

 

 

 

 

 

3.管理非功能性需求

 

 

 

知足需求是项目开发和架构设计的根本,而管理非功能性需求则是项目的升华。

 

 

 

在公司从0到1的创业阶段,开发者更关注的是功能性需求,每每一个简单粗暴的MVC项目就能够搞定一切。当业务量级逐渐增大,用户需求逐渐多样化,非功能性需求的重要性就逐渐显现。 

 

 

 

非功能性需求都包含哪些内容呢?

 

 

 

性能(响应时间) 

 

可扩展性(适应需求的快速变化)

 

可用性 (四个9,五个9,必要时的限流和降级)

 

安全性(防范各类恶意攻击,实现风控)

 

可监控(完善的监控和报警机制)

 

灵活性(便于非开发人员进行配置) 

 

可维护(持续集成,持续部署) 

 

国际化(冲出国门)

 

 

 

 

 

4.攻克技术难题

 

 

 

架构师不仅须要关注宏观的设计,也须要具备攻克技术细节的能力。在团队开发过程当中遇到难以实现和优化的技术问题时,架构师须要发挥技术优点,解决系统的疑难杂症。

 

 

 

 

 

5.技术人员的管理和指导

 

 

 

架构师不仅是一个技术大牛,也应该是一个好的管理者,在工做中须要把较大的项目和需求拆分一个个Story,依照每一个人的状况分配给研发团队的成员,而且在必要的时候进行技术上的培训指导。

架构师都有哪些种类?

 

1.应用架构师

 

应用架构师是行业中数量最多的架构师,主要负责公司产品的技术架构。产品架构师须要对业务有足够的理解,根据产品需求设计架构,在运营团队的协助下评估量级,并管理项目的整个生命周期。

 

 

2.中间件架构师

 

中间件架构师主要负责基础框架、公共组件,通用服务的搭建。好比分布式服务框架诸如Dubbo,HSF;好比消息队列诸如 RocketMQ,Kafka。在大型互联网公司中,每每不是把开源框架简单“拿来”,而是研发出符合自身业务的企业中间件。

 

 

3.基础设施架构师

 

基础设施架构师负责服务器资源、网络资源、数据库等基础设施的建设;以及持续集成工具、持续部署工具的搭建。

 

 

以上所说的三种,只是架构师最基本的分类。一些特殊领域也有着专门的架构师,好比网络安全架构师、大数据架构师等等。

 

怎样才能成为架构师?

 

 

 

 

 

1.技术的深度和广度

 

 

 

有一句话说得好,将军就是更优秀的士兵。架构师做为程序员中的将军,首先须要有足够的技术深度,同时须要普遍了解行业内的主流技术,以便更好地设计架构和技术选型。

 

 

 

2.业务的理解

 

 

 

抛开业务谈架构就是耍流氓。这一点对应用架构师来讲尤为重要。只有对业务有了充分的理解,才能对项目的设计和扩展作出合理的规划。

 

 

 

 

 

3.良好的沟通能力

 

 

 

架构师不仅是低头作技术,更须要协调指挥团队内的成员,也须要跨部门和产品、运营、项目经理等人员作及时有效的沟通,因此沟通能力是必不可少的。

相关文章
相关标签/搜索