架构学习笔记 | 青训营

42 阅读3分钟

架构定义解析

架构的定义

架构,又称软件架构 ,是有关软件整体结构和组件的抽象描述,用户知道软件系统各个方面的设计。

什么是架构

单机

优点: 简单 问题: C10K problem ,运维需要停服

image.png

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

优点:分布式部署 垂直应用架构:按应用垂直切分 优点:水平扩容,不需要停服 问题:职责多,开发效率低,爆炸半径大 image.png

image.png

SOA,微服务 | 水平切分

将不同的功能单元抽象为服务,定义服务之间的通信标准。 微服务架构:SOA的去中心化演进方向

image.png

image.png

架构剖析

云计算是指通过软件自动化管理,提供计算资源的服务网络

image.png

云原生

云原生技术为组织在公有云,自由云,混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供可能 弹性资源:提供虚拟资源,可以弹性扩容缩容,并不用关注底层资源形态。不需要自己去买机器,装系统,自己去扩容。 微服务架构:云原生领域微服务架构可以是业务单元解耦,划分清晰。具有统一的通信标准,使得服务之间可以通畅地通信。 DevOps:在已经部署的云服务进行开发的相关技术栈,提高软件开发,交付效率 服务网格:使用服务网格,业务可以再做进一步的松耦合,可以把服务和网络通信做解耦合。为不同的业务层系统提供统一的解决方案(例如不同的编程语言实现)。 image.png

弹性资源:

  1. 服务资源调度 微服务,大服务(根据占用资源的量区分
  2. 计算资源调度 在线:热销榜单 离线:热销榜单更新
  3. 消息队列 在线:削峰,解耦 离线:大数据分析

弹性存储:

  1. 经典: 对象:宣传视频 大数据:用户消费记录
  2. 关系型数据库 收银记录
  3. 元数据 服务发现:蛋糕店通讯录,方便定位服务
  4. NoSQL

DevOps

提高软件开发,交付效率

image.png

微服务架构

通信标准:HTTP,RPC

微服务中间件 RPC vs HTTP RPC性能强,有很多很多压缩方案 很多RPC中间件自然存在服务治理的能力 RPC协议可解释性相对HTTP的JSON的可解释性要弱

image.png

挑战

基础设置:

物理资源是有限的,机器和带宽 资源利用率受制于部署服务

用户层面

网络通信开销较大 网络抖动导致运维成本提高 异构环境下,不同实例资源水位不均

方法:离在线资源并池 降低物理资源成本,提供更多弹性资源,增加收入

在线业务特点:

  1. io密集型为主
  2. 潮汐性,实时性

离线业务特点

  1. 计算密集型占多数
  2. 非实时性

方法: 自动扩缩容

降低业务成本

思路:自动扩缩容,利用在线业务潮汐性自动扩缩容