架构初探 | 青训营

67 阅读3分钟

什么是架构

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

导题

eg: 蛋糕房提供蛋糕:

单机

软件系统封需要具备对外提供服务,单机,就是把岁哦有功能都实现在一个进程里,并部署在一台机器上。 优点 -简单 问题:C10K problem; 运维需要停服。

单体、垂直应用|垂直切分

单体架构:分布式部署 垂直应用架构:按应用垂直切分的单体

SOA、微服务|水平切分

Service-Oriented Architecture

  1. 将应用的不同功能单元抽象为服务
  2. 定义服务之间的通信标准 微服务架构:SOA的去中心化演进方向 问题:数据一致性;高可用;治理;解耦vs过微

小结: 演进初衷:需求量越来越大,越做越复杂 演进思路: 垂直切分,水平切分。

从单机架构->单体架构

image.png

image.png

image.png

企业级后端架构剖析

云计算

是指通过软件自动化管理,提供计算资源的服务网络。 基础: -虚拟化技术; 编排方案。 架构: Infrastructure aas、 Platform aas、 Software aaS、 Function aaS

云原生

在动态环境中,构建和运行可弹性拓展的应用。

image.png

云原生之弹性计算资源

  • 服务资源调度
  • 计算资源调度
  • 消息队列

云原生之弹性存储资源

  • 经典;关系型数据库;元数据; NoSQL
  • 总结: 将存储资源当成服务一样

云原生之DervOps

结合自动化流程,提高软件开发、交付效率

image.png

云原生之微服务架构

  • 通信协议: Http;RPC。 一般中间件框架会帮我们实现服务架构

image.png

云原生之服务网格

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

企业级后端架构的挑战

  • 物理设施层面: 物理资源是有限的;资源利用率受限于部署服务。
  • 用户层面: 网络通信开销较大,网络抖动导致运维成本提高。

离在线资源并池

  • 核心收益: 降低物理资源成本;提供更多的弹性资源,增加收入。
  • 在线业务的特点: 计算密集型占多数;非实时性。

自动扩缩容

引出一个问题? ->扩缩容依据什么指标?

微服务亲和性部署

  • 将满足亲和性条件的容器调度到一台宿主机。
  • 微服务中间件的作用

流量治理

核心收益: 提高微服务调用容错性、容灾、进一步提高开发效率,DevOps 发挥

CPU水位复杂均衡

Iaas: 提供资源探针

服务网格: 动态负载均衡

后端架构实战

关键点: 紧急回滚能力、大规模、 极端场景。

image.png

自适应动态权重

容器动态权重的自适应调整; 服务网格的服务发现& 流量调度能力