了解什么是微服务架构

让我们从定义什么是微服务开始。 它们是一种将大型软件项目分解为松散耦合模块的方法,这些模块通过简单的应用程序编程接口 (API) 相互通信。

近年来,微服务变得越来越流行。 它们是模块化架构风格的一个例子,基于将大型软件项目分解为更小的、独立的、松散耦合的部分的理念。

这种架构风格因其在 API 管理和执行高度定义的应用程序和离散任务方面的动态和敏捷品质而在开发人员中受到重视。

简单来说,微服务只不过是另一种用于设计复杂应用程序的架构解决方案——主要是基于 Web 的。 

在本文中,我们将了解微服务架构提供哪些优势。 

跟进!

微服务背后的理论

任何类型的架构解决方案背后的主要驱动力之一是可扩展性。 软件架构和开发领域的许多专业人士都被一本名为 可扩展性的艺术

这本书的定义模型是 比例立方体,它描述了三个尺寸标注维度:

如您所见,X 轴代表应用程序的水平缩放(我们已经看到,即使使用单体架构也是可能的),Z 轴代表应用程序通过拆分类似事物的缩放。 

使用分片的概念可以更好地理解 Z 轴的概念,其中数据被分区,应用程序根据用户输入将请求重定向到相应的分片(就像数据库通常所做的那样)。

Y 轴代表功能分解。 在这种方法中,可以将多个功能视为独立的服务。 

开发人员可以独立部署各自的服务,而不是在所有组件都可用时部署整个应用程序。 

这不仅改善了开发人员的时间管理,还为您提供了更大的灵活性来更改和重新部署您的模块,而无需担心应用程序的其余组件。

微服务架构的优势

微服务的优势似乎足以说服亚马逊、Netflix 和 eBay 等一些大公司采用这种方法。 

与更单一的设计框架相比,微服务提供:

  • 更好的故障隔离: 较大的应用程序可以在很大程度上不受单个模块故障的影响。
  • 消除供应商或技术依赖: 微服务提供了根据需要在单个服务上尝试新技术堆栈的灵活性。 不会有太多的依赖问题,并且逆转更改变得容易得多。 使用更少的代码,就有更多的灵活性。
  • 易于理解: 更简单地说,开发人员可以更好地理解服务的功能。
  • 更小、更快的部署: 更小的代码库和范围 = 更快的部署,这也让您开始探索持续部署的好处。
  • 可扩展性: 因为您的服务是独立的,所以您可以更轻松地在适当的时候扩展您最需要的服务,而不是整个应用程序。 如果做得正确,这会影响成本节约。

微服务部署

现在我们了解了微服务,它们是如何部署的?

部署基于微服务的应用程序的最佳方式是在 集装箱,它们是完整的虚拟操作系统环境,为进程提供隔离和对底层硬件资源的专用访问。 解决方案中的知名人士之一 容器 目前是 码头工人.

来自亚马逊网络服务 (AWS) 等基础设施提供商的虚拟机也可以很好地用于微服务部署。

随着应用程序开发趋势的不断发展,使用微服务还是利用传统的单体架构之间的争论只会变得更加明显。 最后,开发人员必须尽职尽责,并了解什么适用于他们的特定用例。

对于较小的公司,从单体应用程序开始可能更简单、更快、更便宜——如果产品还没有很成熟,它仍然可以在适当的时候迁移到微服务。 

拥有数百万用户的大型企业是微服务最佳用例的明显例子,因为它们需要确保增加的模块化可以提供的正常运行时间和可扩展性。

→ 您想深入探讨微服务架构的主题吗? 立即下载电子书 AWS 上的微服务架构简介!

AWS 微服务电子书
Compartilhar