架构初探 |青训营笔记

162 阅读4分钟

架构初探 |青训营笔记

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

在后面会依次倒叙回顾之前的学习课程,便于复习~

一、课程重点内容

  • 架构的概念
  • 企业级后端架构剖析
  • 架构面临的挑战

下面是对课程重点内容的思考与总结,有问题或者错误,可以批评指正呐~

二、架构的概念

架构是非常重要的基石,其全称是软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计,具体分类如下:

  • 单机架构

    • 定义:单机就是把所有需要的功能集成在一个进程里,并部署在一台机器上,对外提供服务的,单机架构就是最基本的架构。
    • 优缺点:简单便于操作,但运维的时候需要停服,所以说这个模式只适合出现在项目的预研初创阶段,
  • 单体框架

    • 定义:把进程部署到多个机器上,并引入负载均衡层,经过垂直切分,就变成了单体架构
    • 负载均衡的重要性:负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。可以看作成一个分配任务的leader
  • 垂直应用框架

    • 定义:在单机架构基础上,将进程按照某种依据切分开。比如,A 软件和 B 软件的后端原先采用单机架构部署,那就是一个进程部署在多个机器上;如果用垂直应用架构,可以将 A 和 B 的后端拆分为 A、B 两个进程,然后再按照单体模式的思路,部署在多个机器上。

    • 优点:

      • 一定程度上减少了后端进程职责
      • 一定程度上缩小爆炸半径
    • 缺点:

      • 没有根本解决单体架构的问题
  • SOA (面向服务架构)

    • 定义:SOA 架构中,服务为一等公民,将进程按照不同的功能单元进行抽象,拆分为『服务』。有了服务之后,SOA 还为服务之间的通信定义了标准,保证各个服务之间通讯体验的一致性。

    • 优点:

      • 各服务的职责更清晰
      • 运维粒度减小到服务,爆炸半径可控
    • 缺点:

      • ESB (企业服务总线) 往往需要一整套解决方案
  • 微服务

    在 SOA 架构中,ESB 起到了至关重要的作用。但从架构拓扑来看,它更像是一个集中式的模块。有一个 SOA 分布式演进的分支,最终的形态便是微服务。

    avatar

    • 优点:

      • 兼具 SOA 解决的问题
      • 服务间的通信更敏捷、灵活
    • 缺点:

      • 运维成本

三、企业级后端架构剖析

  • 云计算

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

    • 基石:虚拟化技术和编排方案

    • 架构种类:

      IaaS云基础设施,对底层硬件资源池的抽象
      PaaS基于资源池抽象,对上层提供的弹性资源平台
      SaaS基于弹性资源平台构建的云服务
      FaaS更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出流
  • 云原生

    • 定义:云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能,全称是云原生计算,是元计算发展到现在的一种形态。

    • 代表形态:

      • 容器化
      • 服务网格
      • 微服务
      • 不可变基础架构
      • 声明式API

四、架构面临的挑战

  • 主要挑战

    • 基础设施:

      • 物理资源是有限的

        • 机器
        • 贷款
      • 资源利用率受制于部署服务

    • 用户层面:

      • 网络通信开销大
      • 网络抖动导致运维成本提高
      • 异构环境下,不同实例资源水位不均

image-20230205172438421.png

五、课程总结

作为一名架构师,心中要明白:没有最好的架构,只有最合适的架构,同时学好架构,是工程师成长的一个重要标志!