架构初探 | 青训营笔记

87 阅读2分钟

架构初探 | 青训营笔记

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

今天的内容主要是对架构的讲解,此前接触的应用多是单体式架构,虽然开发方便、设计简单,但各个模块的功能分配混乱、耦合度高,随着用户量的增多,这样的结构必然会让运维同学头大,因此,一个合适的架构是在开发之前就需要着重考虑的。

基础内容

定义

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

常见的架构

  • 单机式

    • 把所有模块功能都放到同一个进程,部署到一台机器上
    • 优点:简单
    • 缺点:机器性能的瓶颈也会造成应用的瓶颈,并且运维需要停服
  • 单体分布式部署

    • 分布式部署,通过负载均衡层进行request的分配
    • 优点:通过简单的水平扩容就提高了性能
    • 缺点:模块与模块之间其实还是处于同一个进程
  • 垂直架构

    • 在单体分布式部署的基础上,将项目进行切分
    • 优点:系统之间相互独立,运维无需停服
    • 缺点:粒度还是太大,一个应用的职责仍然太多
  • SOA

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

    • SOA其实只是一个理念,实现方式包括去中心化和中心化,而微服务其实就是SOA去中心化的实现方式

企业级方案

云计算

  • IaaS:基础设施即服务
  • PaaS:平台即服务
  • SaaS:软件即服务
  • FaaS:功能即服务

云原生

  • 弹性资源

    • 虚拟化容器
    • 快速扩缩容
  • 微服务架构

    • 业务功能单元解耦
    • 统一的通信标准
  • DevOps

    • 敏捷开发
    • CI/CD
  • 服务网格

    • 业务与治理解构
    • 异构系统的治理统一化
    • 复杂治理能力

挑战

离在线资源并池与自动扩缩容

将离线资源池和在线资源池合并,根据时段动态分配资源

核心收益:

  • 降低物理资源成本
  • 提供更多的弹性资源,增加收入

微服务亲合性部署

可以将频繁进行网络通信的两个应用放置于同一台宿主机中,这样就可以通过IPC取代RPC,减少带宽占用

核心收益:

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

流量治理

核心收益:

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

CPU水位负载均衡

核心收益:

  • 打平异构环境算力差异
  • 为自动扩缩容提供正向输入