回复:你们身边有架构师么?什么是架构师?
看到了(http://topic.csdn.net/u/20091110/15/A64740B9-B9AC-4177-A628-A3CFA346281C.html)中提到的架构师讨论,觉得很多网友还是不太清楚架构师的职责。所以发文再讨论。
我是一名系统架构师。
我主要负责系统架构的设计及技术方案确定。在我们这里架构师有两方面的人员,一种是侧重于软硬件架构,另一种是侧重于应用架构。这里只是侧重点,并不是分界线。
通常一个项目,除了我们认知的需求,设计,开发,测试......外,其实在这之前,还有很多工作要做。简单地说,一个项目使用什么解决方案,在技术方面需要有一个系统驾驭能力强的人共同参与制定的。这个时候离真正的项目开始,还有一段距离。
对于客户的一个项目要求,架构师需要帮助客户根本自身的条件,去确定一个系统架构。条件主要是:项目预算,项目预期目标,项目需求(包括业务方面,功能方面,系统方面),自身的系统应用情况,人员能力问题,可持续发展要求等。
确定的架构,包括:系统功能与容量估算,组网拓朴,软硬件配置情况,开发平台选择,第三方系统/COTS的选型,各应用系统的集成,参与制定项目计划等到多方面。对于关键点还需要进行论证说明,并推荐建议,如:网络安全,网站建设,数据库系统及数据安全,系统HA应用及灾害备份,与外部系统的接口等。
对于大多的网友,所关心的.net framework, j2ee的选择,也是架构师的工作,是属于开发平台选择里。这也是其中较为关键的一环。
客户如果已经立项,就可能进入招投标或者谈判报价阶段;如果还没有立项,通过对各家方案提供的情况进行研究,提交预算进行立项;或进行一次POC进行技术可行性验证;或做一个咨询项目。
事实上在我们做的很多项目中,不同的客户所使用到的系统都是不尽相同的,尽管相同的行业,相以的背景。就简单地拿Application Server来说,有的客户会使用Weblogic Server,有的客户会使用Webphere,有的可能会用Tomcat。作为架构师需要根据客户的业务应用情况,提出相应的架构解决方案,对于服务器的使用,HA的应用,整个Application的部署等进行阐述论证。毕竟不同的产品的优缺点是不一样的,你尽量发挥其最大的效能,避免由于一些产品自身的条件限制而让整个系统架构出现硬伤。
再比如:有一些系统软件,有多种不同操作系统上的运行能力(非基于Java),如有的可以在UNIX上运行,有些可以在Windows下运行,有些可以在Linux上运行。架构师需要在这几种环境中推荐一种合理的方案给予客户,这当中除了技术先进性外,还需要考虑到项目预算,系统功能需求,平台及系统扩展性,维护人员能力,维护费用等。
其实不同的行业还有不同的应用软件及技术的选型。如:数据仓库项目,银行core banking/网银项目,保险的核心业务系统,Contact Center项目,CIF项目,CRM项目,电信/移动运营商的BOSS系统,EAI项目等。这些项目不是选择一个j2ee平台或一个.net平台就可以简单成型的。
一个合理的软硬系统架构,应用软件架构确定后,再与业务分析师,售前经理一同把整个方案完善成为一个整体。这是售前的任务。当然不同的项目,并非一定需要专人担任专门的角色。有些项目可能只有系统架构师,不需要应用架构师,因为应用架构相对不复杂,系统架构师已能胜任。有些项目可能也不需要业务分析师等。
售后,架构师的角色会部份转向成为分析师。在项目过程中,还会涉及到系统架构,应用架构的问题,有可能是客户需求的变更,有可能是售前架构方案的缺陷,可能还有多方面的原因,而导致架构会发生变化。架构师还需要对架构进行修正。而对于原有文中说的大部份系统分析师的工作,也是架构师应该掌握的,否则应用架构就会出现问题。这方面大家都说得很多,我就不多说了。
希望能倾听到不同架构师的声音,分享工作经验。