Tytus Kurek
on 1 June 2020
Open source software for open infrastructure
Using open source software significantly reduces the total cost of ownership (TOC) of your IT infrastructure. Over the last few years, we’ve seen more and more companies gradually moving to open source. Our latest research conducted through The International Data Corporation (IDC) shows that 70% of businesses are adopting open source software these days. The migration is driven by better economics, improved flexibility and thus, the higher business value provided by those platforms.
Together with our partners we have recently hosted an on-prem event in London where we discussed all those benefits in detail. In this blog, I provide a brief summary of this discussion and some key take-aways.
Open infrastructure building blocks
Modern IT infrastructure is fully based on the cloud computing paradigm. It leverages virtualization and containerization 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 open infrastructure, as shown in the diagram below. So let’s now briefly go through them, from the bottom to the top, and explain the role they play in the stack.
Open infrastructure stack
Hardware automation
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 hardware automation platforms come 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. Canonical’s reference open source hardware automation platform is MAAS.
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 management in the user space. Among various open source operating systems, Ubuntu is the most popular one. Ubuntu is the leading Linux distribution for infrastructure implementation, providing stability and security as a core foundation.
Virtualization
Another layer that sits directly on top of physical machines is the virtualization 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 virtualization stack used by most private clouds consists of the following four components: Quick Emulator (QEMU), Kernel-based Virtual Machine (KVM), libvirt, and LXD. While QEMU on its own only emulates VMs, KVM extends it with hardware virtualization capabilities. In addition, libvirt and LXD provide a VM management layer on top of QEMU and KVM.
Networking
On the networking side, virtualization 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 centralized 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).
Storage
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 virtualization 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.
IaaS
So at this point, we have distributed compute, network, and storage resources that can be virtualized for more optimal consumption purposes. However they all have to be managed centrally. This is where MicroCloud and OpenStack come in. Both MicroCloud and OpenStack sit in the centre of the infrastructure stack, providing an interface for the virtualization stack, SDN, and SDS. They allow on-demand VM provisioning from the self-service portal and allocate the required resources through the underlying platforms. While MicroCloud is way more lightweight and fits perfectly for simple cloud scenarios, OpenStack is more sophisticated and thus suits complex scenarios better.
CaaS
While the IaaS platform allows on-demand VM provisioning, 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 more sophisticated operations such as workload autoscaling or rolling updates. As a result, CaaS is usually expected to serve more like a container coordination than just a container provisioning platform. Kubernetes is a fully open source leading CaaS platform, and it is the most popular one on the market.
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 diagram below. And this is exactly what we call an open infrastructure: an infrastructure that is built based on open source software components only. An infrastructure that is more cost-effective and flexible than any other alternative.
Canonical’s open infrastructure stack
Understanding the benefits of open source
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, better security, and reduced vendor lock-in. All of that results in a higher business value for open source software compared to proprietary software and is the primary driver behind the migration trend observed in recent years.
As a next step, I would like to encourage you to watch the recording from Canonical’s Infra Masters event. You will find there more information on the open infrastructure as well as useful tips on how to get started with it.In case you prefer to talk to us directly, reach out to us through the contact form instead.