笔者目前在互联网公司做基础架构/中间件开发工作,当前已经全面落地了微服务架构。落地过程中会遇到很多问题,有技术上,也有沟通协作上的。后续的文章中会一五一十会娓娓道来。这篇文章主要就是讲一讲我觉得的架构师是个什么角色,到底需要具备什么素质。也欢迎大家回复在你心中的架构师是怎么样的。
架构师分哪些领域
基础架构:处于IAAS、PAAS这层的基础平台服务。
技术架构:精通于开源/自研技术栈,像Kafka、Redis、MySQL。
数据架构:精通于数据建模、分析、安全性保证、数据治理。
应用架构:应用架构是战术,本质是系统的拆分,去平衡业务和技术复杂性。
业务架构:精通于行业解决方案,业务架构是战略。
架构师的画像
NB的代码能力:可以去编写系统中的核心代码。
全面:面对工作中的问题,需要有广阔的技术视野,利于选择出简单成熟的技术方案。
全局:做系统设计的时候,考虑的全面,上下游、高可用、性能、扩展性、安全性等。
权衡:全面、全局是思维打开的过程。权衡是收的过程,对技术方案的确定。考虑性价比、可持续发展、优先级、节奏控制。
抽象思维:架构有时候和小朋友搭积木的本质无差异,面的问题域和规模的不同,架构师需要在大脑中形成抽象概念。有了抽象概念之后是子模块的分解、实现、最后将子模块组合起来。
分层思维:可以认为是抽象思维的一种,把一个系统根据人员组织架构、可持续发展的角度去划分为不同层次。
分治思维:一个比较大的问题分解为若干个子问题,分解到子问题可以被解决。将子问题的解不断组合拼接起来最终得到问题的解。像分布式系统中就大量存在分、和。
演化思维:架构是被设计出来的,也是演化出来的。基本没有一个架构随着时间的推移、用户量的剧增会一成不变的。三分靠设计,七分靠演化。
架构师的角色
架构师在一定的程度上在做管理的工作。程序员关心的是某个事被完成的整个过程,架构师更关心的是资源协调、结果。从程序员往架构师方向发展,角色的认知上要去升级。
角色认知有如下方面,工作职责、负责对象、关注焦点、工作内容和能力要求、任务来源、实施手段、合作维度、合作关系、思维方式、技术视角。
优秀的架构师是程序员和项目管理的结合体。
结束语
后续的文章会讲架构、生活感悟、管理知识。让我们一起期待吧!
参考文章:
《架构师画像》