架构初探|青训营笔记

119 阅读4分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第五篇笔

1.什么是架构

架构的定义:是有关软件整体结构与组件的抽象描述,用户指导软件系统各个方面的设计.当实现一个软件有很多种方法的时候,架构能给我们一个很好的指导选择方法的作用。

架构的重要性:架构是一个软件系统的基础,是整个软件系统能够稳定运行的保障。

单机架构:

将所有的代码放在一个项目中,然后将这些项目部署在一台服务器,整个项目所有的服务都由这台服务器提供。这就是单机结构

优点:部署灵活,容易实现、方便管理,开发者以及运维人员只需要关注一台服务器就可以

缺点:

  • 1.系统的可靠性不高,一点本服务器宕机,将会导致整个数据的丢失。
  • 2.处理数据的能力弱,单机的处理能力是非常有限的,当业务增长到一定程度的时候,单机的资源将无法满足你的业务需求。
  • 3、风险较大,当数据出现洪水趋势增长,将会对服务器的处理能力有着巨大的压力,这是会给生产环境以及数据安全造成很大危险。
单体架构:

将所有功能分布式部署到不同的机器上,或者把功能做切分部署到不同的机器上。

优点:运维不需要完全停机,对于分布式架构来说只需要做到不全都停机就还有服务,对于垂直切分架构来说只需要把需要维护的功能停掉,其他照常。

问题:对于分布式架构,还是没有根本上解决职责太多的问题,当里面出现一些小问题的时候就会影响到整体的服务,对于垂直切分架构来说,单个功能还是属于单机架构,当这个服务出现问题这个服务就停了,没有替代方案。

SOA架构(面向服务的架构):

面向服务架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

微服务架构:

SOA的去中心化演进方向,对于SOA架构,我们在使用后发现这个通信标准很容易成为一个复杂的标准中心化,不利用设计和管理。所以我们在微服务架构中想解决这个中心化的问题。

1.云计算

云计算(cloud computing)是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。

2.云原生

Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。 更多服务部署到云上,容器是在操作系统中虚拟处理,实实现了容器之间的相互隔离, 且只有很低的开销, 应用和其依赖成为一个整体, 可以打包成镜像

3.总结

1.没有最好的架构,只有最合适的架构