后端架构|青训营笔记

120 阅读3分钟

一、架构的定义 架构是指有关软件整体结构和组件的抽象描述,用于指导软件系统各个方面的设计。实现软件有很多种方法,架构在方法选择上起着至关重要的指导作用。

二、架构的重要性

1、可维护性与扩展性:一个好的技术架构能够降低系统的维护成本。它将系统划分为模块,使得对一个部分的修改不会影响整个系统,从而使系统更易于维护和更新。

2、性能优化:技术架构可以优化系统的性能。通过合理的架构设计,可以减少资源的浪费,提高系统的响应速度,为用户提供更好的体验。

三、单机架构 单机是指把所有功能放在都在一个进程里,部署在一个机器上。

1、优点: 非常简单 2、缺点: 承载能力有限 运维需要停服

四、单体架构 单体架构是在单机架构的基础上,将进程部署到多个机器上,即分布式部署。

1、优点: 可以水平扩容 运维不需要停服 2、缺点: 进程职责太多,开发效率不高 爆炸半径较大

五、垂直应用架构 垂直应用架构是在单机架构基础上,将 A 和 B 的后端拆分为 A、B 两个进程,再按照部署在多个机器上。

1、优点: 减少了单体的后端进程职责 缩小爆炸半径

2、缺点: 没有根本解决单体架构的问题

六、SOA SOA(Service-Oriented Architecture,面向服务架构)将进程按照不同的功能单元进行抽象,拆分为服务并为服务之间的通信定义了标准,保证各个服务之间通讯体验的一致性。

1、优点: 各服务的职责更清晰 运维粒度减小到服务,爆炸半径可控 2、缺点: 方案形态较重,扩展性不佳 可用性不高,不普及 七、微服务架构 微服务架构是SOA去中心化演进出的一种架构。

1.优点: 兼具 SOA 解决的问题 服务间的通信更敏捷、灵活

2、缺点: 需要解决数据一致性、灾容等问题 依赖复杂,运维成本增加

八、云计算 云计算是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模分析和存储的基石。

1、基础: 虚拟化技术 编排方案

2、架构: IaaS (Infrastructure as a Service),云基础设施,对底层硬件资源池的抽象

PaaS (Platform as a Service),基于资源池抽象,对上层提供的弹性资源平台

SaaS (Software as a Service),基于弹性资源平台构建的云服务

FaaS (Function as a Service),基于功能的抽象,提供更轻量级的函数服务 九、云原生 云原生为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。

云原生代表技术:

1、弹性资源

2、微服务架构

3、DevOps

4、服务网格

5、容器化

6、不可变基础架构

7、声明式 API

总结:架构的设计,技术的选型,不能完全按照流行的技术走,最终还是服务于产品,服务于客户的需求。针对不同的需求,选择不同的架构才是最大的挑战。