架构初探 | 青训营笔记

51 阅读2分钟

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

架构

  • 架构,又称软件架构:
    • 是有关软件整体结构与组件的抽象描述
    • 用于指导软件系统各个方面的设计
  • 常见软件架构:单机、单体(分布式部署)、垂直应用(按应用垂直划分)
    • SOA (Service Oriented Architecture):将应用的不同功能单元抽象为服务,定义服务之间的通信标准
    • 微服务 (Microservice):SOA的去中心化演进方向

企业级后端架构剖析

  • 云计算
    • 基础:虚拟化;编排
    • 架构:
      • IaaS - 云基础设施,对底层硬件资源池的抽象
      • PaaS - 基于资源池抽象,对上层提供的弹性资源平台
      • SaaS - 基于弹性资源平台构建的云服务
      • FaaS - 更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出流
  • 云原生:云原生,实际是云原生(计算)的简称,它是云计算发展到现在的一种形态。云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。 它的代表技术:
    • 弹性资源
    • 计算资源
    • 存储资源
  • 微服务架构
    • 通信协议
      • HTTP - H1/H2
      • RPC - Apache Thrift/gRPC
      • 如何在 HTTP 和 RPC 之间选择?
        • 性能 - RPC 协议往往具备较好的压缩率,性能较高。如 Thrift, Protocol Buffers
        • 服务治理 - RPC 中间件往往集成了丰富的服务治理能力。如 熔断、降级、超时等
        • 可解释性 - HTTP 通信的协议往往首选 JSON,可解释性、可调试性更好
    • 中间件
  • DevOps
    • 软件生命周期
  • 服务网格
    • 微服务之间通讯的中间层
    • 一个高性能的 4 层网络代理
    • 将流量层面的逻辑与业务进程解耦
    • 没有什么是加一层代理解决不了的问题,服务网格相比较于 RPC/HTTP 框架:
      • 实现了异构系统治理体验的统一化
      • 服务网格的数据平面代理与业务进程采取进程间通信的模式,使得流量相关的逻辑(包含治理)与业务进程解耦,生命周期也更容易管理