定价

借助红帽 OpenShift 在 Kubernetes 上运行 Spring

复制 URL

红帽® OpenShift® 帮助您开发并运行 Kubernetes 原生 Spring 和 Spring Boot 应用。

在 OpenShift 上运行 Spring 实训

Spring 框架是最受欢迎的 Java 框架 之一,用于构建基于分布式微服务架构的应用。Spring 面向基于 Java 的应用的编程和配置模型侧重于“管道建设”, 以便开发人员可以专注于应用级业务逻辑,无需为具体部署环境费心。然后,通过 Spring Boot 可轻松地将应用打包并配置到一个独立的可执行应用中,该应用可作为容器轻松部署到 Kubernetes

Kubernetes 原生 Spring

与许多传统的 Java 框架一样,Spring 本身并不“知道”它在一个类似 Kubernetes 的平台上的容器中运行。Spring 框架包含许多可让构建和部署分布式应用更加轻松的组件,例如 Spring Boot、Spring Cloud、Spring Web 以及执行服务发现、负载平衡、请求路由等任务的许多其他组件。借助 Kubernetes,其中的许多任务都可以委托给底层容器平台,以生成一个可更高效地与运行平台集成的应用。使用这些经过优化的代码路径构建 Spring 应用对发挥出 Spring 和 Kubernetes 组合的威力至关重要。

红帽资源

Spring 应用可依靠 Kubernetes 和部署到它的功能来提供所需的云服务,从而支持在 Kubernetes 上进行高效开发。这包括消息队列、数据库、永久储存和缓存等服务。

服务注册表

微服务架构通常意味着单个服务的动态扩展,在私有云、混合云或公共云中,主机的数量和地址不可能一定能提前预测或静态配置。在 Kubernetes 中,服务复制和扩展是一个核心功能。这意味着客户端不需要保留缓存,也不需要说明服务注册表本身失败的原因。例如,Netflix Ribbon(通常与 Spring 应用一起使用)可通过声明性配置为使用 Kubernetes,而不是服务注册表,期间无需更改任何代码。

负载平衡

对于 Spring 应用中无状态服务的客户端调用,高可用性(HA)意味着可转换为从服务注册表查询服务的需求,并在可用的实例中进行负载平衡。Kubernetes 提供了一个单一的服务地址,系统将对调用进行负载平衡,并重定向到一个相应的实例。在 Kubernetes 集群中,该服务名称解析到这个集群 IP 地址,并可用于访问负载平衡器。如果调用来自外部并且不希望通过路由器,可以为该服务配置一个外部 IP 地址。

容错

微服务高度分散的性质意味着远程调用风险更高,因为此类远程调用的数目在增加。过去,实施容错模式(就像断路开关)的负担落在了开发人员身上。不过,类似 Istio(实施了服务网格)的项目可以减轻这一负担,让开发人员可以更好地控制集群上运维的 Spring 服务。

外部化配置

外部化配置管理解决方案可以为典型的配置文件、命令行参数和环境变量组合提供一个巧妙的备选方案,从而让应用更具可移植性,在响应外部变化时更灵活。Kubernetes ConfigMap 可用于存储详细信息,例如,具体的属性,也可用于存储粗略的信息,例如整个配置文件或 JSON blob。它们提供了将配置数据注入容器的相关机制,从而保证配置独立于 Spring 应用,但又可通过 @ConfigProperty 这样的注释访问 Spring 应用。

分布式跟踪和应用指标

正是因为这些优势,我们很难对微服务架构进行分析和故障排除。每个业务请求都会生成对各个层的个别服务的多个调用。分布式跟踪将所有个别服务调用绑定在一起,并通过一个生成的唯一 ID 将它们与业务请求关联起来。此外,指标让 Spring 应用可以显示应用级别数据,以支持对应用状态的精细检查。Jaeger 等追踪工具,与采用 PrometheusGrafana 的指标堆栈进行组合,可为监控和排除 Kubernetes 上的 Spring 应用故障打下坚实基础。

随着 Spring 应用发展成为大量的分散服务,管理这些服务之间的通信和保证其安全性变得更加困难。红帽 OpenShift红帽运行时进行组合,为 Spring 开发人员提供在行业领先的容器和 Kubernetes 混合云平台上大规模构建和管理 Spring 应用所需的工具、框架和原生 Kubernetes 集成。

Spring 开发人员使用红帽 OpenShift 好处多多。其中包括:

对于现有的和全新 Spring 应用,在 OpenShift 上使用 Spring Boot 可为开发人员提供“在 Kubernetes 上运行 Spring”的原生体验。

  • 支持使用 Spring 和 Spring Boot 构建云原生应用
  • 集成了取代传统独立后备服务的 Kubernetes 功能
    • 外部化配置:Kubernetes ConfigMap,并集成了 Spring Cloud Kubernetes
    • 服务发现:Kubernetes 服务
    • 负载平衡:Kubernetes 复制控制器
    • 自动重启:Kubernetes Health Probes,并集成 Spring Actuator
    • 指标:Prometheus、Grafana,并集成 Spring Cloud Sleuth
    • 使用 Istio 和 Jaeger 进行分布式跟踪
  • 通过红帽 OpenShift 开发工具快速构建新的 Spring 项目,在您喜欢的 IDE 中访问熟悉的 Spring API,并部署到红帽 OpenShift

红帽 OpenShift红帽应用服务中使用熟悉的 Spring API,并获得底层 Kubernetes 平台和服务的优势。

利用 Spring 知识开发采用最新技术的现代应用。

  • 采用 Camel-KKafka 的无服务器 Spring 应用
  • 使用熟悉的 Spring API 构建采用 Quarkus 的容器原生 Java 应用
  • 采用 Kogito 的原生 Kubernetes 业务流程
  • 使用 Kubernetes 操作器可以提供一种自然的方式来创建 Spring 应用,并通过 Halkyon 使用原生 Kubernetes API 并将这些应用关联在一起
中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

红帽 OpenShift 为平台工程师添翼加速

红帽 OpenShift 可为平台工程团队提供高效构建和管理内部开发人员平台所需的工具。

借助红帽 OpenShift 布局边缘计算能带来哪些优势?

红帽 OpenShift 可在边缘计算环境中使用 Kubernetes 所有功能,具备云服务、虚拟化、微服务和容器化出色的灵活性,与边缘计算的速度和效率完美结合,从而增加功能、减少延迟、扩展带宽,最大限度地利用您的基础架构。

CoreOS 是什么?与 CoreOS 容器 Linux 的区别

CoreOS 创立于 2013 年,以提高互联网的安全性和可靠性为使命,让各公司能够在任何环境下安全可靠地运行其应用。红帽在 2018 年初收购了 CoreOS ,随后分享了产品和项目集成计划。

红帽 OpenShift 相关资源

特色产品

  • 红帽 OpenShift

    一个统一的应用开发平台,让您基于自选的混合云基础架构大规模构建、现代化和部署应用。

  • 红帽应用基础

    一组旨在帮助构建、部署和运行应用的组件。包括红帽 3scale API 管理、红帽数据网格、红帽 JBoss Web 服务器、红帽 AMQ、红帽开源技术构建以及应用迁移工具包。