聊聊架构及架构师

1.架构分类

关于架构,大体可以分为以下三类:

1.1 IT架构

基于硬件、网络等构建整体的IT运维架构体系,包括IDC机房、网络拓扑、安全、负载均衡、运维监控等

1.2 基础架构

主要基于基础服务的软件产品架构,如SOA中间件、消息中间件、规则引擎、大数据存储、数据库产品、第三方组件等,相对独立于业务系统、不考虑具体的业务场景,更多地关注技术产品本身的性能、可靠、可扩展等,服务于业务系统。

1.3 应用架构

偏重于业务功能的实现,在基于用户需求实现业务功能、提升用户体验的基础上,保证系统的性能、可靠、可维护、可扩展。


2.关于应用架构师

我个人更愿意把应用架构师称之为SA(system analysist),即系统分析师。

应用架构师是用户(需求方)与开发人员(实现方)的桥梁,他的作用就是把业务与技术更好地结合起来,站在中立的角度-不唯技术、不唯业务,在业务和技术之间找到那个平衡点,做出最好的系统。

记住:首先,技术是为业务服务的;再者,技术可以推动业务。


3.什么是好的应用系统(架构)

3.1 好的应用系统特点

    满足业务功能

    用户体验好

    稳定可靠

    维护简单

    扩展性强

3.2 完全满足业务需求做不出好系统

业务需求是理想、技术是现实,理想是我们希望像鸟儿一样自由地飞出银河系,现实就是我们刚能踏上月球,还上不了火星,还必须借助于笨重的宇航服、宇宙飞船。

3.3 纯靠技术做不出好的业务系统

以减少系统功能降低用户体验为代价的高可用、高性能、高并发等貌似很NB的系统是得不到赞赏的。

3.4 一个好的业务系统一定是技术与业务的完美平衡

找到这个平衡点,是应用架构师的职责。


4.架构师能力要求

4.1 架构师的职责,不仅仅是技术

架构师要做以下工作:

需求分析->系统分解->技术选型->系统设计->培训与指导->沟通与推动

技术选型、系统设计才涉及到技术,培训与指导也仅仅一半是技术相关,其他基本与技术无关


介于需求与开发的中间人 良好的沟通能力
能够统领全局的大牛 良好的大局观
能够将需求转换为技术 洞悉前沿与市场嗅觉
能够为软件研发提供指导 见多识广的大牛
需要全面思考软件系统方方面面的问题 缜密地思考问题
能够攻关和搞定重要技术难题 公司可信赖的支柱



全局思维:
从业务、市场,到技术实现;
从软件的过去、现在,到将来;
从外部客户,到内部研发;
从软件研发,到硬件部署;
从功能实现,到运行效率。
战略思维:
在所在行业的发展战略;
在业务领域的发展战略;
在技术方向的发展战略;
在潜在市场的发展战略。
前瞻思维:
市场趋势的发展动向;
前沿技术的发展动向;
竞争对手的发展动向;
合作伙伴的发展动向。
抽象思维:
各项业务需求:抽象成功能模块;
各项功能的实现:抽象成软件架构。
逆向思维:
假如不实现会怎样?
假如没搞定会怎样?
假如没有它会怎样?
假如被延期会怎样?


4.2 架构师是一个多角色综合体

    用户—使用方

    产品设计者—产品经理

    方案设计者—狭义上的架构师

    开发人员—功能实现者

    维护人员—系统维护者

只有站在一个系统所有的干系人角度,你才能设计出好的系统。

4.3 架构师不仅仅是技术架构,也是业务专家

专注于技术领先的是技术专家,不是应用架构师。

首先站在业务的角度去考虑问题,找到业务架构和技术架构的平衡。


5.作为架构师,你能写出一个完整的方案吗?

5.1 怎么才是完整的方案

完整的方案应该包括但不限于以下要素:

项目概述:项目背景、项目需求、项目价值、项目干系人

系统概述:系统目标、系统功能

系统设计:架构设计、技术选型、系统性能\容量\扩展、功能设计等

系统实现:详细开发设计、数据库设计等

系统依赖:中间件、第三方系统、第三方组件等

5.2 怎么写出完整甚至完美的方案

还记得上面说的那几个角色么:用户、产品设计者、方案设计者、开发人员、维护人员

同时站在他们的角度看,你一定会写好的。













猜你喜欢

转载自maosheng.iteye.com/blog/2270621