A Swiss army knife for universal container management — Portainer

A Swiss army knife for universal container management — Portainer

Portainer is an open source container management tool with an intuitive GUI for managing Docker/Swarm, Nomad, and even Kubernetes clusters, it can be considered a universal tool for delivering services for containerized applications. One of the main advantages of the Portainer is its simplicity in managing container operations. It removes the complexity of using CLI and writing YAML scripts with its easy-to-use user interface, which helps in reducing the adoption time for the engineers.

The product was never designed for DevOps experts.

The above statement sums up the philosophy of the team behind Portainer — to make containers simple without compromising capability. The tool is designed keeping in mind people who want to get stuff done and not worry about how.

How does Portainer work?

The Portainer environment consists of a container and Kubernetes clusters. The ability of the platforms easy to configure and set up process makes Portainer a tool for container as a service. The tool is built around two elements, Portainer Server and Portainer Agent inside. To enable communication between the central server and the Agent, every node in the cluster needs to be running an instance of an Agent. Similarly to enable communications between any third-party dev tools and clusters, a Kubernetes compatible API allows Portainer to be used as a security conduit and enables seamless communication, while Portainer manages all the required permissions.

Easy Deployment

One of the key features of the Portainer, as discussed earlier is its simplicity — Simplicity in deploying cloud-native applications on the cloud, on-prem or hybrid environments using simple natural language prompts presented in the user interface of the application. If a user requires some advanced interfaces, the platform also supports them through its API, which allows you to connect your CI/CD tools or any other deployment tools. The GUI hides all the complexity of writing complex yaml configuration files and allows deploying a container or a Kubernetes cluster in a few clicks.

deploy.png

One can browse through Docker Hub repository for any docker images. The support for Kubernetes clusters from HELM charts is available but currently limited to the Bitnami HELM repo. Suppose a user wants to deploy a commonly used application. In such case, the effort of future deployment of such applications can be minimized by the Custom Templates feature provided by Portainer by configuring images, Network, Volume, etc.

Portainer also supports automated deployment by connecting Git repositories to Portainer, so that any changes made in the Git repo are automatically deployed, which would be like a Continuous Delivery - a CD system. For CI operations, one can utilize "Poller" to regularly check for the changes made in the Git repo.

Manage containerized enviornments

Portainer's management functionality enables configuring permissions for the platform users to secure internal image repositories. Its Registery management feature provides functionality to perform actions like re/tagging, and deletion without the use of any 3rd part tools or services by interacting with the remote registry. Portainer also allows users to seamlessly integrate with 3rd party CI/CD tools to build secure and automated workflows.

Persistent data storage

To mitigate the challenge of managing persistent storage, Portainer supports the creation of persistent volumes in two ways, a locally stored volume, and a remote volume. Authorized users can upload/ download to the persistent volume attached to any container. In Kubernetes environments, Portainer allows expanding the persistent volume by the admin with a visual representation of the allocated capacity.

Networking for Docker and Kubernetes components

Portainer supports creating and using networks for Docker containers through the bridge, overlay, or MACLAN. Similarly for Kubernetes, the tool allows deploying their applications via Kubernetes Load Balancer. The platform has support for kubectl enabling users to troubleshoot applications without leaving the Portainer platform.

create-net.png

Interpreting data through Observability

IMG_0137.jpeg image courtesy-portainer.io

As containers can fail and be rescheduled within seconds, that doesn't mean there isn't an issue. Portainer’s monitoring and observability features displays all the logs within the platform and stores them for further forensic analysis. The platform also allows a user to visualize the real-time performance of containers/pods and troubleshoot any failures from within the interactive console, all this without the use complex files and commands from the command line.

A platform with powerful policy and governance

The Portainers governance model is based on RBAC and Oauth protocols enabled in a simple click-to-configure interface. With its access control policies, a user can only see or interact with any of the containers/pods provided the user has the ownership credentials. However, Administrators have the authority to assign ownership and elevate permissions/capabilities of high-risk technology components on the platform.

Apart from all the above features packaged within a KISS concept, Portainer offers many other features which an organization can leverage in their containerization workflows. In its entirety, the power-packed features and its simplicity in usage make the platform a swiss army knife for universal container management.