In previous chapters, we looked at examples of common design patterns that help autoscale services running inside LXC containers by leveraging tools such as Jenkins, custom REST-based APIs, and monitoring tools. In this chapter, we'll explore a fully automated way of provisioning LXC containers on a set of servers, using OpenStack.
OpenStack is a cloud operating system that allows for the provisioning of virtual machines, LXC containers, load balancers, databases, and storage and network resources in a centralized, yet modular and extensible way. It's ideal for managing a set of compute resources (servers) and selecting the best candidate target to provision services on, based on criteria such as CPU load, memory utilization, and VM/container density, to name just a few.
In this chapter, we'll cover the following OpenStack components and services:
Deploying the Keystone identity service, which will provide a central directory of users and services, and a...