{% extends "ubuntu/templates/one-column.html" %} {% block title %}Cloud computing with Ubuntu{% endblock %} {% block extra_body_class %}{% endblock %} {% block header %}
The cloud has revolutionised provisioning, delivering virtual instances and storage on demand in minutes or seconds. And that new way of thinking about provisioning has had a dramatic impact on everything from development practices to the financial models of IT.
At the heart of cloud is virtualisation - those resources are all virtualised, so of course they can be provisioned on demand. But what if we could bring that same dynamic thinking to physical provisioning for infrastructure where a cloud is not appropriate?
Many modern IT services are cloud-like: farms of servers, doing roughly the same thing, scaled out rather than scaled up. In those environments, it’s useful to think of the collection of physical machines like a cloud, even if it isn’t virtualised. “Deploy another node in that Hadoop service” is just as valid on the cloud as on a large physical deployment with tens, hundreds or thousands of machines. And of course, your cloud itself is a large service deployed directly on the metal.
So Canonical has created Metal as a Service (MAAS), a system that makes it quick and easy to set up the physical hardware base on which to deploy complex services that need to scale up and down dynamically, like Ubuntu’s OpenStack cloud infrastructure.
Hardware that is provisioned through the MAAS can be provisioned dynamically, just like cloud instances - except that we’re talking about the whole physical node. “Add another node to the Hadoop cluster, and make sure it has at least 16GB RAM” is easy with the MAAS. Cloud semantics, in the non-cloud world.
Through a simple web interface or web API you add, commission, update, deploy and recycle physical servers at will. As your needs change, you can respond rapidly, by adding new nodes and dynamically re-deploying them between services. When the time comes, nodes can be retired for use outside the MAAS.
When commissioning a new node, MAAS can take care of hardware-specific tasks such as burn-in tests, firmware and RAID upgrades - and checking whether your hardware is Ubuntu certified. Together with Juju, MAAS makes it easy to turn a network of physical servers into a functioning private cloud.
With Juju you can deploy, orchestrate and scale services in your MAAS cluster in seconds. Rather than spend hours planning and implementing a service deployment, simply choose how many nodes your new service needs and then apply a pre-written charm. When your needs change, you can monitor, scale and adjust deployment parameters in real time. Once you're finished with a service, Juju can remove it without a trace.
The real magic of Juju is in its charms. Charms describe everything you need to deploy a particular service.
There is a strong and growing collection of pre-written charms for services including OpenStack, Hadoop, Cloud Foundry, MongoDB, Jenkins and others. Charms are developed in the open, so each charm is a distillation of the devops best practices for that particular service.
If there isn't yet a charm for the service you need, it's easy to write your own. Canonical and the Ubuntu community host charm schools, both online and in person, where you can learn the steps to creating charms.