后端架构初探 | 青训营笔记

124 阅读5分钟

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

前言

主要内容

  1. 什么是架构?
  2. 企业级后端架构剖析
  3. 企业级后端架构的挑战
  4. 后端架构实战

详细内容解析

01.什么是架构

--定义

架构又称软件架构

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

简单来说,实现一个软件可以采用很多方法,架构就在方法选择上起着至关重要的指导作用。

--单机架构

image.png

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

优点:简单

问题:运维需要停服

-单体架构与垂直应用架构

把进程部署到多个机器上,并引入负载均衡层,经过垂直切分,就变成了单体架构

负载均衡高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。说白了,可以理解成一个分配任务的leader

垂直切分根据业务来拆分数据库,同一类业务的数据表拆分到一个独立的数据库,另一类的数据表拆分到其他数据库。垂直切分可以降低单节点数据库的负载。原来所有数据表都放在一个数据库节点上,无疑所有的读写请求也都发到这个MySQL上面,所以数据库的负载太高。如果把一个节点的数据库拆分成多个MySQL数据库,这样就可以有效的降低每个MySQL数据库的负载。

image.png 单体架构:分布式部署 垂直应用架构:按应用垂直切分的单体 优点:

  • 水平扩容
  • 运维不需要停服 问题:
  • 职责太多,开发效率不高
  • 爆炸半径大(测试造成的任何损坏或影响都称为“爆炸半径”)

--SOA微服务与水平切分

水平切分: 是按照某个字段的某种规则,把数据切分到多张数据表。一张数据表化整为零,拆分成多张数据表,这样就可以起到缩表的效果了。

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

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

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

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

image.png

最后,我们还需要回答垂直切分和水平切分所产生的一系列问题:

  • 由单机部署演进来的分布式架构,如何解决数据─致性
  • 服务越来越多,依赖越来越复杂,如何做到高可用
  • 一个团队甚至一个人可能同时管理多个微服务,如何运维
  • 微服务的目标是强化单一职责,控制爆炸半径,如何在解耦和『过微』之间取舍

02. 企业级后端架构剖析

--云计算

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

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

架构方面:

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

--云原生

image.png 云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能,全称是云原生计算,是元计算发展到现在的一种形态,有如下几种代表技术:

  • 容器化
  • 服务网格
  • 微服务
  • 不可变基础架构
  • 声明式API

云原生主要涉及四个大方面:

  • 弹性资源:基于虚拟化容器以及灵活的编排调度机制,可以为云服务提供快速扩缩容能力,而且极大程度地提高了物理资源的利用率。在这方面, kubernetes技术已经成为了业界的标准
  • 微服务架构:还记得前面我们聊到的微服务架构么?没错,它也是云原生的重要基石之一。依托于功能单元解构,使得云服务具备了快速迭代的可能,业务得以迅速发展;统一的通信标准能够帮助越来越多的组件加入到云原生的大家庭,同时也使得各组件之间的交互变的更容易

image.png

  • DevOps: DevOps 是开发 (Dev) 和运营 (Ops) 的复合词。设计->开发->测试->交付->开发->测试->交付,自动化的流程使得软件的工作流程更高效,将微服务架构的优势发挥的淋漓尽致

image.png

  • 服务网格:如果说微服务架构的重要进步,是将庞大的单体服务按照业务功能解耦开来,那么,服务网格的重要进步就是将业务逻辑与网络通信和治理解耦开来。业务不再需要关心异构系统中RPC中间件治理能力的不统一,也使得复杂的治理能力的落地成为可能

image.png

“云原生蛋糕店”

image.png

03. 企业级后端架构的挑战

未完待续。。

04. 后端架构实战

未完待续。。

实战部分

总结

后面太抽象了,笔者没弄懂,等有经验了回来再看看。 image.png