Day05 架构初探| 青训营笔记

66 阅读2分钟

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

架构的定义

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

单体架构:分布式部署

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

SOA Service-Oriented Architecture:应用的不同功能单元抽象为服务;服务之间需要通信标准

微服务架构

架构演进初衷:需求量越来越大,终归要增加人手

越做越复杂,终归要分工合作

演进思路:

垂直切分:具有横向拓展的能力

水平切分:模块独立性更强,耦合性降低

企业级后端架构剖析

云计算:通过软件自动化管理,提供计算资源的服务网络。

虚拟化技术:整租 vs 合租

编排方案:业主 vs 租赁平台

架构:

  • Iaas 买房子 vs 房屋租赁平台
  • Paas 自己装修 vs 装修公司

清包:材料自己买,别人装修

全包:只出钱

  • Saas 从零培训 vs 雇佣培训过的师傅 弹性资源平台构建的云服务
  • Faas 纯手工制作 vs 蛋糕机批量生产

云原生:在公有云、自由云、混合云等动态环境中,构建和运行可以弹性拓展的应用提供了可能。

弹性资源:服务资源、计算资源、消息队列、存储资源

DevOps:服务已经部署到云上,开发和运营相关技术栈

服务网格:业务与治理解构

企业级后端架构的挑战

在线业务特点:

  • IO密集型为主
  • 潮汐性、实时性

离线业务特点:

  • 计算密集型多数
  • 非实时性

解决方案:

晚上离线业务池扩展起来,早晨多扩展在线业务池。

自动扩缩容:目的是降低业务成本

  • 利用在线业务潮汐性自动扩缩容

另一种解决方案:微服务亲和性部署

核心收益

  • 降低业务成本
  • 提高服务可用性

满足亲和性条件的容器调度到一台宿主机,微服务中间件与服务网格通过共享内存通信

流量治理

核心收益:

  • 提高微服务调用容错性
  • 容灾
  • 进一步提高开发效率,DevOps发挥到极致

CPU水位负载均衡

IaaS:提供资源探针

如何做架构设计

  • 需求先行,弄清楚需要解决什么问题
  • 业界调研,业界都有哪些方案可以提供参考
  • 技术选项。内部/社区都有哪些基础组件
  • 异常情况