This email is shared in its raw form. Our thanks to Stored Value for allowing us to reproduce it. We are forever grateful. It captures the essence of what we do and what we are trying to achieve better than we ever could.
"We’re in the process of migrating currently. For us, it was a no brainer. So first, some backstory, we used Docker Support probably once prior to Mirantis’ purchase of Docker. The one time we did, we were told to migrate to a newer version. Fast forward a year or so, and Mirantis purchases Docker and with that came a litany of new support issues. So, with that as the baseline, let’s use that as the jumping off point into the RHEL [Red Hat Enterprise Linux] side of things and how best to solve a lot of issues.
Our goal was to maintain our Docker infrastructure while adding the ability for RBAC controls for developers to view logs in multiple environments while not having advanced privileges. Initially, we wanted Portainer but RBAC wasn’t quite ready. So for us, we went forward with Docker-EE. At that time it wasn’t a huge deal because it was still just Docker. With Mirantis however, the main focus was to push Kubernetes. It’s even in the name (MKE) for their replacement engine. On a conference call, we were told that Docker customers would be treated as first class citizens. I can tell you that’s very far from the truth. Even a base deploy now, whether you want it or not, includes Kubernetes....
Integrated Kubenerntes adds a major headache when it comes to networking. It also adds additional headaches with deployments. Once you’ve grappled with all of that, you get into the complexity of what RHEL has decided to do with RHEL 8 in disabling API access for Docker. In my experience, this causes stability issues no matter how you slice it. What’s worse, I poured through their documentation and it had nothing in terms of answers for how to properly set up Docker in RHEL 8. Point in fact, I asked about 7 or 8 questions via email, and they couldn’t answer them after 7 days.
Enter Portainer Business. Neil (Portainer CEO) and his team have bent over backwards to help from day one. And I do mean Neil and his team. He’s as responsive as any of the team and for me personally, as a father who also coaches his kids in about everything they play, I respond to that kind of leadership that leads from the front. Portainer just works. It does what Docker does best and uses the same KISS principle I grew up on. Just keep it simple. But instead of making this a very long email because honestly there is so much and you likely know how very technical this all is.
Mirantis VS Portainer
StoredValue has tried Mirantis and gave us a quick comparison:
Portainer has been far and away a better product in my opinion. Simply based off the deployment alone, it’s far more straight forward, and there’s nothing deployed that isn’t needed. One thing that Mirantis does (and I’m trying to think of the best/shortest way to say this) is deploy 10 services when they could/should deploy 1 or 2. So with that in mind, if we deploy on Linux we aren’t just deploying for the Linux environment, but also deploying Windows connectors and agents. This leaves us with multiple services that are scaled at 0/0. This is just unnecessary and seems like a security risk to have something constantly running/listening with no purpose. Further, it’s never been explained if we can remove them or not without causing problems with functionality. All this to say, Portainer is far more logical in deployment. Portainer is also ready to be used in current Docker environments. Mirantis can’t even be deployed in 20.04 LTS yet. Further it’s still running on Docker 19. Portainer offers far more flexibility. If we want to use a previous version, no problem. If we want to run newer, we can do that, too. We have choice.
One big thing I would point out is Mirantis’ move to Kubernetes. The fact that they renamed Docker Universal Control Plane (which ideally you would think they’d keep because it doesn’t specify Kubernetes or Docker...even if it was a contractual reason, they still are pursuing Kubernetes) to Mirantis Kubernetes Engine. It’s very apparent that the acquisition was solely to gain a base of users and move them to Kubernetes. As far as features go, I have yet to find anything they offer that isn’t done easier through Portainer. Portainer's UI is much easier to navigate. Even the small things that weren’t as straight forward, are still more simplistic than MKE. I would even push back on your mention of the CLI. At a certain point, you’re installing Portainer to use the CLI less. That isn’t a concern for us at all.
One addition that I remember offhand is adding another node either manager or worker. And maybe I’ve missed this but they do have a tab that displays the Manager Add command or worker instead of having to go to the CLI and run the command. I can’t see how that’s more or less beneficial as opposed to ‘they have this and you don’t’ type of feature. Again, Portainer might and I could’ve missed that. Another feature they have is the ability to add custom certs from the UI. I think Portainer is done through the deployment. Mirantis is either or.
Lastly, though I’ve had a terrible experience with it, they do have the option to upgrade the cluster from within the UI. I would think Portainer could be much simpler to do considering it’s just an agent and the Portainer-EE container rather than several. I know with the home addition I run on Open Media Vault, to upgrade, the easiest method is to simply re-run the installer which repulls and
deploys that way. Upgrading via the UI isn’t possible.
I wanted to say thank you again to you and all of your staff with how helpful you’ve been thus far. It’s been refreshing.