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 文件的地方。存储库可以是“本地”或“远程”。 远程存储库是只能通过 HTTP 访问的存储库。 只要遵循某些目录和文件命名约定,任何从文件系统提供文件的任意 Web 应用程序都可以用于托管远程存储库。 本地存储库由 Skipper 服务器管理,并由关系数据库支持。 Skipper 允许您搜索托管在存储库中的包。
在安装、升级或回滚包后,将在 Skipper 中创建版本。 发布具有唯一的名称,您提供该名称以执行发布作,例如升级、回滚和删除。 该版本包含完全解析的模板文件(也称为应用程序清单),这些文件表示已部署到平台的内容的最终描述。 还可以获取特定版本的状态和应用程序清单。
发布工作流是将应用程序从一个版本升级或回滚到另一个版本所采取的步骤。 用 Skipper 的术语来说,这是我们在平台上从一个版本到另一个版本的方式。
升级可能会保留相同的版本,但更新应用程序属性。 |