Introducing: Armv8 Equinix Metal for super fast builds in OSS
In October 2019, Travis CI, ARM and Equinix Metal (previously called Packet) partnered to enable cloud CI/CD builds on previously unavailable CPU architecture targets, starting with Armv8. Infrastructure sponsored by Works on Arm and set up thanks to the effort of Canonical LXD, Equinix and Travis CI teams was employed to run fast-starting, LXD container based build jobs over arm64. In the meantime a lot happened and it became apparent that faster Armv8 CPUs are needed.
Well to answer your question, here they are. Just add this in your .travis.yml
file:
os: linux
arch: arm64
That will now tell Travis to use the newer Arm Neoverse N1 based Ampere Altra arm64
servers, deployed by Equinix for Travis CI. This is is free to use for OSS (build minute costs zero credits if you run a build over your open source repository) as a part of our Partner Queue Solution. This infrastructure is not available for builds over private/proprietary source code.
What is it and the benefit
The infrastructure upgrade allows Armv8 builds in LXD containers to spin up much faster. The performance improvement proved impressive, as Montana Mendy found out after taking the new environment for a test drive.
Build study conducted by Montana Mendy
Below is a graph of a study conducted by Montana Mendy, where he took the same exact repository which is here. It’s a breadth-first search application Montana wrote in Python who has made it open source solely for this post, and in this repository you can see the .travis.yml
, the .travis.yml
did not differ for builds, in other words - nothing was changed when running the builds with Equinix Metal and when the builds were ran on the previous architecture.
As you can see with Equinix Metal it’s twice as fast, now remember this is building a small grade project. Imagine the time you’ll save when the proejct is a tad bigger. I’ve attached more references as it relates to build times:
Build times when using Equinix Metal:
Build times when the end user is not using Equinix Metal:
You can clearly see a basically 50% increase in speed when Travis uses the brand new Arm Neoverse N1 based Ampere Altra arm64
servers.
To state once more, I’ve left the repository link on GitHub that I used to measure these times, so you can see exactly my .travis.yml
configuration and other things that make sense to you.
Conclusion
Right now it actually doesn’t matter which one of Arm infrastructures available at Travis CI you use, all are powered by modern, performant CPUs. Enjoy faster build times over Armv8 as well, we are sorry to make your coffee and tea breaks shorter!
Where to find out more
Make sure you watch the Travis CI content at the Arm DevSummit 2021, October 19-21 where Travis CI will have a presence and Montana Mendy will be showing just how fast things really have gotten with Arm when building things.
You can find out more about the new Arm on AWS Graviton2 integration by reading about the Travis CI build environment and building on multi-CPU architectures. Be sure to leave your feedback and join the discussion over at the community forum. If you have any questions do not hesitate to post on the forums or contact montana@travis-ci.org.
Not a Travis CI user yet? Sign up for a free trial!
Looking for something more bespoke for your builds? Try out Travis CI Enterprise.
Ref blog posts:
Multi-CPU architecture support for your builds - Oct 2019.
Build your open source projects on IBM Power and IBM Z CPU architecture - Nov 2019.
Announcing General Availability of Graviton2 CPU Support! - Nov 2020.