Fireactions 允许您自带金属 (BYOM) 并在基于Firecracker的临时、快速且安全的虚拟机中自行托管 GitHub 运行器。它非常适合希望减少工作流程排队时间、最大限度降低成本和减少维护开销的组织、自由职业者和业余爱好者。
在Fireactions.io上查找有关如何安装、配置和使用该应用程序的详细说明,或访问Fireactions 存储库以获取代码、快速入门指南和贡献机会。
我们需要解决的问题
与许多软件公司一样,我们利用 CI/CD 管道来简化代码集成、测试和部署。
我们严重依赖 GitHub Actions 来管理流程。然而,随着微服务的快速扩展和存储库数量的不断增长,我们增加的 CI/CD 工作量带来了稳定性和可扩展性的挑战。
减慢了我们整个开发和发布过程的速度
由于手头有大量的裸机,我们决定在自己的基础设施上运行自托管的 GitHub 运行器。这样,我们可以优化构建时间,提高效率,并确保在我们继续发展的同时拥有更可靠、更可扩展的 CI/CD 管道。
有几种选项可以实现这一点,例如Actions Runner Controller,但它需要 Kubernetes 和特权容器,这增加了复杂性、增加了维护开销并带来了潜在的安全风险。
我们需要一个更灵活的解决方案。我们希望获得与 GitHub 托管的运行 电话号码数据库 器相同级别的控制、可靠性和安全性,但不受其限制,例如启动时间长和资源有限。
Fireactions 是什么以及它如何运作
我们选择了Firecracker,一个开源虚拟机监视器 (VMM) ,在微型虚拟机 (microVM)中部署工作负载。
MicroVM 非常适合运行不受信任的工作负载,例如 CI/CD 作业。与共享主机操作系统的容器不同,microVM 运行自己的轻量级内核。这提供了更强的隔离性和安全性,同时保持了速度和资源效率。
但是,设置和维护 GitHub 运行器需要花费时间和精力。这就是Fireactions发挥作用的地方。它是一款完全免费、开源的自托管 CI/CD 解决方案,可自动化 GitHub 运行器。
工作原理如下:
Fireactions 的工作原理
首先,Fireactions加载配置文件以确定设置,并启动运行器 池。它会不断检查以 这并不能准确反映该工具 确保有足够的运行器可用。
对于新的运行器,Fireactions会从 GitHub 请求令牌,然后使用 Firecracker 快速创建一个隔离的 microVM。作业完成后,Fireactions会销毁 microVM。与 GitHub 托管的运行器一样,作业之间不会保留任何状态。
Fireactions 根据传入的工作流事件自动扩展运 选择加入列表 行器的数量。您可以定义作业标签并自定义虚拟机资源以满足您的需求。
您可以在任何常规裸机服务器或支持嵌直接的痛点是由于 套虚拟化(虚拟机在其他虚拟机内运行)的虚拟机上运行 Fireactions 。例如,您可以使用Fireactions VPS 模板在 Hostinger VPS 托管上轻松设置应用程序。