架构基础理论 | 青训营笔记

39 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

常见软件架构

  • 架构,有关软件整体结构与组件的抽象描述

单体架构

  • 所有的功能均在一个程序中存储
  • 模块之间将相互影响
  • 开发难度上升

垂直应用

  • 按照业务线垂直化分
  • 无法复用模块

SOA

  • 面向服务架构
  • 重要的组成部件是服务注册中心

微服务架构

  • 彻底的服务化

企业级后端架构

企业架构的基础

  • 云计算
    1. 虚拟化技术
      • 硬件层面:VMware/KVM
      • 操作系统:Container
      • 网络层面:Linux Bridge/Open v Switch
    2. 编排方案 VM/Container
    3. 云服务 IaaS、PaaS、SaaS、FaaS
    4. 云部署模式 公有云、私有云、混合云
  • 云原生
    • 可以实现在公有云、自由云、混合云等动态环境中,构建和运行可弹性扩展应用。
    • 代表技术:弹性资源、微服务架构、DevOps、服务网络
  • 弹性资源
    1. 弹性计算资源 计算资源调度-在线计算、离线计算 消息队列-在线队列、离线队列
    2. 弹性存储资源 经典存储 关系型数据库 元数据-服务发现 NoSQL-KV存储、文档存储

企业级后端架构的挑战

  • 离线任务
  • 在线任务
  • IO 密集型
  • CPU 密集型
  • 服务治理
  • IPC (Inter-Process Communication)
  • RPC (Remote Procedure Call)

后端架构实战

  • 负载均衡 Load Balancing

  • 服务发现 Service Discovery

  • 服务注册 Service Registry

  • 宿主机 Host

  • 容器 Container

  • 时序数据 Time Series

  • 一致性哈希 Consistent Hash

流量治理

Q:微服务之间的通信流量为什么需要治理?

Q:都有哪些常用的治理手段?

Q:微服务中心件和服务网格在其中扮演着怎样的角色?

屏蔽异构环境的算力差异

Q:基础设施层往往是个复杂的异构环境,比如,有些机器的 CPU 是英特尔的,而有些是 AMD 的。就算是同一个品牌,也可能是不同代际。如何将这些差异屏蔽掉,使用户尽可能不感知呢?

Q:什么情况下,我们觉得,服务需要扩容了?异构环境会对这个评判标准产生怎样的影响?

引用

该文章部分内容来自于以下课程或网页:

  • 字节青训营课程:架构初探 - 谁动了我的蛋糕
  • 字节内部课:微服务框架 - 不变的基建