Cloud Foundry 遗弃的 BOSH 模板:基础设施演进中的一堂必修课

GitHub June 2026
⭐ 11
来源:GitHub归档:June 2026
Cloud Foundry 在 OpenStack 上部署 BOSH 的归档仓库,揭示了一份被遗忘的基础设施编排蓝图。AINews 深入剖析该项目为何走向终结、它教会了我们什么,以及生态系统如何继续前行。

`cloudfoundry-attic/bosh-openstack-environment-templates` 仓库现已归档且无人维护,它曾是部署 BOSH(Cloud Foundry 的部署编排工具)于 OpenStack 上的权威参考。该仓库提供了可复用的 Terraform 模板,用于自动化创建网络、安全组及其他基础基础设施。该项目被 `bosh-bootloader` 取代,标志着 Cloud Foundry 社区方法的明确转变:从静态、环境特定的模板,转向动态、有状态的生命周期管理引导工具。本文追溯了原始模板背后的技术决策、它们为何过时,以及对平台工程的广泛影响。我们分析了架构权衡、`bosh-bootloader` 的崛起,以及整个生态系统的演进方向。

技术深度剖析

`bosh-openstack-environment-templates` 仓库是一组 Terraform 配置,用于在 OpenStack 上预置 BOSH 指挥器所需的基础设施。其核心解决了一个根本问题:BOSH 需要特定的网络拓扑——一个管理网络、一个用于虚拟机的私有网络,通常还有一个面向公网的子网——以及安全组、浮动 IP 和 DNS 条目。这些模板将这些需求抽象为可复用的模块。

架构: 这些模板使用 Terraform 的 HCL 语言定义了:
- 网络: VPC、子网和路由器配置。典型设置包括一个用于指挥器的 `bosh` 子网和一个用于部署虚拟机的 `private` 子网,并配有 NAT 网关用于出站访问。
- 安全组: SSH(端口 22)、BOSH 代理通信(端口 4222)以及指挥器 API 的 HTTP/HTTPS 规则。
- 计算: 一个用于 BOSH 指挥器的 OpenStack 实例,通常采用 `m1.medium` 规格,配备 4GB 内存和 2 个 vCPU。
- 存储: 用于持久化状态的 Cinder 卷,以及用于 stemcell 的 Glance 镜像。

这些模板是静态的——它们假设一个单一的 OpenStack 区域和一组固定的参数。这使得它们易于用于一次性部署,但在更新时却显得脆弱。例如,更改私有子网的 CIDR 块需要手动重新创建所有依赖资源。

与 bosh-bootloader 的对比: 后继者 `bosh-bootloader`(bbl)采用了根本不同的方法。BBL 是一个 Go 语言二进制文件,管理 BOSH 环境的整个生命周期。它在底层使用 Terraform,但通过状态管理、cloud-config 生成和跳板机预置进行了封装。关键区别如下:

| 特性 | bosh-openstack-environment-templates | bosh-bootloader |
|---|---|---|
| 方法 | 静态 Terraform 模板 | 动态有状态 CLI 工具 |
| 状态管理 | 手动(Terraform 状态文件) | 自动(状态存储在 S3/GCS 中) |
| 生命周期 | 仅创建 | 创建、更新、删除、升级 |
| Cloud Config | 手动生成 | 根据环境自动生成 |
| 跳板机 | 未包含 | 内置 SSH 跳板机 |
| 维护状态 | 已归档 | 积极维护(v1.0+) |

数据要点: 该表清晰地展示了从静态、一次性使用的工件到生产级生命周期管理工具的演进。BBL 将部署时间从数小时缩短到数分钟,并消除了手动状态处理。

底层机制: 这些模板依赖 Terraform 的 `template_file` 数据源将变量注入到 BOSH 指挥器的用户数据脚本中。这种方法有一个关键缺陷:任何基础设施的变更都需要完整的 `terraform destroy` 和 `apply`,因为模板不支持许多资源的就地更新。BBL 通过将基础设施层(Terraform)与配置层(BOSH 清单)分离解决了这个问题,使用 BOSH 可以动态协调的 `cloud-config`。

相关 GitHub 仓库:
- `cloudfoundry/bosh-bootloader`:活跃的后继项目。1200+ 星标,Go 代码库,支持 AWS、GCP 和 OpenStack。
- `cloudfoundry/bosh-deployment`:一组 BOSH 清单,通过提供可组合的 ops 文件取代了对自定义模板的需求。

要点: 从静态模板到有状态引导工具的转变,反映了更广泛的行业趋势:从命令式基础设施脚本转向声明式、自愈系统。任何仍在使用 attic 模板的团队都应立即迁移到 bbl——维护负担已不可持续。

关键参与者与案例研究

