架构印象 | 青训营笔记

48 阅读1分钟

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

什么是架构

软件结构与组件的抽象描述

主要后端架构

常见软件架构:

  • 单机

    一个 Process

    image-20230204101128201.png

  • 单体

    多个 Application(client <-> N*server

    image-20230204101202460.png

  • 垂直应用

    按业务垂直切分Application,垂直表示client <-> server这个交互链,说明每个Application负责一个业务链

    image-20230204101345778.png

  • SOA (Service Oriented Architecture)

    让Application分工合作

    更准确来说,可拆分Application -> M*Service(代表不同的功能单元

  • 微服务 (Microservice)

    image-20230204101353781.png

一些小问题:

  • 架构演进的初衷?

    需求越来越大,抽象处理器就越来越多

    需要的架构越来越复杂,需要分工协作

  • 架构演进的思路?

    竖切(process->N*application),横切(application->M*service)

  • 架构选型思想

    没有最好的架构,只有最合适的架构

    所以,要从需求出发来选择架构

企业级后端架构

  • 云计算

    • 基础

      • 虚拟化

        有抽象的意思,也有基础设施的意思,比如4S中的三个都是提供抽象化服务

      • 编排

        类似Paas,把很多琐碎的流程or实体 编排成一个平台,提供服务

    • 架构

      • FaaS

        function

      • SaaS

        software

      • PaaS

        platform,类比 普通租户(进行租赁) <==> 租赁平台(只需注册和托管)

      • IaaS

        infrastructure 比如硬件(存储、虚拟机、计算资源

  • 云原生

    • 弹性资源

      动态扩缩资源,来适配请求的潮汐性

      • 计算资源
      • 存储资源
    • 微服务架构

      • 通信协议

        RPC通信

      • 中间件

        业内成熟的软件,优化好,稳定,高效

    • DevOps

      • 软件生命周期

        一种贯穿整个周期的开发模式

    • 服务网格

      比较新潮的云原生架构,提高效率,集中流量监察