Part 1: Operate your own virtual and hybrid cloud using 100% open source tooling
The design goals
This site will explain how to build your own private, maybe hybrid cloud on leased servers. If you want, you don't need to own any of the underlying computer, network or storage architecture. This can all be abstracted away, and yet be fully portable. You can even move machines while they are providing live services to your users.
Who is this for?
As a business owner, you might be thinking that going to the cloud isn't really saving when the costs move from your datacenter operations to a hyperscaler and that's true. You exchange things you own and know the cost of to something that may have wildly varying costs. It also may not be as reliable as you expected it to be. Designing for specific hyperscalers (AWS, Azure, Google Cloud, etc) locks you firmly into an ecosystem where things are expected to work in certain ways. There's no workload portability from AWS to Google Cloud built in. Migrating away is a tough nut to crack. Additionally, the hyperscalers provide you with various foot-guns to shoot yourself, repeatedly. The Internet provides for many examples of exploding costs, such as this one about a build system.
As a traditional administrator or operator of IT functions, you may be interested in 'how the sausage is made' by the hyperscalers. How is it possible to offer abstracted IT services using infrastructure as code ? Maybe you want to learn IaC, Kubernetes or containerizing infrastructure - you've come to the right place.
I have the concept of an idea!
And I have the need for a solution - let me describe the 'what' and the 'why' I am building and then you can decide if that's of interest. I need to create my private AWS, Azure, Digital Ocean, Vultr-like compute cloud with hyper-converged storage. AWS offers over 200 services. Google over 150. Azure over 200. In reality, you and I only need a small subset. Anything else can be implemented when needed. I have been hosting services and hosting since 1997 myself and own existing infrastructure I want to migrate (authoritative DNS and email servers and legacy systems like Postfix and OpenVPN). I want that to run on this new cloud, with even better service levels.
**Note** This guide does not provide you with a vendor specific design (using Juniper, Cisco, etc). It uses Linux end-to-end at zero cost and zero trust.
My must-have requirements are:
- Secure by design, zero trust.
- Linearly scalable, adding/removing machines is simple.
- Completely managed as code, well - almost.
- 99.95% availability with public status page, https://uptime.is/99.95 means less than 43 seconds downtime a day. Must beat IBM Cloud availability ! ;-)
- 100% self-hosted and controlled. Non-negotiable. Digital sovereignty for everyone!
- Multi-tenant and completely separated control and data planes for tenants
- Fixed cost under 100 Euro/month for 512vCPU, 256GB RAM and 4TB available disk space.
- A regular sysadmin (aka tradmin) needs to be able to easily run this, no FAANG degree required.
- 100% open source, no subscriptions or licensing required
… you get the gist. Oh and also, move VMs around (live migration), high availability, disaster recovery and workload portability. Ideally, it’d be all of these things but then it’d be 2028 and I still wouldn’t have a new platform. But wait - I did it and so can you.
So Sascha, why didn't you just use ... Cloud9, Vmware, Openstack, Cloudstack, Talos, Proxmox, etc ... ? This particular space of infrastructure management is the hot spot of IT. While I was going through the implementation and testing stages of my project, I was reminded of the "orchestration wars" and why Docker Swarm didn't win over Kubernetes. It actually irked me a bit to realize the step from running a single-node Docker application to orchestrate a very scaleable large multi-node application is surprisingly small. Simply joining nodes with a Swarm makes the entire network magic happen. You just need to forget everything else before and after it ... /sarcasm