Apache Brooklyn 1.1.0 介绍与选型指南
基于官方资料的 Apache Brooklyn 1.1.0 认知篇:实体/蓝图/位置/策略模型、YAML 快速上手及声明式编排同类选型对比。
Apache Brooklyn 1.1.0 介绍与选型指南
一、信息基准
本文为认知篇,内容全部基于官方公开资料联网查证,未做本地安装实测。关键论断随文标注来源,统一查询日期为 2026-10-18。
| 事项 | 说明 |
|---|---|
| 查询日期 | 2026-10-18 |
| 版本依据 | ASF 官方下载目录 downloads.apache.org/brooklyn/ 下当前存在 apache-brooklyn-1.0.0/ 与 apache-brooklyn-1.1.0/ 两个版本目录,1.1.0 为最新;官方首页 Get Started 示例亦以 apache-brooklyn-1.1.0 发行包为例(来源:https://downloads.apache.org/brooklyn/ 与 https://brooklyn.incubator.apache.org/ ,2026-10-18 查询) |
| 项目状态 | 项目官网为 brooklyn.incubator.apache.org(孵化器子域),即当前处于 Apache 孵化器;此前 Brooklyn 曾是 ASF 顶级项目(2020 年发布 1.0.0),后进入孵化器重启(来源:官网域名与 ASF 董事会记录,2026-10-18 查询) |
| 版本时间线 | 1.0.0 发布于 2020-03-03(来源:ASF 董事会 2022-08-17 会议记录),1.1.0 发布包于 2024-02 进入官方下载目录(下载目录时间戳与第三方同步站 2024-02-20 记录,2026-10-18 查询) |
| 许可证 | Apache License 2.0(ASF 项目) |
官方来源清单:
| 来源 | 链接 | 用途 |
|---|---|---|
| 官网 | https://brooklyn.incubator.apache.org/ | 定位、快速开始 |
| 蓝本教程 | https://brooklyn.incubator.apache.org/v/0.10.0/start/blueprints.html | YAML 蓝本原文示例 |
| 组件目录 | https://brooklyn.incubator.apache.org/learnmore/catalog/ | 支持的实体组件清单 |
| 运行指南 | https://brooklyn.incubator.apache.org/guide/start/running.html | 安装运行 |
| ASF 下载目录 | https://downloads.apache.org/brooklyn/ | 签名发布件 |
| GitHub 仓库 | https://github.com/apache/brooklyn | 源码 |
二、软件概述
Apache Brooklyn 1.1.0 是一个以"蓝图(Blueprint)"为中心的应用运维编排框架:用 YAML 声明式描述应用的组件拓扑与策略,由 Brooklyn 负责跨多台机器/多个云的自动部署、监控、弹性伸缩与故障替换,官网标语强调"你的应用,任意云、任意形态、任意位置"(来源:官网首页 https://brooklyn.incubator.apache.org/ ,2026-10-18 查询)。
- 当前版本:1.1.0(官方下载目录最新版;上一版 1.0.0 发布于 2020-03)。
- 定位:应用层"建模—部署—管理"三位一体的编排平台:Modeling(蓝图即文本、可入版本库)、Deploying(组件自动配置与跨机集成,支持 20+ 公有云、私有云、裸服务器)、Managing(指标监控、按需伸缩、重启替换故障组件,Web 控制台与 REST API 双通道)(来源:官网首页三段式介绍)。
- 许可证:Apache-2.0;技术栈:Java(服务端),蓝图 YAML,CLI 工具
br。 - 维护方:Apache 孵化器项目;社区渠道为 dev@brooklyn.apache.org 邮件列表与 IRC(来源:官网 Get in touch)。
三、核心架构
Brooklyn 的模型由四类核心对象构成(来源:官网首页与 0.10.0 起沿用的蓝图文档,2026-10-18 查询):
- Entity(实体):应用中被管理的单元——可以是 Tomcat、nginx、Cassandra、QPid 等现成组件(官方 Catalog 提供"数十种"受支持组件),也可以是用 bash、Java、Chef 等自定义的组件。实体之间可组合成树状应用拓扑。
- Blueprint(蓝图):YAML 格式的应用描述文件,声明服务类型、配置、位置与策略;官方定位是"描述应用的描述符,以文本文件形式存入版本控制",实现应用拓扑的基础设施即代码化管理。
- Location(位置):部署目标抽象。Brooklyn 通过 Apache jclouds 支持 20+ 公有云(官网示例含 Amazon EC2、CloudStack、OpenStack、SoftLayer 等),同时支持 BYON(Bring Your Own Nodes,把既有 SSH 可达服务器注册为部署目标)与私有环境。
- Policy(策略):附着在实体上的自动化规则,官网列举的内置策略包括按指标自动伸缩(Metric-based autoscaler)、重启与替换(Restarter & replacer)、Follow-the-sun、负载均衡等;策略引擎持续读取传感器(Sensor)指标并触发执行器动作。
管理面提供 Web 控制台与 REST API:创建应用、查看实体状态与指标、修改配置与触发操作均可通过两者完成;CLI 工具 br 封装常用 REST 调用。
四、功能特性
(来源:官网首页与蓝图教程,2026-10-18 查询)
- 声明式蓝图:YAML 描述完整应用栈,文本化、可评审、可版本管理。
- 组件自动集成:跨多机的组件配置与互联(如为 Tomcat 集群自动配置 nginx 负载均衡)由 Brooklyn 驱动完成,无需人工编排脚本。
- 多云与混合位置:jclouds 云适配层 + BYON,同一蓝图可切换部署目标。
- 运行时自治:基于传感器指标的自动伸缩、失败组件自动重启/替换等策略能力。
- 双管理通道:Web 控制台 + REST API(
brCLI)。 - 可扩展实体:官方 Catalog 之外的组件可通过 bash/Java/Chef 等自定义实体接入。
五、快速上手(引自官方文档,未本地实测)
启动 Brooklyn(引自官网首页 Get Started 原文,以 1.1.0 Vagrant 包为例):
curl -SL --output apache-brooklyn-1.1.0-vagrant.tar.gz "https://www.apache.org/dyn/closer.lua?action=download&filename=brooklyn/apache-brooklyn-1.1.0/apache-brooklyn-1.1.0-vagrant.tar.gz"
tar xvf apache-brooklyn-1.1.0-vagrant.tar.gz
cd apache-brooklyn-1.1.0-vagrant
vagrant up brooklyn
更多安装方式见官方运行指南:https://brooklyn.incubator.apache.org/guide/start/running.html 。
部署第一个蓝图(YAML 与命令引自官方蓝图教程 https://brooklyn.incubator.apache.org/v/0.10.0/start/blueprints.html ):将以下内容存为 myapp.yaml:
name: Tomcat
services:
- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
name: tomcatServer
location: <your-location-definition-goes-here>
location 需替换为实际目标,例如 BYON 方式(官方原文示例):
location:
byon:
user: myuser
password: mypassword
hosts:
- 192.168.0.18
- 192.168.0.19
或 AWS EC2(官方原文示例,identity/credential 换成账号信息):
location:
jclouds:aws-ec2:
identity: ABCDEFGHIJKLMNOPQRST
credential: s3cr3tsq1rr3ls3cr3tsq1rr3ls3cr3tsq1rr3l
然后通过 CLI 登录并部署(官方原文命令):
$ br login http://localhost:8081/
$ br deploy myapp.yaml
部署成功会返回应用 Id 与状态(官方示例输出:Id: hTPAF19s / Name: Tomcat / Status: In progress);后续可通过 Web 控制台或 br 监控部署进度。
六、适用场景与限制
适用场景:
- 需要把"多组件应用拓扑 + 运行时自治策略(伸缩/自愈)"以声明式 YAML 固化并纳入版本管理的运维团队。
- 多云/混合部署:同一份蓝图在公有云、私有云与既有物理机(BYON)间切换。
- 早期 PaaS/自治运维理念的落地场景:以策略引擎驱动而非人工巡检(来源:官网 Modeling/Deploying/Managing 三段式定位)。
限制(来源均为官方资料与公开事实,2026-10-18 查询):
- 版本迭代缓慢:1.0.0(2020-03)到 1.1.0 之间间隔约四年,且项目处于孵化器阶段,发布与文档更新节奏有限(官方教程仍以 0.10.0 版文档为最新可访问的蓝图入门,2026-10-18 查询)。
- 组件目录部分实体较老(Tomcat、QPid 等多为经典栈),对云原生新栈(Kubernetes 生态)的适配以社区插件为主,官方首页对其支持程度表述有限。
- 社区规模小(官网社区渠道以邮件列表/IRC 为主),生产落地案例公开资料少,采用前需自行评估。
- 学习成本:实体/传感器/效应器/策略模型需要一定理解,蓝图调试依赖控制台与日志。
七、同类选型对比
对比对象为"声明式部署/编排"赛道的 HashiCorp Terraform、Ansible、Cloudify。GitHub 活跃度数据查询日期为 2026-10-18(来源:GitHub API 对应仓库;Terraform 推送时间以仓库页为准,本文不引用其缓存时间戳)。
| 维度 | Apache Brooklyn 1.1.0 | HashiCorp Terraform | Ansible | Cloudify |
|---|---|---|---|---|
| 许可证 | Apache-2.0 | BUSL 源码可用许可(GitHub License 字段 NOASSERTION,非 OSI 开源) | GPL-3.0(ansible/ansible) | Apache-2.0(cloudify-manager) |
| 定位 | 应用拓扑建模 + 部署 + 运行时自治策略 | 基础设施即代码(资源供给),不管运行时自治 | 通用 IT 自动化(配置管理 + 编排) | TOSCA 编排 + 运维工作流平台 |
| 社区活跃度 | ASF 孵化项目,社区小(官网渠道为主) | 45,395 stars / 9,896 forks(hashicorp/terraform) | 59,267 stars / 23,857 forks(ansible/ansible) | 154 stars / 79 forks(cloudify-manager),2026-02 后推送减少 |
| 版本节奏 | 1.0.0(2020-03)→ 1.1.0(下载目录 2024-02),节奏慢 | 以官方 Releases 为准,节奏稳定 | 以官方发布渠道为准 | 以 GitHub Releases 页为准 |
| 管理模型 | 常驻服务端 + 实体/策略持续管理(闭环自治) | 计划/应用型(无常驻运行时管理) | Push 型任务执行(无常驻被管对象模型) | 常驻管理面 + TOSCA 蓝图 |
| 兼容矩阵 | jclouds 20+ 云、BYON、Java 服务端 | Provider 插件生态极广 | SSH/Agent 无侵入,全平台 | Kubernetes/云插件 |
一句选型建议:如果诉求是"带运行时自治(自动伸缩/自愈)的应用拓扑蓝图",且接受项目节奏缓慢,Brooklyn 的实体+策略模型依然独特;多数团队的现实选择是 Terraform(管资源供给)+ Ansible(管配置)组合,或直接进入 Kubernetes 生态;Cloudify 理念相近但社区已明显萎缩,新项目不建议押注。
八、参考链接
- 官网:https://brooklyn.incubator.apache.org/
- 蓝图部署教程(YAML 示例来源):https://brooklyn.incubator.apache.org/v/0.10.0/start/blueprints.html
- 组件目录:https://brooklyn.incubator.apache.org/learnmore/catalog/
- 运行指南:https://brooklyn.incubator.apache.org/guide/start/running.html
- ASF 下载目录:https://downloads.apache.org/brooklyn/
- GitHub 仓库:https://github.com/apache/brooklyn
- dev 邮件列表:https://lists.apache.org/list.html?dev@brooklyn.apache.org