您的应用程序由Cloud Foundry Application Runtime来管理,您的容器则由Cloud Foundry Container Runtime来管理。那么对于Runtime这一层应该由什么工具来管理呢?下面就来认识一下Cloud Foundry BOSH吧。

为您的云提供动力、实现自动化运行

CF BOSH是支持各种云的开源工具,可用于复杂分布式系统的发布工程、部署和生命周期管理。虽然大多数Cloud Foundry部署都使用CF BOSH,不过如果您是一位开发人员,您或许未必直接使用过CF BOSH。大部分分布和管理Cloud Foundry的环境都使用CF BOSH来全面管理环境,以便您专注于编写代码,创造商业价值。

作为开发人员,您只需编写代码并将其推送到运行平台。CF BOSH会在后台工作,确保正确配置环境以接受软件,在组件更改时持续更新,并重新配置,使其在定义环境下按照预期的方式进行调整。

凭借其灵活性和强大的功能,Google和Pivotal都使用CF BOSH作为Kubo项目的核心。这个项目现在称之为基于Kubernetes的Cloud Foundry Container Runtime。

Cloud Foundry BOSH工作机制简介

CF BOSH作为一个工具,能够为需要管理的内容准备基础架构。CF BOSH支持持续交付等软件工程的最佳实践。它通过简单的命令对复杂的分布式系统进行自动更新,从而完成发布软件。

分布式系统是在不同虚拟机上运行的各个软件组件的集合,它们作为一个更大的系统共同工作。每个组件都有自己的生命周期,由不同的开发者根据自己的时间表编写,但每个组件都是整体的一部分。无论是处理虚拟机还是容器,或是部署裸机,CF BOSH均采用相同的方法。

以下内容介绍了CF BOSH如何使用Stemcell、Release和部署清单,来保持云环境的完整性。

BOSH Diagram

BOSH将基础镜像称为Stemcell 一个 Stemcell类似于用于创建虚拟机的黄金操作系统映像。它将基本操作系统与部署中捆绑的其他软件包隔离开来。在bosh.io上,您可以找到BOSH项目中使用的不同的stemcell。

Release 是Stemcell之上的一个层次,它描述了应该部署哪些软件以及应该如何对其配置。它包含配置属性和模板、启动脚本、源代码、二进制工件等所有用来以重现的方式创建和部署软件所需的一切。CF BOSH release 负责对软件进行打包,之后由CF BOSH进行部署部署。

部署清单是一个yaml文件,它描述了应该将哪些CF BOSH部署到哪个云,以及如何部署它们。部署清单描述了希望在哪些基础架构上部署,以及应该部署的方式。CF BOSH使用此清单文件部署到目标基础结构,监视虚拟机或容器的运行状况,并在必要时进行修复。

生活在多个云部署的世界

由于采用了Cloud Provider Interface模型,因此CF BOSH成为了Cloud Foundry多个云部署功能的核心。CPI对CF BOSH其余部分存在的基础设施差异进行提取。CPI是一个CF BOSH用于与基础架构交互以创建和管理Stemcell、虚拟机和磁盘的应用接口。通过CPI,CF BOSH可以将软件部署到多个云 ,包括AWS、Azure、谷歌云、OpenStack、VMware vSphere等等。

管理复杂分布式系统生命周期的强大工具

CF BOSH在创建之初,只是一个用作部署Cloud Foundry Application Runtime的工具,但它的功能其实非常强大。CF BOSH被用在其他环境中时可以打包和管理各种软件。与专注于第一天任务的配置管理工具(例如配置和运行软件)不同,CF BOSH的优势在于它可以同时管理第一天和第二天的操作任务(例如将软件升级到新版本,测试整个系统从旧版本到新版本的升级,调整主机大小,并处理安全更新),整个过程不会中断用户的使用,稳定可靠,始终如一。

Icon Image

马上了解BOSH

如果您从未部署过或听说过BOSH,下面的分步指南将帮助您快速上手。

阅读教程

Icon Image

BOSH文档

BOSH背后的开源工程团队维护着一个文档站点,其中包含您想要了解的所有内容。

查看文档