架构初探 | 青训营笔记

68 阅读2分钟

什么是架构

定义

架构,又称软件架构

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

  • 用于指导软件系统各个方面的设计

  • 通俗解释:实现软件有很多中方法,架构在方法选择上起着至关重要的指导作用

单机

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

  • 优点:简单

  • 问题:C10K problem;运维需要停服

垂直切分

  • 单体架构:分布式部署

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

  • 优点:水平扩容;运维不需要停服

  • 问题:职责太多,开发效率不高;爆炸半径大

水平切分

  • SOA(Service-Oriented Architecture)

    • 将应用的不同功能单元抽象为服务

    • 定义服务之间的通信标准

  • 微服务架构:SOA的去中心化演进方向

  • 问题

    • 数据一致性

    • 高可用

    • 治理(容灾)

    • 解耦 vs 过微(运维成本提升)

企业级后端架构剖析 - 云计算

云计算

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

基础

  • 虚拟化技术

  • 编排方案

架构

  • IaaS(Infrastructure as a Service)

  • PaaS(Platform as a Service)

  • SaaS(Software as a Service)

  • FaaS(Function as a Service)

企业级后端架构剖析 - 云原生

云原生

  • 云原生,实际上是云原生(计算)的简称,是云计算发展到现在的一种形态

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

  • 代表性技术:

    • 容器化

    • 服务网格

    • 微服务

    • 不可变基础架构

    • 声明式 API

  • 基于这些技术,开发者可以构造出弹性好、易于管理、观测行好的云服务

  • 结合可靠的自动化机制,服务可以轻松应对频繁和可预测的重大变更

企业级后端架构的挑战

挑战

  • 基础设施层面

    • 物理(机器、带宽)资源有限

    • 资源利用率受限于部署服务

  • 用户层面

    • 网络通信开销较大

    • 网络抖动导致运维成本提高

    • 异构环境下,不同实例资源水位不均