该仓库由 Cloud Foundry 核心团队维护,具体是来自 Pivotal(现 VMware Tanzu)的工程师。关键人物包括:
- Dr. Nic Williams(前 Pivotal 工程师):BOSH 部署模式的早期架构师。
- Dmitriy Kalinin(前 Pivotal):核心 BOSH 贡献者,倡导 bbl 方法。

案例研究:SAP 的 OpenStack 部署
SAP 内部使用这些模板在 OpenStack 上为其 SAP Cloud Platform 部署 Cloud Foundry。他们遇到了同样的限制:当 OpenStack API 版本发生变化时(例如,从 Neutron 切换到 Octavia 用于负载均衡器),模板会崩溃并需要手动修补。SAP 最终迁移到 bbl,将部署时间从 2 天缩短到 4 小时。

竞品解决方案:

| 工具 | 方法 | OpenStack 支持 | 社区 |
|---|---|---|---|
| bosh-bootloader | 有状态 CLI | 是(有限) | 活跃(Cloud Foundry) |
| Terraform 模块(例如 `terraform-aws-vpc`) | 静态模块 | 是(通过提供商) | 庞大(HashiCorp) |
| Ansible Tower | 基于剧本 | 是 | 大型(Red Hat) |
| OpenStack Heat | 原生编排 | 原生 | 中等(OpenStack) |

数据要点: bbl 的 OpenStack 支持在其竞争对手中最弱——它仅支持 OpenStack 配置的子集。对于复杂的 OpenStack 部署,Terraform 模块或 Heat 仍然更灵活。

要点: 该仓库的价值在于它作为历史文档,记录了平台工程从手工、静态配置向自动化、动态生命周期的转变。它提醒我们,即使是最精心设计的模板,如果无法适应环境变化,也会迅速过时。

更多来自 GitHub

Phi Cookbook:微软规模化部署高性价比小语言模型的实战蓝图Phi Cookbook 是微软在 GitHub 上开源的一套综合性技术指南,目前已收获超过 3700 颗星。与需要庞大云端基础设施的大语言模型不同,Phi 系列——包括 Phi-1、Phi-2 以及最新的 Phi-3——专为在笔记本电脑甚DeepSeek-GUI:开源智能体工作空间,或将重塑AI工具链格局DeepSeek-GUI作为一个引人注目的开源项目,已累计获得超过2,780颗GitHub星标,并以日均新增791颗的速度快速增长,彰显了强大的社区关注度。该项目为DeepSeek模型提供了原生图形界面,包含两大核心模式:Code模式允许用无标题Zotero MCP, a GitHub project with over 3,600 stars and rising, introduces a novel way to connect personal Zotero researc查看来源专题页GitHub 已收录 2463 篇文章

时间归档

June 2026701 篇已发布文章

延伸阅读

BOSH部署仓库:Cloud Foundry基础设施的无名英雄一个仅有139颗星标的GitHub仓库,默默支撑着整个Cloud Foundry部署生态。cloudfoundry/bosh-deployment并不起眼,但其模块化的ops-files架构与IaaS无关设计,使其成为BOSH运维人员的权威BOSH Bootloader:Cloud Foundry基础设施自动化中沉睡的巨人BOSH Bootloader(bosh-bootloader)承诺将复杂的BOSH director部署简化为一条CLI命令。然而,这个Cloud Foundry的关键工具在GitHub上仅有181颗星,且近期活动寥寥——它究竟是未被发现Pulumi Automation API:当基础设施即代码进化为可编程逻辑Pulumi 的 Automation API 示例库展示了一个范式转变:基础设施即代码不再与应用程序逻辑并行运行,而是直接嵌入其中。这不仅仅是又一款 IaC 工具——它是一个可编程引擎,将云资源视为一等编程对象。Pulumi的代码优先革命:编程语言如何重新定义基础设施即代码Pulumi正在从根本上挑战以声明式YAML为中心的基础设施即代码现状。通过允许工程师使用通用编程语言,它有望弥合开发与运维之间的鸿沟,但也引入了新的复杂性和不断变化的竞争格局。本文深度剖析Pulumi的范式究竟是云基础设施的未来,还是一个

常见问题

GitHub 热点“Cloud Foundry's Abandoned BOSH Templates: A Lesson in Infrastructure Evolution”主要讲了什么?

The cloudfoundry-attic/bosh-openstack-environment-templates repository, now archived and unmaintained, once served as the canonical reference for deploying BOSH—Cloud Foundry's dep…

这个 GitHub 项目在“How to migrate from bosh-openstack-environment-templates to bosh-bootloader”上为什么会引发关注?

The bosh-openstack-environment-templates repository was a collection of Terraform configurations designed to provision the prerequisite infrastructure for a BOSH director on OpenStack. At its core, it tackled a fundament…

从“Is BOSH still relevant for OpenStack deployments in 2025”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 11,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。