架构初探 - 谁动了我的蛋糕 | 青训营笔记

95 阅读2分钟

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

一、课程目标

  • 什么是架构
  • 企业级后端架构剖析
  • 企业级后端架构的挑战
  • 后端架构实战

二、课程内容

1、架构的定义

  • 软件架构是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计
  • 实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

1.1 单机架构

  • 把所有功能都实现在一个进程里,并部署在一台机器上。
  • 优点:简单
  • 问题:运维需要停服、c10k problem(服务能力瓶颈)

1.2 单体、垂直应用、垂直切分

  • 单体架构:分布式部署
  • 垂直应用架构:按应用垂直切分的单体
  • 优点:水平扩容、运维不需要停服
  • 问题:职责太多,开发效率不高;爆炸半径大

1.3 SOA(Service-Oriented Architecture)、微服务、水平切分

  • 将应用的不同功能单元抽象为服务
  • 定义服务之间的通信标注
  • 问题:数据一致性、高可用、治理、解耦 VS 过微

2、企业级后端架构剖析

2.1 云计算

  • 通过软件自动化管理,提供计算资源的服务网络。
  • 架构
    • IaaS(Infrastructure as a Service) 买房子 vs 房屋租赁平台
    • PaaS(Platform as a Service) 清包 vs 全包
    • SaaS(Software as a Service) 从零培训 vs 雇佣过的师傅
    • FaaS(Function as a Service) 纯手工 vs 蛋糕机批量生产

2.2 云原生

  • 为组织(公司)在公有云、自由云、混合云等虚拟化技术环境中构建和运行可弹性拓展的应用。
  • 弹性计算资源
    • 服务资源调度:微服务(和面、雕花)、大服务(烤箱)
    • 计算资源调度:在线(热销榜单)、离线(热销榜单更新)
    • 消息队列:在线(削峰、解耦)、离线(大数据分析)
  • 弹性存储资源
    • 关系型数据库、元数据、经典。
    • 将存储资源当成服务一样
  • Devops是云原生时代软件交付的利器,贯穿整个软件开发周期。
    • 设计、开发、测试、上线、调优/重构
  • 微服务架构
    • 通信标准:HTTP、RPC
    • 微服务中间件

3、企业级后端架构的挑战

  • 基础设施:
    • 物理资源有限、带宽有限
    • 资源利用率受制于部署服务
  • 用户层面:
    • 网络通信
    • 网络抖动导致运维成本提高
    • 异构环境下,不同实例资源水位不均
  • 自动扩缩容

三、其他

企业级后端架构挑战与实践案例有些抽象。