Is OpenStack fighting a lost battle?
memooo.ooo
memooo.ooo
- It doesn't follow the "normal" OSS process of submitting pull requests. Their CI/Repos/Bug tracking systems are different enough that a lot of people probably don't bother trying to contribute
- The docs are not great and sometimes do not get updated.
- You basically have to run the control plan in containers to make it realistic to deploy. Kolla-Ansible and Openstack Helm are pretty good here
- The APIs are pretty slow since they're all in python
- You also have to deploy Ceph to get storage, which is itself an entire beast
That and that everything is so goddamn brittle. It's incredibly hard to debug Openstack because there are soooooooo many different components involved in simply hosting a couple KVM-based VMs, and the fact that I tried that right during the Python 2->3 conversion didn't help either.
Also, everyone of the myriad subcomponents needs their own database, their own user accounts, there are no shared configuration files. I get why it is so highly modularized (because of high-availability demand for each component), but FFS they could provide something like "kubeadm" that does all the tiny steps involved into setting up a cluster and joining a new node for you.
Once you get it running, it is pretty much smooth sailing until upgrade time, at which it gets really nasty yet again.
> The docs are not great and sometimes do not get updated.
One cannot help but feel that the docs sometimes haven't even been tested in real life.
The huge and painful Python 2->3 transition could not have come at a worse time for OpenStack adoption. I believe it's one of the major reasons why OpenStack was found to be difficult to use, brittle, and documentation not up-to-date.
We looked at open stack several times and never had a team large enough to justify trying to run it. It’s just way too complex and requires too many machines to get the full stack running. We could manage 5k plus machines with just 5 relatively small hosts and keeping the stack extremely simple.
Now you are going to say that we don’t provide the same features and that is true but the few cases where it would have been nice didn’t justify it.
I can write a datacenter automation system from scratch that i know won’t be causing me alerts at night faster than I can get a resilient openstack setup running. Unless that changed why would I use it.
I’m hoping some time I can work on DC automation again though. Brings me a lot of joy to get to figure out why the brand new NICs are eating LLDP packets before they get to the hosts and other fun problems you never get to see in the cloud.
You do not have to use Ceph, although it is the most popular storage backend for OpenStack. Cinder is the OpenStack project that's used to provision block storage for OpenStack. Look at the list of Cinder drivers [0] to see what the storage options are. I do agree with this part: "is itself an entire beast"!
[0] https://docs.openstack.org/cinder/latest/reference/support-m...
> Deploys OpenStack services on top of a Kubernetes cluster.
Fascinating. Although surfing around their GL org it seems they're still very early in that process
Trying to get all the AWS early adopters to abandon their investment and move to something else seemed like it was a huge barrier to adoption, so I started off contributing to the AWS support for kubernetes and making sure that kubernetes worked well there. But the pains of installing OpenStack from upstream were fresh in my mind, so I also contributed to make sure that kube-up worked well and then (as we outgrew that architecture) started the kOps project. My goal is that you should always be able to run OSS kubernetes from upstream, even if you just treat that as an insurance policy that gives you the confidence to use a managed service.
I think the miracle of kubernetes is that I was just one of a large number of people here, each of us bringing our past experiences to make kubernetes better in some way. And the community continues to grow with people each addressing their own painpoints, which does create a lot of churn/progress (depending on your perspective!) I'd say that the people that organized the community were the unsung heroes here, and I suspect they learned a lot from OpenStack as well.
In effect providing free work to amazon.
My first OpenStack install was on a bunch of VMs. Got that to run following the official documentation. Got enough people interested in it, that I was "allowed" to salvage whatever hardware I could find and put in a Rack.
Getting Neutron to work was a head first intro to networks and in the end I had to learn how to configure actual network hardware.
After adding Ceph on top of old spinning disk, watching them die one after the other and the cluster was still up with performance not worst than the IBM-Stuff we were paying for gave me warm-fuzzy feelings.
Thanks to Triple-O, Fuel and most of the other "installers" at that time I learned that - the "big guys" don't know what they are doing either ;-)
At the end of the day, it took the "mystical" out of the cloud, and for Junior me that was good - it also saved me from the path management wanted me to go: Sharepoint developer/admin.
There _was_ an EC2 API that OpenStack nova had back in the day, that became unmaintained and was eventually removed
http://cloudscaling.com/blog/openstack/the-future-of-opensta...
This blog was from 2015, and the end result was that nobody was willing to step up and do the hard work of creating these API compatibility layers.
Frankly, there were barely enough resources being put in by large companies, to keep the OpenStack APIs themselves well maintained.
So, I think the issue of OpenStack was that everyone suddenly decided to shift to containers, instead of VMs for their deployments, and OpenStack no longer was required.
Oddly enough some of the kubernetes bare metal stuff is borrowing from OpenStack (Metal3 is built on ironic)
-Jay, Ironic PTL
Having worked with large footprints on both OpenStack and AWS, it’s also clear that there are just inherent difficulties with running your own hardware, especially in your own data center. Even if you make the investment in a good infra team, it’s cost prohibitive to get anywhere near the experience of something like EC2 in terms of hardware availability and hourly billing. Not to mention they’re literally inventing their own hardware for things like high-performance storage and ARM servers.
It's similar to the fact Microsoft owned desktop computing for many years. Yes, it was a problem, but the people purchasing Windows and Office weren't interested in solving it. They just want to do their jobs.
(Slightly biased former Telco employee opinion)
To be honest I have no idea who the winners will be but as a user of OpenStack I can say for sure that that won't be it.
Kubernetes and to a lesser degree Nomad are diverting orgs in a different direction. I would say that Nomad is probably far easier/better for most orgs.
I've also seen a number of teams keen on buying their hardware from Oxide.
It's a wild world out there right now.
What is supposed replacement for OpenStack? Some proprietary API glued with PHP and bash scripts? Who will write terraform provider for that API? Not me, not hoster for sure.
Am I supposed to leave that small hoster and move to AWS? We don't have AWS data center in my country and I have obligations to keep data inside borders (that's not even saying that AWS like 5-10x more cost).
The only realistic alternative to OpenStack is to throw away terraform and infra gitops and do everything manually. That's huge step backwards.
Except that the commercial cloud is exorbitantly expensive, especially for persistent (i.e., always on) services. If your business has already invested in brick and mortar infrastructure, networks, sys admins etc. having an on-prem OpenStack cloud looks like a more appealing prospect especially for big projects and medium/large companies. Having employed OpenStack for a number of years, it is true that it does not always feel like a first class citizen. YMMV.
With K8s you have all those opinionated distributions like K3s, minikube etc. which lower the bar considerably. There are countless guides on YouTube.
Though, I heartily agree with "it's easy to get started with Kubernetes, and difficult to get started with AWS".
When I tried looking at deploying an application to OpenStack (as an alternative to deploying to AWS), I was barely able to setup an OpenStack cloud environment on my computer. The most practical option was to use a public cloud which provided OpenStack APIs.
Even with public clouds with OpenStack APIs.. my experience trying "compute VM with an internet-facing load-balancer in front" was that different public clouds required different setup for this. -- TBH, this surprised me. I understand that you can't just copy-paste Terraform code for AWS and have it work for GCP; but I had expected to be able to copy-paste Terraform code for one OpenStack cloud and have it work with another OpenStack cloud.
And don't forget to add Proxmox Backup Server to your list, live restore is a fantastic feature of it :)
Triton is much simpler to operate, manage and support - and we’ve never looked back!
OpenStack did find some markets, enough to sustain a couple of vendors, but it didn't replace AWS, but it's also not trying to replace AWS anymore, it's trying to continue to serve the users it did find.
Shifting more towards my personal opinion: Containers are, in most cases, a more sensible unit of software deployment than VMs are, so OpenStack was always going to "lose" to something built around containers.
Shifting more towards other peoples' opinions: Severless is, in most cases, a more sensible unit of software deployment than containers are, so k8s will either be supplanted or become uninteresting infrastructure at some point.
containers are only really better than VMs because they use fewer resources. They are not better than VMs in that you still have a whole software stack inside them that you have to care about. Anyone building their own containers should also be maintaining a whole pipeline for updating all of the software in the containers that isn't their application.
Narrowing the unit of software deployment down to the application itself, removes a lot of that (or rather abstracts it to whomever is responsible for maintaining the serverless runtime containers you use).
Rewrite it in Rust. /s
Implement transparent APIs from AWS, Azure, GCP for OpenStack, so we can reuse
Pulumi and Terraform.
Make it easier to install it.
Make it easier to work with Prometheus stacks, Service mesh and other cloud
native tools.
Make it less consulting-ware… whatever that means.
Uff. How about to make OpenStack manageable by small infra team without paying to vendors? I guess it's the last point.I’ve used it at two clients and it lacks critical features. At least with k8s you can bolt on the pieces you need.
OpenStack has been around for 10+ years and mostly just provided slide-ware value and maybe some strategic negotiating leverage and insurance of various forms.
It’s actually interesting to me to hear from the sibling comment, that someone actually got to 1000s of VMs under management. I’m still not convinced it’s necessary or adding value in such situations vs “the field”.
There isn't much competition in the market and most of it is closed source, proprietary stuff - OpenStack in contrast is open source and made to fit the needs of CERN (they run 320.000 nodes). That maybe also explains the choice of Python and the sorry state of its documentation - scientists have ample time to deal with bullshit, corporate does not.
[1] https://www.openstack.org/videos/summits/berlin-2018/towards...
As for docs, they vary from project to project, but one aspect I've encountered as a frustration and heard large scale operators echo, is that often search index results seem to favor some older specific release as opposed to the latest release, which creates a lot of confusion if your not aware of it and don't see the warning on the rendered webpage. Some other popular open source projects have encountered the same exact challenge, and it is a hard need to balance.
[1] https://twitter.com/ArneWiebalck/status/1478778715005984772
Yes ... but somehow Kubernetes has an even more confusing and difficult installation story (and don't get me started on OpenShift).
It's also a beast to even compile and package, to say nothing of actually deploy
I knew it was doomed.
I think HashiStack is a much more promising "v1" but not necessarily the "Linux of Cloud OS" yet.