架构初探 - 谁动了我的蛋糕 |青训营笔记

51 阅读3分钟

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

一 本节课主要内容

1. 什么是架构

2. 企业级后端架构剖析

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

4. 后端架构实战

二 本节课详细内容

架构

1. 基本概念

  • 架构,又称软件架构
  • 是有关软件整体结构与组件的抽象描述·用于指导软件系统各个方面的设计
通俗地说,架构是实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

1.1 架构的重要性?

地基没打好,大厦容易倒地基坚实了,大厦才能盖得高·站在巨人肩膀上,才能看得远

2.什么是架构,架构的分类

对于单机架构,我们需要一个流量分发的 “中转站”去实现,如图:

image.png

这种架构的优点是简单,缺点也显而易见 容易造成C10K问题,也就是说新到来一个TCP连接,就需要分配1个进程(或者线程)。进程又是操作系统最昂贵的资源,一台机器无法创建很多进程。如果是C10K,就要创建1万个进程,那么就单机而言,操作系统是无法承受的。运维的时候需要停服。

这个问题可以通过分布式部署的单体架构解决,如此实现了下列的架构形式

image.png

这样的效率还是有点低,师傅如果不是 “全栈”,就需要大堂经理去调配,如下图所示,垂直应用架构

image.png

这种架构的缺点是职责太多开发效率低,爆炸半径(影响)较大,如果我们从水平方向进行切分,即将做蛋糕的过程进行细分,又会如何?

SOA(Service-Oriented Architecture)实现了这一想法,它主要实现了

  1. 将应用的不同功能单元抽象为服务
  2. 定义服务之间的通信标准

如果对于SOA再进行演进,去中心化,就是微服务架构

image.png

架构的演进初衷:好比做蛋糕。

  • 需求量越来越大,终归要增加人手·越做越复杂,终归要分工合作
  • 架构的演进思路:就像切蛋糕。蛋糕越来越大,一口吃不下终归要切分。竖着切(垂直切分),横着切(水平切分)

企业级后端架构剖析

进行了一个云服务基础架构的阐述

  1. IaaS 买房子
  2. PaaS 全包
  3. SaaS 弹性资源平台构建的云服务
  4. FaaS 类似OJ平台,实现函数即可

云原生:可弹性扩展的应用

image.png 弹性计算资源类型;

  • 服务资源调度
  • 微服务:和面、雕花·大服务:烤箱
  • 计算资源调度
  • 在线:热销榜单·离线:热销榜单更新·消息队列
  • 在线:削峰、解耦·离线:大数据分析

弹性存储资源类型;。

  • 经典 对象:宣传视频 大数据:用户消费记录

  • 关系型数据库 收银记录.元数据 服务发现:蛋糕店通讯录.

  • NoSQL KV:来个xx蛋糕