What does Portainer actually do?
What can Portainer make better in your environment?
What’s the actual point of using a tool like Portainer?
A recent Reddit thread of the CEO of Portainer got engineers thinking about this question.
As I dove deeper into Portainer while reading the comments in the Reddit thread above, I realized that Portainer isn’t just a platform to manage Docker.
In this blog post, I’ll break down a few key attributes that you should think about.
What People Think Portainer Is
Reading through the Reddit post above, Googling around, and seeing what folks are saying on social media, there are a few things that everyone thinks Portainer does:
- Manages Docker
- Manager for Docker Swarm
- Manages home labs for Docker and Kubernetes.
Here’s the thing - all of this is true.
Portainer is an awesome way to manage your home lab. I personally have a server at home where I’m constantly running Kubeadm clusters for demo purposes. Whether I’m testing out something like Cilium and eBPF or doing some security testing, I spin up a bunch of clusters and want a way to manage them.
Portainer is awesome for that.
From a Docker perspective, yep, it does that too. As Docker and Docker Swarm began to become more popular, Portainer came to the rescue in terms of having a location to manage all of the containers and clusters.
Although all of these points are accurate, it’s arguably only 10% (if that) of what Portainer actually does.
As everyone knows that follow what I do in the space, I don’t consider myself an influencer. I’m not focused on “views” or “likes”. I’m focused on helping to make engineering team’s lives easier. I’m solely focused on helping engineers do things the right way in production.
The above is exactly why I want to tell you what Portainer actually does.
What Portainer Actually Is
As mentioned, Portainer does everything explained in the above section, but it does way more.
Before jumping into it, let’s talk about a few things from an orchestration perspective.
First, what is an orchestrator?
An orchestrator manages applications, and in the container world, it’s all about managing containerized applications. The management can be anything from deployments to self-healing to scheduling where containerized apps should run for efficiency and everything in between.
What you didn’t just read was that orchestrators are supposed to handle users, groups, security, automated/repeatable deployments, or overall cluster management.
Because that’s not the job of an orchestrator. An orchestrator takes a containerized application and scales it for you. That’s it.
But what about everything else? Thinking of a few things:
- User management
- Group management
- Overall cluster management
- Management of Kubernetes resources (Deployments, Pods, Ingress, etc.) across multiple environments
- Connecting different container registries across environments
- GitOps management
- Central logging and probably fifty million other things that aren’t listed.
There needs to be some platform or tool that makes handling environments easier. When I say environment, I mean everything in the environment - from the actual clusters, to application management, to how users are allowed to access the cluster.
Let’s not forget that clusters aren’t in just one place. When thinking about Kubernetes, the clusters can run anywhere from almost any cloud to on-prem to a hybrid model (both in the cloud and on-prem). How can you manage this without proper…. management?
With the growth of orchestration tools like Kubernetes, combined with the fact that engineers are still trying to figure it all out in many cases (including myself), there needs to be a way to manage containerized environments that isn’t imperative.
That’s where Portainer comes into play.
The Job Of Portainer
Portainer takes the complexities of managing orchestration environments and breaks them down for you in bite-sized chunks to manage throughout your environment.
- Brand new to orchestration platforms like Kubernetes.
- A senior-level engineer that has worked with Kubernetes for many years.
- A senior-level engineer that has worked in various environments, like VMWare-based environments, and understands containers, but hasn’t really dabbled in them.
There are always the same type of problems.
- How can multiple environments be easily managed?
- How can I manage my environments from one location?
- How can I make this less of an imperative method for management?
That’s what Portainer does.
Portainer comes in and literally handles all of the Day Two (insert more buzzwords here) Ops for you. It can even handle some of the Day One stuff for you as there’s a way to deploy Kubernetes clusters in Azure, AWS, GCP, Digital Ocean, etc…
You have the ability to manage all environments, whether they’re Docker, Kubernetes, or Nomad, and you can have both read and write permissions via Portainer based on your user's authorization permissions.
For example - taking a look at the below screenshot, you can see the environment selected is a Kubernetes environment. Not only can I manage my Kubernetes clusters in one place, but I can do other things like implement Ingress controllers, Helm Charts, deploy apps, secrets, Volumes, and a lot more.
My Overall Thoughts
As I’m sure you were able to gather throughout this blog post, and throughout the content that I put out in general, I’m really excited about what a platform/tool like Portainer can do for production-level environments and user-level environments. If you’re managing five Kubernetes clusters, you can use Portainer. If you’re managing one hundred Kubernetes clusters, you can use Portainer. The ability to have one location to see into your entire containerized workflow is pretty groundbreaking.
Everyone wants to deploy Kubernetes and get it up and running, but my thought process always goes back to “but what about after? In one month? In one year? Then what?”.
Because utilizing orchestration in production is still such a new thing, those questions haven’t been answered yet. To be honest, most organizations are just getting Kubernetes up and running right now.
A platform like Portainer is needed to answer the “but what about in a month or a year?” questions.