Spring Cloud Skipper 概述
Skipper 是一个轻量级工具,可让您发现 Spring Boot 应用程序并在多个云平台上管理其生命周期。 您可以单独使用 Skipper,也可以将其与持续集成管道集成,以帮助实施持续部署的实践。
Skipper 由一个公开 HTTP API 的服务器应用程序组成。 shell 应用程序提供易于使用的命令来与服务器交互。 服务器使用关系数据库来存储状态。 REST API 指南中提供了调用 HTTP API 的文档。
Skipper 中的应用程序捆绑为包,其中包含模板化配置文件和用于填充模板的一组默认值。 您可以在安装或升级软件包时覆盖这些默认值。 Skipper 提供了一种在不同版本之间编排应用程序升级/回滚过程的方法,采用最少的操作集将系统置于所需状态。
Skipper 的设计受到 Kubernetes 生态系统中执行资源模板和/或编排的大量项目的影响,因此受航海启发的项目名称 Skipper 应运而生。
特别是,Helm 向用户提供熟悉或类似安装体验的方法产生了很大的影响。apt-get
brew
3. 特点
主要特点是:
-
定义多个平台帐户,可在其中部署 Spring Boot 应用程序。 支持的平台包括 Local、Cloud Foundry 和 Kubernetes。
-
替换 Mustache 模板化文件中的变量,用于描述如何将应用程序部署到平台。
-
在软件包存储库中搜索现有应用程序。
-
根据简单的工作流程升级/回滚包。
-
存储已解析模板文件(也称为“应用程序清单”)的历史记录,这些文件表示已部署到特定版本的平台的最终描述。
-
使用独立的交互式 shell 或 HTTP API。
4. 概念
主要概念包括 平台、 包、 存储库、 发布 和 发布工作流。
平台是运行应用程序的地方。Skipper 1.0 支持使用 Spring Cloud Deployer 系列库将应用程序部署到平台。 这样做可以让 Skipper 将 Spring Boot 应用程序部署到 Cloud Foundry、Kubernetes 和您的本地计算机。 您可以将单个 Skipper 服务器配置为部署到多个平台,并标识每个平台 通过唯一名称。
适用于 Apache YARN、Apache Mesos、Redhat OpenShift 和 Hashicorp Nomad 的 Spring Cloud Deployer 库则不是 与 1.0 中的 Skipper 捆绑在一起。Donovan Muller 为 Redhat OpenShift 提供了支持。 |
软件包定义了描述要在平台上安装的内容的基本配方。
包可以定义单个应用程序,也可以定义一组应用程序。
它包含描述性元数据、Spring Boot uber jar 的位置以及默认应用程序或部署
性能。
uber jar 的位置可以是 Maven 存储库、docker 注册表、文件位置或 HTTP 位置。
包是 YAML 文件的集合,这些文件被压缩到命名约定为 (例如: ) 的文件中。name-version.zip
myapp-1.0.3.zip
存储库是托管包元数据和 zip 文件的位置。存储库可以是 “local” 或 “remote” 。 远程存储库是只能通过 HTTP 访问的存储库。 只要遵循某些目录和文件命名约定,任何从文件系统提供文件的任意 Web 应用程序都可用于托管远程存储库。 本地存储库由 Skipper 服务器管理,并由关系数据库提供支持。 Skipper 允许您搜索存储库中托管的包。
安装、升级或回滚包后,将在 Skipper 中创建版本。 发行版具有唯一的名称,您提供该名称用于执行发行版操作,例如升级、回滚和删除。 该版本包含完全解析的模板文件(也称为应用程序清单),这些文件表示已部署到平台的内容的最终描述。 您还可以获取特定版本的状态和应用程序清单。
发布工作流是将应用程序从一个版本升级或回滚到另一个版本所采取的步骤。 用 Skipper 的术语来说,它是我们如何在平台上从一个版本转到另一个版本。
升级可能会保持相同的版本,但会更新应用程序属性。 |