关于云原生和微服务

云原生技术使组织能够在新式动态环境(如公有云、私有云和混合云)中构建和运行可缩放的应用程序。 容器、服务网格、微服务、不可变基础结构和声明性 API 便是此方法的范例。

云原生系统采用微服务,而微服务是一种用于构造新式应用程序的常用体系结构样式。

微服务

  • 各自都在较大的域上下文中实现特定业务功能。

  • 各自都自主开发,可以独立部署。

  • 各自都是独立的,封装其自己的数据存储技术、依赖项和编程平台。

  • 各自都在自己的进程中运行,并使用 HTTP/HTTPS、gRPC、WebSocket 或 AMQP 等标准通信协议与其他微服务进行通信。

  • 它们组合在一起形成应用程序。

为何使用微服务?

微服务提供敏捷性。

在本章的前面部分,我们将构建为整体结构的电子商务应用程序与采用微服务的应用程序进行比较。 在示例中,我们看到了一些明显的好处:

  • 每个微服务都有自治生命周期,可以独立发展并频繁部署。 不必等待每季度发布一次才能部署新功能或更新。 可以更新实时应用程序的小区域,降低中断整个系统的风险。 无需完全重新部署应用程序即可进行更新。

  • 每个微服务都可以独立缩放。 你可以仅横向扩展需要更多处理能力才能满足所需性能级别和服务级别协议的服务,而不是将整个应用程序作为单个单元进行缩放。 精细缩放可使你更好地控制系统,并且有助于降低总体成本,因为是缩放部分系统(而不是所有内容)。

开发微服务

可以在任何新式开发平台上创建微服务。

spring-boot 平台是一个很好的选择。 它免费且开放源代码,有许多可简化微服务开发的内置功能。 Java 是跨平台的。 可以在 Windows、macOS 和大多数 Linux 风格上生成和运行应用程序。