针对您的构建的多 CPU 架构支持

分享此内容
分享此内容

我们很高兴地宣布,您现在可以在 Travis CI 上测试您的开源软件在多个 CPU 架构上的性能。

在过去的几个月里,我们一直与 Travis CI 社区、来自 Canonical 的 LXD 团队、ArmPacket 密切合作。

由于这种合作关系,Arm 架构的构建现在可供您免费使用,用于您的开源项目。Arm 架构的构建是第一个使用 LXD 驱动的容器化 来运行您的构建的构建。

如果您的公共项目针对 Linux 和 Arm CPU 架构,请立即开始使用 Arm 构建!

Alpha 版发布

OpenSSLFluent Bit 已经在测试多 CPU 功能,因此如果您正在寻找示例,请查看它们各自的 .travis.yml 文件以及 Travis CI 文档

您可以在此 Alpha 版发布中期待什么

  • 您目前只能测试您的开源项目。Packet 基础设施和 Travis CI 构建免费提供给您。但是,如果您想测试私有项目,请 在论坛中给我们发送消息
  • 目前只有有限的容量可用,我们将根据您的反馈来提升容量。初始测试容量大约为 60 个并发作业,因此请在测试 Arm 架构构建时牢记这一点。
  • Packet 提供 Arm64(与 Armv8 兼容)基础设施,并已对其进行调整,以确保稳定的构建时间。请在增加容量时给我们更多时间做出反应,因为这需要两家公司进行协调。
  • 初始 .travis.yml arch 密钥可能在稍后进行调整或扩展。请继续关注我们分享的更多更新。

我们很高兴继续开发多 CPU 功能,并与您共同改进它。我们诚挚地邀请您测试新的多 CPU 架构,并在 论坛 中分享您的发现。我们期待了解您如何使用它以及您对新功能的体验!

Arm 支持如何工作?

作为第一步,请修改您的 .travis.yml 文件,添加 arch 密钥。

arch:
  - amd64
  - arm64

使用这两个 arch: 密钥将触发一个由一组具有 amd64 和 arm64 基于 OS 镜像的作业组成的 构建矩阵。请记住,对于 matrix.include,仅单个键值对有效,因此

matrix:
  include:
   - os: linux
     arch: amd64
   - os: linux
     arch: arm64

当您想测试特定 OS 和 CPU 组合时,这是一个有效的方法。目前,这仅适用于 Linux。LXD 是一个 Linux 容器守护进程,有关更多信息,请参阅 linuxcontainers.org

您可以通过检查工作程序的主机名来确定您的作业何时在基于 Arm 的 LXD 容器上运行,例如 lxd-arm64,例如:https://travis-ci.org/openssl/openssl/jobs/591020146#L2。有关使用方面的更多详细信息,请参阅 多 CPU 文档

为什么选择 LXD?Docker 与 LXD

LXC,LinuX 容器运行时专注于在一个控制主机上创建和运行多个(且隔离的)Linux 系统容器。Docker 作为应用程序容器,起源于 LXC,但随着时间的推移,它独立发展,并成为一个运行进程的虚拟化解决方案。

LXD 也基于 LXC,但它允许使用系统容器或“轻量级虚拟机式容器”。这里的主要区别在于 LXD 在容器内运行 upstart/systemd 之类的进程。虽然您可以使用 Docker 实现类似的功能,但您需要在每次运行 Docker 镜像时启用特定的系统进程,这会增加复杂性,并延长 CI 环境的执行时间。

另一方面,LXD 在容器内提供了一个“完整操作系统”,并在系统容器周围提供类似虚拟机的语义,因此它可以轻松地操作和管理。由于所有操作都在 Linux 上通过容器完成,因此 LXD 速度明显更快,同时它对 CPU 和内存的占用也很低。

过去,我们在 Travis CI 中使用 Docker 容器作为构建机器的容器,或者 Docker in docker,但是必须引入的约束和解决方法导致构建时间不一致,并造成很多混乱。所以 我们恢复使用 Docker 作为应用程序容器,我们非常喜欢它!

鉴于 Travis CI 在虚拟机中运行您的构建和测试,这些虚拟机与实际生产服务器非常接近,并且 LXD 提供了一种能够更快地完成此操作的容器类型,这就是我们最终选择 LXD 用于 Linux 构建的容器化过程的原因,而不是以前以意外方式使用的 Docker。

下一步

鉴于快速启动时间和上面概述的 LXD 使用优势,我们正在考虑扩展对 Travis CI 中现有构建设置的 LXD 容器的使用。

请继续关注更新,因为这仅仅是支持多 CPU 架构的开始!

当您在公共项目中测试 Arm 构建时,请在 社区论坛 中与我们分享您的反馈。我们期待了解您对构建的多 CPU 架构支持的体验!

© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利