架构初探 | 青训营笔记

57 阅读2分钟

这是我参与[第五届青训营]伴学笔记创作活动的第7天

架构是什么

从定义上来说,架构是指有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。 通俗来讲架构的设计在软件实现方法的选择上起着重要的指导作用。

架构演进过程

单机:

软件系统需要对外提供服务,单机就是把所有功能都实现在一个进程里,并部署在一台机器上。很显然,这样做很简单,但是当运维的时候将不得不停止服务。

单体,垂直切分架构:

对单体功能按照应用进行垂直切分后分布式部署即为垂直应用架构。这样的架构可以轻松的进行功能的水平扩容,运维时也不需要停止整个服务器。但同时这样也会导致爆炸半径较大并且使得单个功能节点的承担的职责依旧很多,导致开发效率不高。

微服务|水平切分

SOA指将应用的不同功能单元抽象为服务,同时定义服务之间的通信标准。微服务架构即为SOA去中心化的演进方向,但同时也带来了数据一致性,高可用性,治理等问题。

企业级后端架构剖析

云计算

云计算的基础为虚拟化技术与编排方案。其架构主要包含:
IaaS(Infrastructure as Service)
PaaS(Platform as a Service)
SaaS(Software as a Service)
FaaS(Function as Service)

R-C1.jpg

弹性计算资源

资源类型:
服务资源调度
计算资源调度
消息队列

弹性储存资源

资源类型:
对象
大数据
关系型数据库
元数据
NoSQL

微服务架构

通信标准:
HTTP(RESTful API)
RPC(Thrift gRPC)
选择取决于系统的性能,服务治理,协议的可解释性。

企业级后端架构的挑战

物理资源的有限性,网络通信的开销