This project is a "Deep Dive": In a Deep Dive project I'll be investigating as much about the subject as time allows and assembling the posts in some orderly fashion. I'll also be writing high-level notes and opinions in the project page itself.
OpenStack is a collection of open-source projects that work together to form a private cloud solution. It's by far the biggest open source private cloud option available. The OpenStack Foundation has over 105,000 community members from 187 countries around the world.
At a high level, you can think of it as an abstraction layer that sits on top of other popular cloud technologies such as storage clusters, hypervisors, and network solutions. For example, KVM (the popular Linux hypervisor) is not part of OpenStack, but it's used by Nova, a component of OpenStack which can orchestrate against KVM, VMWare, HyperV, and Xen.
This project includes the following posts.
Date | Article |
---|---|
2019-08-13 | Install OpenStack on Metal - Intel NUC |
2019-08-11 | Install OpenStack inside a VM |
2019-08-26 | Modifying OpenStack Kolla Docker Images |
2019-12-03 | Operating OpenStack from Ansible |
2020-01-25 | OpenStack Cloud-Init Powershell Example |
2019-12-17 | Injecting KVM Drivers into Windows |
OpenStack is significantly more difficult to get started with than the public clouds. You can't really install OpenStack without first understanding what each of the main components does, and even then each one has its own quirks for their installation. If you want to install in production, you also need to figure out how to get it all highly available.
Unless you've got a huge team that's eager to tackle this complexity, I'm going to use this opportunity to plug the software & solution I've helped build for Breqwatr. They'll stand up your cloud in a couple days flat, teach your team how to use it, and keep the lights on - all while charging significantly less than VMWare would cost for the same hardware.
Breqwatr, and companies like it, can be your trusted cloud partner and abstract away that complexity by handling the installation, upgrades, monitoring, and day-to-day operation of the cloud.
If you're not looking for a production deployment and instead want to try OpenStack out to learn it, there are a few good options.
The standard developer option is probably DevStack.
In truth I haven't used this since I've always needed my OpenStack installs to mirror a production-ready environment. If I try it out, I'll replace the above link with one to a guide I write myself.
Another option is to install OpenStack on a physical server. I've documented my experience doing this using images from the Kolla project, and Ansible automation from the Kolla-Ansible project.
The nice thing about this approach is you can use a server at home, and once you're done it can be a VM host as your private house cloud.
Installing OpenStack on a physical server
This option is great for development use if you already have a cloud available or want to use a public cloud for testing OpenStack. The VMs you launch on it will perform terribly though, and there are some networking complications.
Don't bother trying to launch Windows VMs at all in a nested virtualisation scenario, you'll be lucky if they even boot.
Installing OpenStack on a Virtual Server
Managing OpenStack clusters is a pain. It has so many services, each with their own dependencies and operating instructions, there's a lot that can go wrong. One thing that's really helped with that is to containerize each service and deploy them all using Docker.
The Kolla project does such a great job of that, that there's no need to do it yourself. That is, until you need to change an image, for instance to install a Cinder plugin.