架构1-什么是架构|青训营笔记

71 阅读2分钟

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

本文主要是为了对架构进行一个初步了解

定义

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

重要性

架构相当于建房子时的地基,地基打得好大厦才能建得高。站在巨人的肩膀上才能看得更远。

单机

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

优点:

结构简单,易部署。

问题:

  • C10K 问题
  • 运维需要停服。

单体架构

分布式部署。每个进程还是做全部的工作,但是使用多个进程。

垂直应用架构(垂直切分)

按应用垂直切分的单体

优点:

  • 水平扩容
  • 运维不需要停服

问题

  • 每个进程职责还是 太多,开发效率不高
  • 爆炸半径大

因此想到应该分工协作。

SOA、微服务

定义:

SOA:(Service-Oriented Architecture)。将应用的不同功能单元抽象为服务,同时它需要定义服务之间的通信标准。

微服务架构:SOA 的去中心化演进方向。 服务拆分得更加细微。

问题

  1. 数据一致性:怎么在不同的服务之间保证数据传递的一致性。
  2. 高可用:这么多服务如何进行合作。
  3. 解耦vs过微:服务拆分得过多会使得成本增加,这样是否值得。

image.png

总结

架构的演化是由于需求量越来越大,需要更多的服务,同时功能越来越复杂,需要分工合作。因此产生了先竖着切使得服务能力增加。后面又横向切,使得服务越来越独立丰富。