架构初探 | 青训营笔记

97 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第9天

架构

架构一个系统在其所处环境中所具备的各种基本概念和属性,具体体现为其所包含的各个元素、他们之间的关系以及架构的设计和演进原则之中。

架构的本质就是对系统进行有序化地重构以致符合当前业务的发展,并可以快速扩展。

企业架构和系统架构

架构从应用上可以分为企业架构和系统架构。

企业架构是记录企业内所有信息系统、它们的相互关系以及它们如何完成企业使命的蓝图,是企业关注点。

系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务,是系统关注点。

作用

复杂的软件项目通常有两个明显的特征:需求不确定和技术复杂。需求不确定来自于客户,而技术的复杂性主要体现在需求让技术变复杂、技术本身也是复杂的、要让软件稳定运行是复杂的。这些技术的复杂性,会导致软件开发变得复杂,开发成本很高,架构设计恰恰可以很好解决技术复杂的问题。首先,架构可以降低满足需求和需求变化的开发成本。其次,架构可以帮助组织人员一起高效协作。再次,架构可以帮助组织好各种技术。最后,架构可以保障服务稳定运行。

类型

(1)单机架构

所有的东西都在一个进程里,部署在一个机器上。

  • 优点:简单
  • 缺点:① 运维需要停服,用户体验较差。 ② 承载能力有限。

(2)单体架构

在单机架构的基础上,将进程部署到多个机器上。

  • 优点:① 具备水平扩容能力。② 运维不需要停服
  • 缺点:① 后端进程职责太多,越来越臃肿。 ② 爆炸半径较大,进程中一个很小的模块出现问题,都可能导致整个进程崩溃

(3)垂直应用架构

在单机架构基础上,将进程按照某种依据切分开。

  • 优点:① 一定程度上减少了后端进程职责。② 一定程度上缩小爆炸半径
  • 缺点:没有根本解决单体架构的问题。

(4)SOA (面向服务架构)

  • 优点:① 各服务的职责更清晰。② 运维粒度减小到服务,爆炸半径可控
  • 缺点:ESB (企业服务总线) 往往需要一整套解决方案

(5)微服务

  • 优点:① 兼具 SOA 解决的问题。② 服务间的通信更敏捷、灵活
  • 缺点:运维成本过高

(6)企业级后端架构