Today we are looking at MaaS from Canonical, the makers of Ubuntu. MaaS, which stands for Metal as a Service, promises to automatically and dynamically provision your servers. It’s the same idea as cloud provisioning, but now with your own bare metal servers. Very exciting indeed, so we thought we would give it a try.
MaaS (Metal as a Service) overview
MaaS is largely written in Python using Django framework combined with a Postgres database. The installation was very simple indeed. Bar one gotcha, it took us only tens of minutes to get a fully functioning single node cluster operating.
Once up, you are given a web portal to control your server farm. Even the most basic install gives you much more than if you were to start scripting your own bespoke set-up. MaaS will autodiscover your machines or you can upload details manually. The autodiscover is really slick as your target servers will PXE boot from the network, register with MaaS and then turn off for future use. Your servers are then ready for later deployment without chewing through electricity spinning their wheels. It basically forms an inventory of your server farm.
Upon decommissioning your server you can wipe the disk along the way. In fact MaaS documentation is very geared around the idea of elasticity. Move your physical machines around in the same way you would a virtual machine. Tear them up and down from a single interface.
Lifted straight from MaaS’ official documentation, you don’t need MaaS if:
- You don’t need to manage physical hardware
- You relish time spent in the server room
- You like trying to set up complicated, critical services without any help
So in a nutshell, you need it. MaaS is now on version 1.9 RC1, a version away from beta, and is packed with bug fixes. The current stable release is 1.8.
Whilst we installed a one node effort, MaaS scales out and is capable of handling thousands of servers. A standard MaaS set-up consists of a Region Server and Cluster Controllers. This can be arranged on one box or spread across a few, depending on loads.
Besides Ubuntu, MaaS allows users to deploy different operating systems, such as CentOS. Ubuntu Advantage customers can additionally deploy Redhat Enterprise Linux (RHEL), OpenSUSE, SLES, Window Server and Windows HyperV.
MaaS uses the ‘Curtin’ installer from the Curtin project. Curtin differs from the Debian installer in that it copies pre-built Ubuntu images. The pre-built images contain all the usual packages in an instillation. This makes it the fastest OS installer yet. It is indeed fast.
Installs are completely customisable to your needs, right from passing kernel boot options to installing custom images. A rich restful API is provided and as well as the web interface, many tasks can be performed by accessing the MaaS API directly through the maas command.
There are many capabilities not mentioned in this post. Overall, MaaS is a very fast and simple way to build your operating systems. For us it offers more than just building out machines. It starts to cover the whole life-cycle of the machine whilst it is in your datacentre, and builds inventory and history in a way that you might not have.