Science and technology

What we discovered constructing a Zuul CI/CD cloud

Contributing to open supply initiatives similar to OpenStack historically entails people and corporations offering code contributions that add new options and repair bugs. For almost two years, I’ve been operating one-off OpenStack clouds for demonstrations and labs at person group conferences throughout the US, utilizing donated from bare-metal service supplier Packet. Six months in the past, Packet requested how they may make a bigger donation to the group, which introduced us on our path to construct a group cloud to assist OpenStack.

Each day, a whole lot of code commits to the OpenStack code base should be examined as a part of the continual integration system managed by Zuul, “a program that drives continuous integration, delivery, and deployment systems with a focus on project gating and interrelated projects.” Each commit runs via a sequence of checks (or gates) earlier than a human evaluate, and the gates run once more earlier than a code merge. All of those gates run throughout a pool of digital machines cases (greater than 900 cases at peak instances) donated by quite a few public cloud suppliers. All of the OpenStack CI relies on donated computing sources. The OpenStack Infra group coordinates all of those cloud suppliers and served as our level of contact for donating these sources.

We got down to construct a cloud the place all of the computing sources had been to be devoted for the OpenStack Infra program. Building out our cloud, we needed to meet the minimal necessities set by the OpenStack Infra group: assist for a 100 concurrent VM cases, every with 8GB RAM, eight vCPUs, and 80GB storage. Packet allotted us 11 bare-metal servers and an IPv4 /29 subnet for use for floating IPs. With the computing and community sources in place, we moved forward with the OpenStack structure and implementation.

All the take a look at cases, and the mirror cases, all use ephemeral storage, the cloud was arrange with none persistent storage. Although enterprise workloads sometimes require persistent storage, this is not required of a cloud devoted to operating steady integration job cases. While the CI job logs are pulled again off the cloud to a central server, the remainder of the CI job is disposed on the finish of the take a look at. This permits sources that may have in any other case been allotted to persistent storage companies (i.e., Cinder and Ceph) to be put towards compute companies (Nova).

Working with the OpenStack Infra group has opened my eyes to the capabilities of Zuul and the frameworks the group has put collectively. I had the chance to meet up with the OpenStack Infra group at the latest Project Teams Gathering (PTG). They notice that Zuul can put a pressure on any cloud and are completely satisfied to work via points that come up. Better nonetheless, they run a fantastic set of instruments that present metrics similar to failed launch makes an attempt and time to prepared, permitting me to determine points as quickly as doable.

A CI system similar to Zuul places an excessive load on a cloud surroundings because it repeatedly spins up and down digital cases. While typical cases could be up for weeks or months, a CI occasion via Zuul lives, on common, just some hours. This means the management airplane is all the time busy stopping and beginning companies. Through the instruments offered by the OpenStack Infra group, we had been in a position to determine efficiency points. In the primary few months of operations, we shortly realized we needed to upsize the management airplane to deal with the workload and reconfigure the picture cupboard space to deal with the disk pictures created day by day by Zuul.

One of the limiting elements of this cloud is the supply of IPv4 addressing. Each take a look at occasion requires a floating IP deal with to speak again to Zuul. Because we’ve got the compute sources, RAM and CPU, to group the cloud, we intend to begin provisioning take a look at cases with IPv6 addresses. Zuul and the OpenStack Infra undertaking each already assist IPv6.

Although we’re persevering with to enhance this community-run cloud, we’re additionally trying ahead to exploring what else we will present throughout this donated . Nodepool has driver capabilities to deal with sources exterior of OpenStack, and we’re occupied with utilizing automated bare-metal assist. We’re additionally hoping to increase CI sources to different open supply initiatives via this similar Zuul and Nodepool framework.

Setting up and operating this cloud has been a rewarding expertise, particularly working with the OpenStack Infra group and seeing the whole lot they’re doing with Zuul. The data I’ve gained operating a cloud to assist the OpenStack Infra group has far exceeded my experiences operating one-off clouds for person group demonstrations.

If you’re an OpenStack cloud supplier (public or personal) and have an curiosity in donating sources to OpenStack, I encourage you to achieve out to me or the OpenStack Infra group for extra info.

John Studarus will current What we learned building a Zuul CICD Cloud on the OpenStack Summit, November 13-15 in Berlin.

Most Popular

To Top