Welcome back to Optis Tech Talks, where we let our employees explain some of their favourite technologies. This edition is somewhat different. Instead of a technology we’re currently using in our projects, today we are talking about one of our colleagues’ pet projects. Youri Declerck, one of our developers, is passionate about home automation in his spare time. To solve a problem in that project, he needed to make Docker containers work on a Raspberry Pi. Not everyone will be confronted with this problem, but Youri has some excellent arguments on why you should still have his solution in the back of your mind.
Running Docker containers on a Raspberry Pi? Depending on the depth of your technical knowledge, you may have already scratched your head once or twice during our introduction, so allow us to explain. Raspberry Pi is a single-board computer: basically, the barebones version of a home PC about the size of a credit card. Both professionals and tech enthusiasts worldwide use it in a wide range of applications, including edge computing and home automation.
Docker might sound a bit more familiar. Without going into too much detail, it’s a way to package applications into containers that also contain deployment information and a basic operating system. People often consider it a more efficient version of a virtual machine (VM).
So, what was the problem Youri was facing? Well, the processors in his home automation setup caused compatibility issues. Docker usually runs on servers, whose processors use a different architecture than the processors of single-board computers like a Raspberry Pi. While this is still a fringe use case nowadays, Youri is convinced that differences in architecture will be significant in the future – especially at an enterprise scale.
A Raspberry Pi uses a so-called ARM processor, while the computers that most of us know use x86 and x64 processors. These are made by Intel and AMD and are used in laptops, desktops, and servers. You may have noticed a x86 and x64 at the end of certain .exe file names or heard of 32-bit and 64-bit processors. We won’t dive into the technical details here, but feel free to look up the difference between RISC and CISC processors (Reduced and Complex Instruction Set Computer, respectively) to learn more.
The important thing is that ARM is generally used for mobile devices and others where energy consumption is key. For example, the CPU (processor) part of Snapdragon chipsets, which are used in high-end smartphones, focuses on balancing energy consumption and power to increase their battery life. In recent years, the ARM architecture has become so energy efficient and cheap to build that it is now considered for other use cases. For example, Apple started using the ARM architecture to build their Apple Silicon processors. They have successfully rolled out those processors in recent desktop and laptop models.
A lot of research is happening on ARM processors, which is why Youri’s project is so interesting. There is a lot of potential there, thanks to the ARM architecture’s emphasis on energy efficiency, both for economic and ecological reasons. With the importance of sustainability in today’s (IT) world, it is likely that ARM processors will be the go-to choice for non-resource intensive applications soon.
The largest names in tech seem to agree. Besides Apple’s radical switch, cloud providers are increasingly looking at ARM as an alternative. Microsoft’s Azure platform is reportedly developing its own ARM chips for their data centre servers. Amazon Web Services (AWS) already offer instances powered by their own AWS Gravitr on processors, which use the ARM architecture. Oracle’s cloud platform, Oracle Cloud Infrastructure (OCI), also offers Ampere Altra ARM chips in its Ampere A1 Compute program. It’s clear that ARM is already well on its way to diversify cloud computing service offerings.
In recent years, the ARM architecture has become so energy efficient and cheap to build that it is now considered for other use cases.
In Youri’s case, the solution was a lot less complex than having to develop his own ARM chips. Docker already supports multiple architectures, but these require separate images, and therefore separate configurations. By using the BuildX tool, however, Youri could run the same Docker image on his Raspberry Pi as on his home PC, which uses an Intel processor. This tool is part of the default Docker installation, so it just needs to be activated.
So, how does Youri’s project translate to added business value? By running the same image across multiple architectures, enterprises could use ARM instances for development and testing purposes and x64/x86 instances for the actual production environment. Since ARM instances generally offer less performance but are much more energy efficient, they are a lot cheaper. This means organisations could save a lot of financial and energy resources without requiring additional development.
This means organisations could save a lot of financial and energy resources without requiring additional development.
Your organisation may not use multiple architectures yet, but there’s a big chance that you already use containers to optimise your IT infrastructure. If you consider the moves made by cloud providers and big names like Apple, it is likely that at least part of that infrastructure will use ARM processors at some point. This could be part of your cloud strategy, the processors that your office PCs run on, or both. With tools like BuildX, the potential savings are significant.