后端与架构初探 | 青训营笔记

20 阅读3分钟

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

架构也是一步步根据需求迭代的,没有最好的架构,只有最合适的架构

1.定义

架构,又称软件架构,

  • 是有关软件整体结构与组件的抽象描述
  • 用于指导软件系统各个方面的设计

2.分类

  • 单机:软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个讲程里,并部署在一台机器上

    • 简单
    • 运维需停服
  • 单体:将单机分布式部署

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

    • 水平扩容,运维不需要停服
    • 职责太多,开发效率不高,爆炸半径大
  • SOA (Service Oriented Architecture):1.将应用的不同功能单元抽象为服务.2.定义服务之间的通信标准

  • 微服务 (Microservice):SOA的去中心化演进方向

    • 数据一致性,高可用(如何合作)
    • 治理(容灾)
    • 解耦 vs过微(高运维了)

3.云计算

是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。

以虚拟化技术和编排方案为基础,是分布式计算的一种

3层划分:

  • 基础设施即服务(IaaS)

基础设施即服务是主要的服务类别之一,它向云计算提供商的个人或组织提供虚拟化计算资源,如虚拟机、存储、网络和操作系统。

  • 平台即服务(PaaS)

平台即服务是一种服务类别,为开发人员提供通过全球互联网构建应用程序和服务的平台。Paas为开发、测试和管理软件应用程序提供 按需开发环境。

  • 软件即服务(SaaS)

软件即服务也是其服务的一类,通过互联网提供按需软件付费应用程序,云计算提供商托管和管理软件应用程序,并允许其用户连接到 应用程序并通过全球互联网访问应用程序。

4. 云原生

云原生技术为组织(公司)在公有云、自由云,混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能

云计算的3层划分为云原生提供了技术基础和方向指引,真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变,在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点,重新设计,从而建设全新的云化的应用,即云原生应用。

DevOps+服务网格+微服务+弹性资源(容器)

image-20230205111140023.png

  • 弹性计算资源类型:

    • 服务资源调度:微服务和大服务
    • 计算资源调度:在线(如热销榜单) 离线(热销榜单更新)
    • 消息队列:在线(削峰,解耦)离线(大数据分析)
  • 弹性存储资源类型(将存储资源当成服务一样):经典,关系型,元数据,NoSQL

  • DevOps:是云原生时代软件交付的利器, 贯穿整个软件开发周期。 结合自动化流程,提高软件开发、交付效率

image-20230205112319810.png

  • 微服务架构:HTTP,RPC作为通信标准,通过框架实现交互逻辑

  • 服务网格:****

    • 微服务之间通讯的中间层
    • 高性能网络代理
    • 业务代码与治理解耦
    • 相比较于RPC/HTTP框架:异构系统治理统一化,与业务进程解耦,生命周期易管理

image-20230205113005738.png