Spring Cloud Skipper 概览
跳过器是一个轻量级工具,可让您发现 Spring Boot 应用程序并在多个云平台上管理它们的生命周期。 您可以将跳过器单独使用或将其与持续集成管道集成,以帮助实现持续部署的实践。
跳过器由一个服务器应用程序组成,该应用程序通过 HTTP API 公开。
shell 应用程序提供了易于使用的 命令 来与服务器交互。
服务器使用关系型数据库来存储状态。
在 REST API 指南 中可以找到调用 HTTP API 的文档。
跳过器中的应用程序被打包为包含模板配置文件和用于填充模板的默认值的软件包。 在安装或升级软件包时可以覆盖这些默认值。 跳过器提供了一种手段来协调应用程序在不同版本之间的升级/回滚过程,采取最小数量的操作将系统带入所需的状态。
Skipper的设计受到了Kubernetes生态系统中许多执行资源模板化和/或编排的项目的很大影响,因此项目名称带有航海灵感。
特别是,Helm向用户呈现熟悉的apt-get或brew安装体验的方法受到很大启发。
3. 功能
主要功能包括:
-
定义多个平台帐户,其中SpringBoot应用程序可以部署。 支持的平台是本地、CloudFoundry和Kubernetes。
-
替代包含描述如何将应用程序部署到平台的 Mustache 模板文件中的变量。
-
搜索现有应用程序的软件包仓库。
-
基于简单工作流升级/回滚一个包。
-
存储了表示特定版本已部署到平台的最终描述的已解决模板文件(又称“应用程序清单”)的部署历史记录。
-
使用独立的交互式 shell 或 HTTP API。
4. Concepts
主要概念包括 Platforms、Packages、Repositories、Releases 以及 Release Workflows。
平台是你的应用运行的地方。Skipper 1.0 支持通过使用 Spring Cloud Deployer 家族库来部署到平台的应用程序。这样可以让 Skipper 部署 Spring Boot 应用程序到 Cloud Foundry、Kubernetes,以及你的本地机。
| Spring Cloud Deployer 库对于 Apache YARN、Apache Mesos、Redhat Openshift 和 Hashicorp Nomad 在 1.0 中没有与 Skipper 一起捆绑。Donovan Muller 提供了对 Redhat Openshift 的支持。 |
软件包定义在平台上要安装的基本配方。一个软件包可以定义单个应用程序,也可以定义一组应用程序。它包含描述性元数据、Spring Boot可执行 JAR 的位置以及默认应用或部署属性。uber JAR 的位置可以是 Maven 仓库、Docker 注册表、文件位置或 HTTP 位置。软件包是一组被压缩成具有命名约定的文件的 YAML 文件(例如:name-version.zip)。
仓库 是用于托管软件包元数据和 zip 文件的位置。仓库可以是“本地”或“远程”。
远程仓库是指只能通过 HTTP 访问的仓库。
任何能够从文件系统提供文件的任意 Web 应用程序都可以用来托管远程仓库,只要遵循某些目录和文件命名约定即可。
本地仓库由 Skipper 服务器管理,并由关系型数据库支持。
Skipper 允许您搜索托管在仓库中的软件包。
发行版在安装、升级或回滚程序包后由 Skipper 创建。 发布具有您在执行升级、回滚和删除等发布操作时要提供的唯一名称。 发布包含最终描述已部署到平台的内容的完整解析模板文件,也称为应用程序清单。 您还可以获取特定发行版的状态和应用清单。
| 升级可能会保留相同的版本号,但会更新应用程序属性。 |