架构初探 | 青训营笔记

83 阅读4分钟

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

内容

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

架构

架构是非常重要的基石,其全称是软件架构

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

单体架构与垂直应用架构

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性

垂直切分是根据业务来拆分数据库,同一类业务的数据表拆分到一个独立的数据库,另一类的数据表拆分到其他数据库。垂直切分可以降低单节点数据库的负载

SOA 微服务与水平切分

SOA (Service-Oriented Architecture),也就是面向服务的架构;

  1. 将应用的不同功能单元抽象为服务(服务是根据功能抽象出来的概念)
  2. 定义服务之间的通信标准(通信标准是服务之间通信的基石)

微服务架构是SOA的去中心化演进方向,也有中心化的发展方向

微服务架构的效果:

  1. 不同模块的RD可以专心于自己的业务逻辑了,开发迭代效率得到了显著提高
  2. 各个服务独立运维,变更操作的影响面可控,应用整体的稳定性得到了提高

avatar

水平切分是按照某个字段的某种规则,把数据切分到多张数据表。一张数据表化整为零,拆分成多张数据表。

企业级后端架构

云计算

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

云计算的基础一个是虚拟化技术,一个是编排方案

  • 虚拟化技术:硬件(虚拟机)、操作系统(容器)、网络
  • 编排方案:虚拟机编排方案(OpenStack)、容器编排方案(Kubernetes)

架构方面:

  • IaaS(Infrastructure as a Service)
  • PaaS(Platform as a Service)
  • SaaS(Software as a Service)
  • FaaS(Function as a Service)

云原生

云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能,全称是云原生计算,是元计算发展到现在的一种形态,云原生的四个要点就是DevOps + 持续交付 + 微服务 + 容器

DevOps 是开发 (Dev) 和运营 (Ops) 的复合词,它将人、流程和技术结合起来,不断地为客户提供价值,DevOps 使以前孤立的角色(开发、IT 运营、质量工程和安全)可以协调和协作,以生产更好、更可靠的产品。通过采用 DevOps 文化、做法和工具,团队能够更好地响应客户需求,增强对所构建应用程序的信心,更快地实现业务目标。

avatar

企业级后端架构的挑战

  • 基础设施层面

    • 物理资源是有限的
    • 资源利用率受制于部署服务
  • 用户层面

    • 网络通信开销较大
    • 网络抖动导致运维成本提高
    • 异构环境下,不同实例资源水位不均

法一:离在线资源并池

核心收益:

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

在线业务的特点:

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

离线业务的特点

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

法二:自动扩缩容

核心收益:

  • 降低业务成本
  • 利用在线业务潮汐性自动扩缩容

法三:微服务亲合性部署

核心收益:

  • 降低业务成本

  • 提高服务可用性

  • 将满足亲合性条件的容器调度到一台宿主机

  • 微服务中间件与服务网格通过共享内存通信

  • 服务网格控制面实施灵活、动态的流量调度

法四:流量治理

核心收益:

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

法五:CPU水位负载均衡

核心收益:

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

继续努力!