架构初探 | 青训营笔记

59 阅读2分钟

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

前言

本文仅仅是对课程的总结和回顾,方便后续查阅,以及自己的一些心得总结,若有错误,请大家不吝赐教

架构是什么

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

演进过程

  • 单机:一个进程,一台机器

    问题:C10K problem、运维需要停服

  • 单体架构:分布式部署

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

    优点:水平扩容、运维不需停服

    问题:职责太多,开发效率不高,爆炸半径大(?)

  • (水平切分)SOA:

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

思考:演进的思路其实就是随着一个软件的需求和使用量越来越大,需要越来越多的资源来对整个系统提供服务,从垂直和水平两个角度对职责进行切分,实质上是对分布式部署的一个发展

企业级后端架构剖析

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

基础:虚拟化技术,编排方案 架构:IaaS、PaaS、SaaS、FaaS

image.png

云原生

image.png 个人理解:基于虚拟化容器能够源源不断提供云资源,进行分布式的部署和软件开发,在不断扩大规模的过程中衍生出来的一系列的成熟的一个生态,包括开发流程和服务通信等

弹性资源:服务资源调度、计算资源调度、消息队列、弹性存储资源

DevOps:结合自动化流程,提高软件开发和交付的效率

微服务架构:

  • 通信标准:HTTP、RPC
  • 微服务中间件:HTTP和RPV的选择? RPC性能更高,有很多压缩方案 RPC的服务治理 HTTP协议可解释性更强
  • 在云原生的场景下,业务只需要关注业务实现逻辑,而不需要关注通信,符合通信标准的交互逻辑交给框架来做。