什么是架构?
架构即决策
什么是决策?
就是对重要的事情的设计和拍板
在软件开发中,我们可以对整个软件本身做个重要性等级划分.
一般把具体实现代码划分为普通,对整体或局部的设计划分为重要.
我们对这些重要的东西进行合理前瞻性的设计和拍板,就是决策!
举个示例:
技术架构:
选用什么框架,技术层面划分几个服务,各个服务间怎么交互,各个服务的数据怎么存储,对各个服务间异常怎么处理等
业务架构:
预判业务的未来发展,确定领域的范围,各个领域怎么划分,领域之间的关系,还可以细分到模型怎么划分和建立,以及各个模型之间的关系等
架构师分类:
技术架构(由技术人员发展过来):
1. 应用架构师
- 应用架构师是行业中数量最多的架构师,主要负责公司产品的技术架构。产品架构师需要对业务有足够的理解,根据产品需求设计架构,在运营团队的协助下评估量级,并管理项目的整个生命周期。
2. 中间件架构师
- 中间件架构师主要负责基础框架、公共组件,通用服务的搭建。比如分布式服务框架诸如 Dubbo,HSF;比如消息队列诸如 RocketMQ,Kafka。在大型互联网公司中,往往不是把开源框架简单「拿来」,而是研发出符合自身业务的企业中间件。
3. 基础架构师
- 基础设施架构师可以包含中间件架构师职责,同时负责服务器资源、网络资源、数据库等基础设施的建设;以及持续集成工具、持续部署工具的搭建。
4. 系统架构师
- 负责系统级别的架构,更注重整体架构,同时可以向应用架构、中间件、基础架构细化去做,相对灵活,不受上面三个架构师职责限制。
业务架构师(由产品经理发展过来)
1. 业务架构师(类似产品总监,通常只有业务巨复杂的公司才有专门的业务架构师)
2. 产品架构师(牛逼点的产品经理)