架构初探 | 青训营笔记

85 阅读2分钟

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

架构初探 - 谁动了我的蛋糕

软件架构

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

SOA(Service-0riented Architecture)

  1. 将应用的不同功能单元抽象为服务
  2. 定义服务之间的通信标准

进一步去中心化演进成微服务架构,

问题:
数据一致性,高可用,容错率,解耦 vs 过微。

企业级后端架构剖析

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

  2. 云原生:构建和运行可弹性拓展的应用。

  3. 弹性计算资源类型:
    服务资源调度:微服务:和面雕花,大服务:烤箱。
    计算资源调度:在线:热销榜单,离线:热销榜单更新。
    消息队列:在线:削峰和解耦,离线:大数据分析。
    经典:对象:宣传视频,大数据:用户消费记录
    关系型数据库:收银记录
    元数据:服务发现: 蛋糕店通讯录
    NoSQL:KV:来个 xx 蛋糕

  4. DevOps
    结合自动化流程,提高软件开发、交付效率

企业级后端架构挑战

基础设施层面:

  1. 物理资源是有限的
  2. 资源利用率受制于部署服务 用户层面:
  3. 网络通信开销较大
  4. 网络抖动导致运维成本提高
  5. 异构环境下,不同实例资源水位不均

解决思路:

  1. 自动扩缩容
  2. 微服务亲和性部署
  3. CPU水位负载均衡

后端架构实战

  1. 输入
    服务网格数据面,支持带权重的负载均衡策略
    注册中心存储了所有容器的权重信息
    宿主机能提供,容器的资源使用情况,物理资源信息(如 CPU 型号)

  2. 关键点
    紧急回滚能力
    大规模
    极端场景

  3. 方案
    采集宿主机物理资源信息
    调整容器注册的权重
    优势:复杂度低,完全分布式,可用性高,微服务中间件无适配成本
    缺点:无紧急回滚能力,缺乏运行时自适应能力

课后作业

兰师傅蛋糕房要支持线上售卖了! 请帮忙做整套系统的架构设计,需求:

  1. 多端支持:微信/支付宝小程序,App,网页。
  2. 使用云原生基础设施。
  3. 用户画像很重要。
  4. 积极参加妇女节/光棍节等活动。

注: 不需要考虑与做蛋糕相关服务的交互