Implementing infrastructure using open-source software significantly reduces the total cost of ownership (TOC) of your infrastructure. Over the last few years, we’ve seen more and more companies moving to open source. These include Netflix, Uber, Visa, eBay, Wikipedia and AT&T. And this trend will only continue to grow. The migration is driven by better economics, improved flexibility, better integration capabilities and thus, the higher business value provided by the open source software.
Together with Dell, we hosted a webinar describing all of those benefits in detail. We also demonstrated our joint reference architecture for open infrastructure implementation. In this blog, I expand on the building blocks behind the open infrastructure and explain the role they play in the stack.
Open infrastructure building blocks
A modern infrastructure is fully based on the cloud approach. It leverages virtualisation and containerisation technologies as well as software-defined networking (SDN) and software-defined storage (SDS). Infrastructure-as-a-service (IaaS) and container-as-a-service (CaaS) platforms tie these technologies together to provide a fully functional cloud environment. But there are other building blocks that are part of the infrastructure, as shown in the figure below. So let’s not briefly go through the entire stack, from the bottom to the top.
Open source bare metal provisioning platform
Infrastructure implementation starts at the bare metal layer. Physical machines are primary building blocks. Thus, users or other infrastructure components have to be able to provision them on-demand. This is where the bare metal provisioning platform comes in, providing autodiscovery of machines and fully automated installation capabilities. As a result, bare metal consumers can simply pick up one of the available physical machines and get it up and running with a fresh operating system installed in a matter of minutes. An example of open source bare metal provisioning platform is MAAS.
Open source operating system
Another building block that sits at the very heart of the entire infrastructure stack is an operating system. It ties hardware resources together and manages them from the machine level. Each physical machine and virtual machine (VM) has its own operating system with a dedicated kernel. In turn, containers run on the top of a shared kernel, but they still use their own operating system image for application implementation in the user space. Among various open source operating systems, Linux is the most popular one. In turn, Ubuntu is the leading Linux distribution for infrastructure implementation, providing stability and security in the first place.
Open source virtualisation stack
Another layer that sits directly on top of the physical machines is the virtualisation layer. It divides physical resources, such as central processing unit (CPU) cycles and random access memory (RAM) into smaller chunks and exposes them to VMs in the form of virtual hardware. A proven open source virtualisation stack used by most private clouds consists of the following three components: Quick Emulator (QEMU), Kernel-based Virtual Machine (KVM) and libvirt. While QEMU on its own only emulates VMs, KVM extends it with hardware virtualisation capabilities. In addition, libvirt provides a VM management layer on top of QEMU and KVM.
Open source SDN
On the network side, virtualisation of resources is provided by an SDN platform. In an SDN environment, the network control plane is fully decoupled from the forwarding plane and is implemented in software instead of hardware. As a result, the entire networking stack can be configured programmatically. This allows managing distributed network resources from a centralised level. Moreover, SDN allows creating virtual networks on top of existing physical network connections using tunnelling and overlay technologies. An open source SDN platform that is becoming more and more popular nowadays is Open Virtual Networking (OVN) which is a fork of the Open vSwitch (OVS) project.
Open source SDS
Although storage resources are easily divisible into chunks, managing those chunks in a distributed storage environment is usually problematic. In order to resolve this problem, SDS solutions have been developed. SDS not only provides the virtualisation layer on top of storage resources but also ensures replication and data durability. One prominent open source SDS platform, providing object, block and file storage capabilities is Ceph.
Open source IaaS platform
So at this point, we have distributed compute, network and storage resources that can be virtualised for more optimal consumption purposes. Those have to be managed centrally, though. This is where OpenStack comes in as a de facto standard for IaaS cloud implementations. OpenStack sits in the centre of the infrastructure stack, providing an interface for the virtualisation stack, SDN and SDS. It allows provisioning VMs on-demand from the self-service portal and allocates the required resources through the underlying platforms.
Open source containerisation stack
Contrary to traditional VMs, containers allow for better granularity and performance results comparable to physical machines. This is why many organisations have started moving their workloads to containers. However, in most of the cases, it still makes sense to run the entire containerisation stack on top of the IaaS platform. This is because platforms like OpenStack usually better handle the management of distributed hardware resources. A prominent open source containerisation stack is based on the Open Container Initiative (OCI) project which includes container runtimes such as Containerd, Kata and others.
Open source CaaS platform
While the IaaS platform allows provisioning VMs on-demand, the CaaS platform provides the same functionality for containers. However, in the world of containers, there are some other challenges that have to be addressed. Containers are primary building blocks behind the microservices implementation. Thus, the CaaS platform has to be able to perform operations such as workload autoscaling or rolling updates. As a result, it is usually more like container coordination than just a container provisioning platform. A leading CaaS platform today that is fully open source is, the very popular, Kubernetes.
Open source workloads orchestration platform
The last piece of a puzzle is the workloads orchestration platform. Such a platform provisions cloud resources (VMs, containers, block storage, etc.), deploys applications on top of them and configures them so that they can communicate with each other regardless of the underlying substrate. Moreover, as the initial deployment of applications is usually just the beginning of a journey, the orchestration platform has to be able to perform daily operations of the workload and orchestrate even very complex operations in a fully automated way. An example of an open source workload orchestration platform, providing a multi-cloud software-as-a-service (SaaS) experience is Juju.
Putting all building blocks together
Now, as we understand the purpose of each building block and we know that we can use open source software to implement the entire stack, we can put them together as demonstrated in the figure below. And this is exactly what we call an open infrastructure. An infrastructure that is built based on open source software components. An infrastructure that is cheaper and better than any other alternative.
Understanding the benefits of using open source software for infrastructure implementation
Using open source software for infrastructure implementation has a lot of advantages over proprietary solutions. While economics play the primary role, there are also other benefits, such as improved flexibility, better integration capabilities, higher security level and no `vendor lock-in`. All of that results in a higher business value of the open source software compared to the proprietary one and is the primary driver behind the migration trend.
As a next step, I would like to encourage you to watch the following webinar: “Open source infrastructure: from bare metal to microservices” where together with Dell we discuss the benefits of using open source software for infrastructure implementation in detail. In case you would like to talk to us directly, do not hesitate to fill in the contact form.
Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.