架构初探

147 阅读2分钟

什么是架构

架构,又称软件架构,

  • 是有关软件整体结构与组件的抽象描述
  • 用于指导软件系统各个方面的设计

通俗一点定义

实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

架构的重要性?

  • 地基没打好,大厦容易倒
  • 地基坚实了,大厦才能盖得高
  • 站在巨人肩膀上,才能看得远

单机架构

软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上

优点:简单

缺点:运维需要停服,服务能力具有瓶颈。

单体架构

单体架构:分布式部署

垂直应用架构:按应用垂直切分的单体

优点:水平扩容,维护不需要停服。

缺点:职责太多,爆炸半径大(一个服务环节出了问题,整个服务都不能访问)

SOA、微服务|水平切分

SOA (Service-Oriented Architecture)

  1. 将应用的不同功能单元抽象为服务
  2. 定义服务之间的通信标准

微服务架构:SOA 的去中心化演进方向

一些问题:数据一致性、高可用、治理、解耦。

企业级后端架构剖析

云计算

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

  • IaaS
  • PaaS
  • SaaS
  • FaaS

云原生

云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。

image.png

微服务架构

通信标淮:

  • HTTP (RESTful API)
  • RPC (Thrift, gRPC)

微服务中间件 RPC VS HTTP:

  • 性能
  • 服务治理
  • 协议可解释性

云原生场景下,微服务大可不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做。

服务网格

服务网格 (Service Mesh):

  • 微服务之间通讯的中间层
  • 高性能网络代理
  • 业务代码与治理解糯

相比较于 RPC/HTTP 框架:

  • 异构系统治理统一化
  • 与业务进程解耦,生命周期易管理

企业级后端架构挑战

离在线资源并池

核心收益:

  • 降低物理资源成本
  • 提供更多的弹性资源,增加收入

在线业务的特点:

  • IO 密集型为主
  • 潮汐性、实时性 离线业务的特点:
  • 计算密集型占多数
  • 非实时性

流量治理

核心收益:

  • 提高微服务调用容错性
  • 容灾
  • 进一步提高开发效率,DevOps 发挥到极致

解決思路:基于微服务中间件 & 服务网格的流量治理

  • 熔断、重试
  • 单元化
  • 复杂环境(功能、预览)的流量调度