OpenSource For You

OpenStack Kolla: Building the Community Around Containeri­sed OpenStack Deployment

Kolla provides production-ready containers and deployment tools for operating OpenStack clouds that are scalable, fast, reliable and upgradable — using community best practices.

- By: Swapnil Kulkarni The author is an open source enthusiast with experience in blockchain technologi­es, cloud native solutions, containers and enterprise software product architectu­res. He blogs at cloudnativ­etech.wordpress.com.

Istill remember the kind of applause I got from my colleagues when I got my first OpenStack deployment working. Most of the things then worked around DevStack, the developmen­t environmen­t of OpenStack, and vendors were still trying to find the right mix of DevOps tools to deploy OpenStack. The evolution process involved working with tools like Chef, Puppet and Ansible, with vendors creating a deployment model around them. Then came Docker, creating a buzz with a lost Linux feature called containers. A group of community members came together to see if they could containeri­se the OpenStack services and deploy them. The project started with the sole mission of containeri­sing OpenStack into microservi­ces and providing additional tooling to simplify management.

The entry barrier for Kolla

The arrival of Kolla was not particular­ly welcomed by the community, which was busy with already proven technologi­es to automate the OpenStack deployment process. At the same time, the Kolla team had its own set of challenges to cope with. Docker was itself very new at this stage, with very limited automation frameworks to use. The project went through a set of repeated events, while rediscover­ing the architectu­ral changes and tools to be used. The initial implementa­tion focused on creating the individual Docker images for core services for Centos and Ubuntu operating system flavours and deploying them with Kubernetes, which was just picking up. The configurat­ion management part was still a half-solved puzzle, and networking was far below the requiremen­ts of both OpenStack deployment as well as its users. The deployment part was then rewritten in docker-compose, which at that time was the most popular deployment framework for multiple containers to add one more version of project rewrites.

Deploying containeri­sed OpenStack with Kolla and Ansible

With the time spent fiddling around with the OpenStack Docker images, the Kolla team decided to reinvent the architectu­re again, and look for alternativ­es that could help deploy the containeri­sed services with better control. This time, the team turned towards Ansible—at that time one of the latest configurat­ion management tools on the horizon; it was still awaiting wider community adoption, so there were few preconceiv­ed notions about containers. The Kolla team used the same container images and a few known bits of the Ansible framework to get the first successful deployment. The configurat­ion management part was well managed with Ansible. During the process, the team made a lot of changes in the Ansible Docker module, which was then contribute­d back to the Ansible project.

Making baby steps towards wider community adoption

The initial deployment of Kolla with Ansible was an achievemen­t that attracted a lot of attention towards Kolla as a deployment framework for OpenStack, resulting in a number of contributo­rs and innovative ideas from users who did different PoCs (proofs-of-concept). The team’s diversity increased and it was accepted as a part of the Big Tent governance model of the OpenStack Foundation. The Docker images were central to the adoption of Kolla and the image creation got a major revamp. Jinja based image templates took the place of individual Docker files and a configurat­ion based build framework to build specific images. The same framework was again extended to include

changes so that vendors could create custom images with little changes. As the deployment matured, along with demand from the community, the team took steps to create reusable independen­t modules. The project was split into two major reusable components, the image build part and the deployment part. This gave vendors better control over the consumptio­n of Kolla based container images in their existing frameworks—as an alternativ­e to bare-metal/VM based deployment.

Deployment with Kubernetes

As Kubernetes matured, and in response to requiremen­ts from major vendors who wanted to use Kubernetes as their orchestrat­ion platform, Kubernetes based deployment again came into the picture for Kolla images. This developmen­t is still in its nascent stage, with the 1.0 milestone in sight with core services deployment. It is still getting rewritten with different existing Ansible automation features as well as a native Kubernetes tools like Helm.

Contributi­ng to Kolla

The Kolla project is now one of the popular repositori­es in the OpenStack community with containeri­sed images of almost all Big Tent projects. The deployment automation for most of the projects is also complete with the remaining undergoing reviews. There are three major deliverabl­es: kolla, the image build repository kolla-ansible, the Ansible based deployment automation kolla-kubernetes, the Kubernetes based deployment automation

The Kolla repositori­es are hosted under OpenStack GitHub, under the Apache 2 licence. Have a look at the project documentat­ion, connect with the community on Freenode at #openstack-kolla channel or subscribe to the openstack-dev mailing list. The Docker images are also available on Docker Hub. You can have a look at project milestones, features and bug reports on Launchpad.

References

[1] https://git.openstack.org/cgit/openstack/kolla [2] https://git.openstack.org/cgit/openstack/kolla-ansible [3] https://git.openstack.org/cgit/openstack/kolla-kubernetes [4] https://docs.openstack.org/kolla/latest/ [5] https://hub.docker.com/u/kolla/ [6] https://launchpad.net/kolla

 ??  ??
 ??  ??
 ??  ??

Newspapers in English

Newspapers from India