At DockerCon SF 2018, I had the chance to sit down with Neil Cresswell, Co-Founder and CEO/CTO of Portainer.io. Portainer is a web-based, container management dashboard focused on “day 2 operations” for IT teams either just starting out with Docker, or using Docker wide scale in production. As a long-time fan of Portainer, I took this opportunity to ask about Neil’s future vision & roadmap for his well-loved product, with over half a billion pulls from Docker Hub.
Portainer.io is a global company with roots in New Zealand and France, and with developers spread across the four corners of the globe. Besides leading Portainer, Neil is the principal of a consulting firm focused on virtualization, DevOps, and container technologies in NZ, Emerging Technology Partners. Anthony Lapenna, the lead software engineer and co-founder of Portainer.io, hails from France — he was also the Lead Platform Engineer in another one of Neil’s ventures, Cloudinovasi, a Docker hosting platform on VMware, targeting the South East Asia market with operations in Indonesia, and which was the catalyst for the creation of Portainer.
Cresswell’s vision is for Portainer.io to fill a niche where sysadmins, more comfortable working in a UI world, need a user-friendly graphical control plane to monitor & manage their container landscapes. Whilst there are numerous container management options aimed at enterprises building and managing their own “12 Factor Apps”; for many containerizing legacy applications, Portainer hits the right spot. Portainer is an “unbundling” of the control plane from offerings such as Docker EE, Redhat OpenShift, and VMware Pivotal Container Service, and is ideal for organizations that prefer to select their own technologies that make up their management “stack”. Portainer’s goal is to be a “manager of managers”, meaning rather than bundling technology within Portainer (such as a registry, or performance monitoring tools), Portainer will instead let choose from a number of supported technologies which can be managed natively from within Portainer.
Cresswell stated that, in his view, the vast majority of container management tools/platforms on the market are predominately DevOps focused, whereas Portainer is heavily operator focused, better aligned to fit into an ITOps world. Whilst Portainer retains a focus on ITOps, its extensive open API’s mean it can be equally at home in a developer-centric environment.
Cresswell acknowledges that there is a clear distinction between the needs of a large enterprise, and the needs of a SME; he plans to address these through paid (closed source) extensions to Portainer that provide advanced capability such as two-factor authentication, single-sign-on, granular role based access control, and activity logging/alerting. Further, Cresswell said that large enterprises generally have a dedicated network operations center, so providing a real-time performance and availability dashboard within Portainer is key to it being the heart of an enterprise container landscape.
Major New Features
In June and July, the Portainer.io team has kept busy by releasing versions 1.18.0 through 1.19.1 with the following new features recently added. If you haven’t tried Portainer recently, its simple to setup an instance with an nginx reverse proxy to terminate SSL.
Agent Support – If you are using a distributed Docker environment, you can now deploy an agent to your remote Docker Hosts (Windows or Linux, Swarm or Standalone), negating the (arguably, risky) need to expose your Docker daemon externally. Communications from the agent to Portainer are TLS encrypted, and the agent only accepts communications from the Portainer instance configured to manage it.
Central Dashboard – Introduced in Portainer 1.19.1 is a new “single pane of glass” management dashboard, which lists all the endpoints defined within Portainer, and shows “at a glance” statistics for each. The statistics are polled on a regular (and configurable) basis, and include things such as the health of the endpoint, the number of running stacks/containers, the number of volumes and images, and the overall capacity (CPU/RAM) for each. From this dashboard it is quick and easy to visualize your entire Docker host fleet.
Windows Named Pipes – with Windows powered Docker Hosts, it was previously quite difficult to connect to the Docker daemon, with Named Pipes, introduced in Server 1709 and 1803, and Portainer 1.19.1, you can now use a volume mount to //./pipe/docker_engine (equivalent to /var/run/docker.sock in Linux) to allow Portainer to control the Host upon which is it running.
More than just Docker – Many Portainer users run the portainer/portainer container on their local machine, to manage multiple remote endpoints. However, Portainer also supports connecting to the Microsoft Azure Container Instance API (experimental).
Stack Deployments – Portainer supports deploying Docker-Compose stacks from version 2 (host containers) up to Compose version 3.6 (swarm services) right from the dashboard. You can copy & paste the docker-compose.yml file directly into the Portainer Web editor, upload it from your computer, or pull it from a Git repository.
Endpoint Groups – If you have more than a handful of Docker Hosts/Clusters defined in Portainer, you might want a way to logically group them; Endpoint Groups provides just this feature, allowing you to define access control per group, and in the future, being able to perform Portainer functions across all members of the group. In addition, Endpoint tags can be assigned, which are used by the new central dashboard to provide a way to filter/search within your list of endpoints, helping to pinpoint an endpoint of interest from your list.
Custom Application Templates – Portainer has long curated a list of commonly used container images and provided these as “opinionated deployment” application templates, and you have always had the ability to repoint the template list to your own list, but starting with Portainer 1.19.1, you now have the ability to modify the curated list directly within the Portainer UI; you can edit existing, remove all, or add your own, all with a few mouse clicks.
LDAP/AD Integration – Portainer has extended its support for LDAP, to now allow Portainer users to be dynamically created and added to Portainer teams upon their first successful login, with team membership being based on LDAP group membership.
Roadmap / Future Plans
Revamp of the Portainer.io website – Users will be able to purchase add-ons and support directly from the Portainer.io homepage, with online payment options through an e-commerce shopping cart.
Paid Plug-ins – Portainer.io is developing a select number of paid plug-ins, including some frequently requested features such as an audit log, OAuth integration, and 2 factor authentication. The core version of Portainer will always be free to use, and the plug-in hooks will be documented so third-party developers may publish plug-ins as well.
Additional Support Options – Portainer.io has always offered paid support on a subscription basis but they have broadened their options to include per-host, and per-incident options. Support right from the development team is now $100/year/host or $1200/year for unlimited hosts with up to 4 named users. Per-incident support can be purchased for $100/case.
Kubernetes Support – The Portainer.io team will, within a 12 month timeframe, be adding support for Kubernetes orchestration management, initially through support for “Kubernetes as a service” cloud hosted options, and HyperKube as an opinionated on-premises Kubernetes deployment option.
Thank you to Neil Cresswell, co-founder and CEO/CTO of Portainer.io for taking the time to chat with me at DockerCon SF ’18 in a Hallway Track. We look forward to meeting Anthony as well in a future event, and look forward to collaborating with the team on marketing & community. If you are a container enthusiast and haven’t tried Portainer, you’re in for a real treat. Grab your copy from the Docker Hub and read the official documentation here. In addition, if want to stay up to date with all the latest announcements direct from the Portainer developers, then subscribe to the Portainer newsletter here