架构设计简记

架构是什么

TOGAF 即 The Open Group Architecture Framework (开放组体系结构框架),是由致力于技术标准制定和推广的非盈利组织 The Open Group 制定的用于开发企业架构(Enterprise Architecture)的一套方法和工具。

在 TOGAF9 是这么定义:一个系统基本的构件(子系统, 模块, 组件),体现在它的各个构件、构件间的相互关系、构件与环境间的关系,以及对系统设计和演进进行治理的原则中。

软件架构指软件系统顶层结构设计,涉及四方面:

  1. 系统性思考的合理决策:比如技术选型、解决实施方案(包括执行目标计划)、成本评估、性价比评估等等。
  2. 结构:明确的系统骨架(结构):明确系统有哪些构件组成。
  3. 连接:系统协作关系:各个组成部分如何协作来实现业务请求。
  4. 规范:约束规范和指导原则:保证系统有序,高效、稳定运行,包括规范、原则、流程等内容。

架构设计目的

架构的本质是管理和解决系统的复杂性,提高效率。

架构设计的作用涉及四方面:

  1. 系统性思考的合理决策。
  2. 明确的系统骨架。
  3. 系统协作关系。
  4. 约束规范和指导原则。

架构分类

  1. 业务架构:业务战略、治理、组织和关键业务流程。
  2. 应用架构:描述被部署的单个应用系统、系统之间的交互,以及它们与组织核心业务流程之间关系的蓝图。
  3. 数据架构:组织的各类逻辑和物理数据资产以及数据管理资源的结构。
  4. 技术架构:对于支持业务、数据和应用服务的部署来说必需的逻辑软、硬件能力。包括IT基础设施、中间件、网络、通信、部署处理和一些标准等。

应用架构演进

单体应用

典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。这是一种典型的 Java Spring MVC 或者 Python Django 框架的应用。

分布式应用服务化

对系统按照业务功能模块拆分,将各个模块服务化,变成一个分布式系统。业务模块分别部署在不同的服务器上,各个业务模块之间通过接口进行数据交互。比如,RPC技术的就是其典型应用之一。

微服务

把分散到各个业务的某种相关逻辑进行统一管理,以统一的服务的方式透明地提供给上层应用,变成一个微内核的服务化架构,即微服务。

衡量架构的合理性

业务需求角度

  1. 能解决当下业务需求和问题;
  2. 高效完成业务需求:能以优雅且可复用的方式解决当下所有业务问题;
  3. 前瞻性设计:能在未来一段时间都能以第 2 种方式满足业务,从而不会每次当业务进行演变时,导致架构翻天覆地的变化。

非业务需求角度

  1. 稳定:高可用。
  2. 高效:文档化、可扩展、高复用。
  3. 安全:安全。

常见架构误区

  1. 不做出完美的架构设计不开工:世上没有最好架构,只有最合适的架构,不要企图一步到位。
  2. 为虚无的未来埋单而过度设计:如果业务初期,产品需要快速迭代和变现,需求频繁更新,这个时候需要的是快速实现,不要过多考虑未来的扩展。
  3. 为了技术而技术:技术是为业务而存在的,忽略了业务就毫无意义。

参考

https://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649777073&idx=1&sn=d28b2bea93dccdcc8854fb5a95f36f31
《大型网站技术架构:核心原理与案例分析》
《亿级流量网站架构核心技术》
《架构即未来》
《分布式服务架构:原理、设计与实战》
《聊聊架构》
《软件架构师的 12 项修炼》

猜你喜欢

转载自blog.csdn.net/zhiyuan411/article/details/129700459