架构剖析及设计 | 青训营

74 阅读3分钟

架构剖析及设计

架构

定义

架构,又称软件架构,

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

分类

单机架构

软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器

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

  • 单体垂直切分:把进程部署在多个机器上,并引入负载均衡层,使得任务能够并行地进行,提高了效率
  • 垂直应用架构:把不同应用的代码从之前一个大的进程中拆分出来,尝试解决单机服务的水平扩容、运维停服问题

SOA、微服务 | 水平切分

SOA,即Service-Oriented Architecture,面向服务的架构。它将应用的不同功能单元抽象为服务,并定义了服务之间的通信标准

微服务架构则是SOA的去中心化演进方向

由此带来的好处:

  1. 不同模块的工程师可以专注于本模块的业务逻辑,显著提高开发迭代效率
  2. 各服务独立运维,变更操作的影响面可控,提高应用整体的稳定性

企业级后端架构剖析

云计算

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

架构

  • IaaS, Infrastructure as a Service

    基础设施——网络,计算,存储

  • PaaS, Platform as a Service

    平台——服务器,应用框架,编程语言

  • SaaS, Software as a Service

    软件——应用

  • FaaS, Function as as Service

云原生

云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。

2023-08-28-20-17-14-image.png

它的代表技术有:容器化、服务网格、微服务、不可变基础架构、声明式 API

基于这些技术的云服务容错性好、易于管理、具备较好观测性。结合可靠的自动化机制,服务可以轻松应对频繁和可预测的重大变更

弹性资源

弹性计算资源

弹性计算资源类型包含:服务资源,计算资源和消息队列

  • 服务资源包括微服务和大服务

  • 计算资源分为离线和在线

  • 消息队列

    • 在线:削峰、解耦
    • 离线:大数据分析
弹性存储资源

弹性存储资源支持多种类型数据的存储,提供包括对象存储、大数据存储、关系型数据库、元数据以及NoSQL。其意义是将存储资源当作服务向外提供

DevOps

DevOps是一组过程、方法与系统的统称,用于促进开发技术运营质量保障部门之间的沟通、协作与整合。

DevOps 贯穿整个软件开发周期,结合自动化流程,提高软件开发和交付的效率