架构的概念与架构师职责分类

凤舞凰扬 2009-12-28
     开篇第一帖,就让我们先来讨论架构师的职责与分类,也算是让大家对这样个title有比较清晰和一致的认识。
     首先说说我对于架构的认识与架构师职责分类吧,抛砖引玉,欢迎大家积极发言并讨论。
     架构师其实关键词便在架构一词了,而架构可以从google中搜索出一大堆看似精简却总感觉有些虚无的解释。我不想去粘贴这样的链接,只想从我直接的认识,以最直白的语言来解释。架构这个词其实来源于建筑学,最初的意思应该是建筑整体的设计、风格,包括了框架和结构。它被引入到软件领域,其实有些像汉语中常用的喻意。一个软件系统如同一个建筑,它的设计,风格,它的结构也就相当于建筑中的设计理念、风格与具体的框架结构。我们把这些也称为体系结构(这里的体系结构其实和大学学到的计算机体系结构是由相似之处的)。除此外,同时它还包括一种扩展的概念,也就是架构模式。其原因在于我们希望在软件系统的设计上能找到最高层次的软件复用。比如我们常听说的SOA(SCA)其实就是这样的一种架构理念。
     架构与其他几个关键概念的类似和区别:框架(Framework), 结构(Structure), 基础结构(Infrastructure)。准确来说,架构其实包括上述三个部分,只是在不同的时候有不同的侧重。框架现在用得最频繁的是指能够提供开发层次复用的程序骨架;结构主要是描述系统内部以及系统间的交互关系,比如说组件关系、比如说层次结构;而基础结构更多地是从系统基础环境角度,比如说部署结构,比如软件应用及配置等等。
      因为架构在概念层次涵盖其实是比较广的,所以很多时候,我们把它更加地细分,所以架构师在实际中又常见地分为以下几种:
平台架构师: 这里的平台其实包括两个平台,一个是系统平台,也就是负责搭建多个系统整合的系统应用平台;另外一个其实是基础平台,是专门负责搭建基础技术平台;两者其实区别蛮大,也经常容易被从业人员混乱。举个简单例子,金蝶有平台架构师一职,但是金蝶BOSS应用和金蝶中间件两者招聘的对象和技术要求是截然不同的。
应用架构师:其实应用架构也就是我们绝大多数人理解系统架构师,它主要是负责系统的开发框架及基本结构层次的建设。但是,对于这样一个职责,千万不要以为就是struts + spring + hibernate这样的组合,如果是那样,这架构师也未免太容易当了吧。一个好的系统架构是必须充分理解和融合相关业务应用的行业以及运营背景的。这个话题我们可以另外细谈。
业务架构师:业务架构其实已经开始脱离技术层面了,但是它要求架构师有跨越多系统的大局观,去整合和组织不同系统的技术平台与交互模式。其实这个职位的未来也就是CIO了。
网络架构师:过去,我们可能听的最多的是网络工程师。不错,一个优秀的网络架构师必须有足够的网络技术基底,并且它的关注点也是系统的基础架构。比如说如果搭建并优化集群环境,如果构建基于云计算的系统应用与部署等等。它对于像淘宝、腾讯这样的互联网公司是极其重要的。
      一个优秀的架构必须满足以下几个条件:1.必须充分融合并满足系统运行的环境特点(包括业务环境、硬件环境、网络环境等等)。2. 它能适用未来一段时间由于环境变化带来的扩展和改变。3.它所代表的架构思想可以成为被复用的模式,从而在相似的领域中获得复用。
      一个优秀的架构师也必须满足以下几个条件:1.充分认识系统所涉足环境的特点。2.有比较扎实和全面的技术功底,能够比较充分认识所应用技术的特点(包括优点、缺点)以及相关的应用场景。3.有自己比较鲜明的设计理念,并能将其优势充分融入系统的架构设计中。一般来说,有3年以上架构师经验(约>5年的研发经验)在绝大多数公司都是可以拿到15w-20w左右年薪的,有5年以上架构师经验(约>8年的研发经验),在好的公司也可以拿到20w-30w年薪的。
faye.feelcool 2010-02-25
虽有分类,但在很多时候对于应用软件开发的工作,往往需要比较综合的能力,才能架构好产品的。因为架构要与企业本身的技术及实力匹配,所以只有眼界开阔才能更加有效。
对于有好几类的架构师组成的架构团队,好像一般都有一个总架(权威或综合)。
个人的一点观点。
对于小点的公司,其实架构师=架构+详细设计+主力程序员+项目经理+技术经理。我想这里讨论的是一种比较单纯的角色吧?
凤舞凰扬 2010-03-23
  对于小点的公司,呵呵,架构师只是个称谓,说白了也就是项目中的一个主要技术攻关或者负责人
zhongdw 2010-04-06
教授开班,我来捧场~
zhongdw 2010-04-06
前一阵子在玩塔防类游戏,打的多了也就有点感悟:
不同的人玩塔防是有着很明确的特点的,有的重攻击,有的重防御,有的以数量取胜,有的攀科技以质量取胜.
结合自己的理解,和软件开发是有很多相似之处的~ 这个详细的可以有空吹吹~
但是有一点是很容易发现的,就是每个人都会有一个自己喜欢的模式和"阵法",在给定的时间内用给定的资源,可能最后都可以过关~但是不同的"阵法"会有相当大的差别.
每一关的难度都有不同,细细研究每一关,就会发现没有一个"阵法"是可以通用所有的关卡的,但是,每一个关卡缺都一个最合适的"阵法",但是这个"阵法"是不是最适合当前玩的这个人呢?又不一定.
这就很像我们在面对各各不同的项目的时候,因为每个项目独特的情况,我们要去找到最适合当前项目的"阵法",这个"阵法"的基础就是
引用
"必须充分理解和融合相关业务应用的行业以及运营背景"

呵呵~ 本人的眼界还是太浅,只是在应用架构师的层次上略有感悟而已,有所想有所发~见笑了~
ilove2009 2010-06-10
应用架构师\业务架构师  这两类我想在我们中小企业里是基本没有的,至少我参加工作到现在,也在大企业里做过,小企业做过也没见过有应用架构师为底层的开发人员写个业务框架。

写一个能满足业务需求的程序骨架(框架,非spring等),让其他人重用应该是比较有意思的事情。

应用架构师应该是程序员主要发展的方向,但我们实际开发中基本上没有人做。大家根据自己被安排的任务各自完成自己的开发任务。没有人从业务上整体规划和设计。

bennyparlo 2011-04-19
非常同意楼主的观点
另外想成为最尖端的架构师,那么他的要求=平台架构师+应用架构师+业务架构师+网络架构师所需要具备的基本要求。
此外想要成为最尖端的架构师,他还需要具备特有的人格魅力以及表达能力,需要具备领导能力以及决策力,同样还需要上知天文下知地理的渊博知识面
wangbin579 2011-04-22
待遇比上面所说的高多了
凤舞凰扬 2011-04-23
wangbin579 写道
待遇比上面所说的高多了

   呵呵,薪酬只能从整体来看,不好说的。高端的顶级的自然相当高了
ltian 2011-07-27
这几个架构分类算是是国内的自主创新吧!和国际上的通行术语及分类有很多不同,至少几个东西不是在一个层面上的,比如应用架构师和网络架构师不是同一个层级上,而且业务架构师的职责也不是研究不同系统的技术平台与交互模式。欢迎讨论啊,我看哥们你这个完全是自创的路子啊。
Global site tag (gtag.js) - Google Analytics