作为开发者,您的目标是编写出色的代码并解决业务问题。效率对开发者是一个重要部分,但在团队中保持高效并不仅仅取决于您的头脑。您需要正确的工具和技术才能快速开展工作,创建最佳应用程序。

将新工具和框架集成到某种平台中的挑战可能会分散您的精力,让您无法集中全力完成解决业务问题这一主要任务。虽然 Kubernetes 已成为广受开发者欢迎的平台,但它本身并不是一个完整的开发平台。

您如何才能获得所需的基于容器的开发平台,一站式整合架构师、运维人员和开发者的需求?您可以自行构建,但这需要花费时间、资源,而您的团队目前也可能并不具备必要的知识。

这就是 IBM 基于开源的全新产品的用武之地。IBM Cloud Pak for Applications (ICPA) 将基于 Kubernetes 的 Red Hat OpenShift 平台与开源项目 Kabanero 结合在一起,帮助企业更快速、更轻松地针对 Kubernetes 和 Knative 开发和部署应用程序。

在这篇博客中,我们仔细研究了 ICPA 所基于的底层开源软件及其解决的一些常见开发问题。

问题探究

团队通常采用 Kubernetes 是为了简化开发和部署,并获得容器化的所有好处。但他们并未考虑到容器环境所带来的复杂性。虽然 Kubernetes 在管理服务器基础架构上的容器放置、将工作路由到这些容器以及在发生故障后恢复正常等方面表现出众,但仅凭它还无法为尝试构建云原生应用程序的开发者和架构师提供全面支持。

为开发团队构建平台是一项重大任务。您需要做到事无巨细、面面俱到 – 从选择和集成正确的开源项目集,到选择 IDE 和构建工具、管道、源代码控制、安全扫描和测试,无一遗漏。添加更新和安全修订时,这会成为一项全职开发工作。我们的目标是解决这些问题并降低复杂性,进而提高团队中所有开发者的工作效率。 那么如何才能做到呢?

首先,我们要认识到,具有一定程度的一致性当然很好。一致的工具可帮助团队有效积累知识、分享知识。一致的工具最终可促成人人都能理解的一致交付流程,而一致的流程则可以降低人为错误风险。自动化则可以成为制胜法宝。

改善组织各部分和团队内部之间的协作,对于提高生产力至关重要。架构师和开发者需要采用一致的机制来确定他们的技术决策,然后在更广的范围内进行分享。

对于许多团队而言,使用容器是朝这个方向迈出的一步,并且也是在与 Kubernetes 配对使用。然而,容器的自由度和灵活性意味着人们最终使用的容器往往太多。选择过于丰富最终带来了复杂性、不一致和低效率这些问题。

原型顺畅地过渡到生产

Kabanero 简化了构建基于容器的应用程序以部署到混合云上这一任务。Kabanero 使用 OKD(Red Hat OpenShift 的上游项目)在 Kubernetes 上为您奠定了稳固而可靠的基础。 在此基础上,添加必要的基础架构,进而提供持续集成/持续交付 (CI/CD) 管道和基本服务,例如,日志记录、监控、服务网格和 Knative 无服务器功能。到目前为止一切都还不错,但是,是什么让 Kabanero 出类拔萃呢?

稍后我们将更详细地介绍具体的开发工具,在这之前,我们先要了解 Kabanero 如何提供一种通用方法,通过 IDE 扩展所利用的一组基于容器的一致工件来定义、管理和构建应用程序。

Kabanero 引入了“集合”的概念。集合可将语言、运行时和框架选择以及允许其插入 Kabanero 基础的基础架构绑定结合在一起。集合为捕获开发者和架构师共同制定的决策提供了一致的方法。通过一组预定义的集合,在集成基础架构时就避免了无谓的猜测。

集合的关键组件是 Appsody 堆栈。

Appsody 及其相关的命令行工具 (CLI) 为创建基于容器的应用程序提供了基本构建块。Appsody 堆栈结合了容器中的运行时和框架以及通用代码和服务。例如,Java MicroProfile 堆栈包括预定义的运行状况和度量标准端点,因此使用该堆栈构建的所有应用程序都具有即取即用的通用功能。

开发者可以快速采用堆栈,并开始构建新的云原生应用。Appsody 使用预定义的堆栈不断地为您的应用重建容器镜像。因此,您的应用始终构建在最新的堆栈上,并且可以自动准备在容器中进行测试,就像它在生产中运行一样。

通过管道自动化和 IDE 集成更快速地构建应用

Kabanero 基础架构与 GitHub 集成,因此提交代码会触发自动化 CI/CD 管道。通过使用属于 Kabanero 集合的预定义集成点,管道基础架构会针对最新版本的 Appsody 堆栈来构建应用程序代码。

由于应用使用的是通用堆栈,因此开发者可以确信应用程序在生产环境中的运行状况与在开发环境中并不会有什么不同。这就提高了一致性,降低了代码进入生产环境时出错的风险。如果您需要随时待命,但又不想在半夜被叫醒的话,这非常重要!

Kabanero 不仅仅是 Kubernetes 上的基础架构。它最初开始于与 Eclipse 和 VSCode 等流行的 IDE 集成的开发者工具。Eclipse Codewind 项目从一开始就帮助开发者在容器中构建云原生微服务和基于功能的应用程序。它提供能够理解 Appsody 堆栈的扩展,因此您可以使用预定义的堆栈开始构建,并直接在 IDE 中从 Codewind 的自动容器构建获益。Eclipse Codewind 中的性能仪表板可帮助您在开发周期的早期立即开始了解新应用或服务的性能特征。

从开源入手,按需添加支持

Kabanero、Appsody 和 Codewind 以及创建 Kabanero 基础的其他基础架构组件全都是开源的。有了这些技术,团队就可以更加方便快捷地专注于解决业务问题,而不是基础架构决策。

当您的团队需要支持时,可以通过 IBM Cloud Pak for Applications 获得支持。IBM Cloud Pak for Applications 可以集成、保护和认证这些开源项目,为您提供一站式解决方案,帮助您在云原生模型中重构应用程序。通过使用 ICPA,只需稍作修改便可将现有应用程序移至基于 Kubernetes 的更高效的运作模型中。您的开发者也可以回过头来编写能够解决实际业务需求的出色代码。

了解更多信息

参考资源

本文翻译自:Modernize and containerize your apps with IBM Cloud Pak for Applications(2019-08-01)

加入讨论