一段时间以来,Brigade[1]的维护人员,根据社区使用该产品的经验,以及我们自己的经验,一直在努力规划和实施平台的重大修订。今天,我们自豪地宣布这一努力的里程碑——Brigade v2.0.0-alpha.1 的发布。当我们还在解决问题,并培养一个扩展的 Brigade 2 生态系统时,我们觉得是时候开始将社区引入 Brigade 2 了。
Event-driven scripting for Kubernetes. Brigade is a tool for running scriptable, automated tasks in the cloud — as part of your Kubernetes cluster.
如果你不熟悉 Brigade,现在可能是一个很好的时间去 brigade.sh 了解一下,因为本文的其余部分至少假定你对这个平台有一定的了解。
随着时间的推移,Brigade 的维护人员已经了解到两件事:成功使用这个平台需要相当程度的 Kubernetes 能力——通过更好的抽象,不特别精通 Kubernetes 的用户也可以在 Brigade 中发现价值。所以,矛盾的是,Brigade 2 最大的变化在某些方面也是微妙的。熟悉 Brigade 1.x 的人,可能也熟悉它的口号——“Kubernetes 的事件驱动脚本”。Brigade 2 的口号也许写成“(Kubernetes 的)事件驱动脚本”。这反映了我们努力将最终用户从 Kubernetes 中尽可能地抽象出来,同时不向那些既熟悉又能访问底层集群的用户完全隐藏它。
Kubernetes 作为实现细节逐渐消失在背景中,这对 Brigade 的整体架构产生了广泛的影响。Brigade 1.x CLI 和事件网关都直接与 Kubernetes API 服务器交互,而 Brigade 2 与全新的 Brigade API 交互。这是一个非常积极的改变,因为拥有了我们自己的 API,我们的项目可以做一些以前不可能做的事情。
非详尽的重点清单包括:
其他值得注意的改进并不直接归功于修订后的架构,包括显著改善了用户体验,并支持使用 TypeScript 处理事件。
要解决最后一个技术性较小的变化——命名事物是困难的。Brigade 1.x,单个事件衍生单个“build”,所以毫不奇怪,术语“build”几乎与“event”同义使用。例如,使用 CLI,用户可能查询的是“builds”而不是“events”。随着时间的推移,维护人员已经意识到这个术语促进了一个不准确的概念,即 Brigade 是一个 CI 平台。尽管 CI 是 Brigade 很好地处理的一个著名且流行的用例,但 Brigade 从来没有被限制在这样的用途上。在 Brigade 2,我们把"build"这个词从我们的方言中去掉了。现在只有事件(events)了。项目订阅事件。Brigade 生成工作器来处理事件。
那么,什么没有改变呢?
尽管有许多变化,维护人员相信我们仍然忠于 Brigade 的最初设想,以及 Brigade 1.x 的一般知识应该转到 Brigade 2。最终,Brigade 2,就像它的前辈一样,只是简单地用任意的动作(脚本)连接来自任意源的事件(如果有网关存在或者可以开发)。
很多爱已经投入这个令人兴奋的产品更新,我们希望你会像我们一样爱它。
我们还没有做完。随着第一个 alpha 版本的发布,我们期待着进一步的 alpha 和 beta 版本,并最终定期发布候选版本。
目前,我们非常专注于:
Kashti仪表盘
Brigade 2 可能是一个正在进行的工作,但如果你想开始熟悉,这不是太早,这是提供反馈甚至开始贡献的最佳时间!
[1]
Brigade: https://brigade.sh/
[2]
Kasthi: https://github.com/brigadecore/kashti