Whale Hello There, Docketeer 4.0 is Here!

May Li
5 min readAug 19, 2021

--

Here at Docketeer, we understand the importance of Docker, containerization, testing, and security. We have designed a developer tool to give engineers the ability to visualize metrics of running containers while enabling users to configure personal notifications for performance thresholds.

Before we get started, we should set the stage with our tech stack:

  • Frontend Library: React (Hooks, Router)
  • State Management Library: Redux
  • Desktop App Framework: Electron
  • Bundler: Webpack
  • SMS Messaging: Twilio
  • Data Visualization: Chart.js
  • Testing Framework: Jest
  • Testing Utility: Enzyme
  • Relational Database: PostgreSQL
  • Server: Express

A Brief Overview of Docketeer

The Docketeer team believes in an exceptional experience for developers by providing the best optimization and visualization to gain the most from their containerized applications. Our recent launch focuses on improvements through the implementation of security and metric enhancements.

Docketeer 2.0/3.0

In 2020 Open Source Labs launched an open source GUI specifically focused on Docker that would maintain a platform for managing Docker images and containers.

With that said, Docketeer incorporates various features — to get in more detail, let’s take a look at Docketeer and how it works. The user will be required to login based on the credentials of a system admin, admin, or user. These credentials undergo a rigorous salting and hashing process before being stored in our relational database for an additional layer of protection.

Once logged in, at the top of the navigation bar we can locate the setting’s tab, users are able to configure settings for maximum control of their containers whether it’s through the adjustment of notification preferences or the connection of Github repositories.

Settings tab to enable notification preferences.

As a system admin, the user will have the capability to use the users tab underneath settings. Here, the system admin will be able to utilize the user generator to create users or admins with a username, password, email, and phone number.

Users tab showcasing current users and create new users feature.

As we move down to the containers tab, the bar chart will provide in-depth information about currently running containers. Users will have the ability to leverage control to run or stop their containers through an easy click of a button.

Tab for running and exited containers.

Moving along to the images tab, it showcases stored images that allow administrative users to run or remove images. Additional features include the option to pull down an image repository from the Docker Hub.

Tab for stored images and feature to pull Docker Hub image repository.

The user has the ability to visualize metrics through easy-to-read graphs. These metrics include important information such as the current and history of CPU usage, memory usage, as well the current net/block IO. It aims to solidify the monitoring of building, running, and distributing applications from a clear-eyed view through the user’s preference.

Metrics tab showcasing cpu and memory usage in a pie chart.
Metrics tab showing CPU and memory usage.
Metrics tab showing container memory usage over time.

The Docker-Compose tab provides an easy and efficient way to docker-compose YAML files without the cumbersome process of using the command-line interface (CLI).

Tab for uploaded Docker YAML files.

Lastly, Docketeer offers the System Prune feature, which allows the disposal of all unused containers, networks, images, and volumes.

Docketeer 4.0

Security

We have re-engineered our backend logic to promote higher security and prevent unwanted threats. Through the utilization of bcrypt, Docketeer has an even more robust system to prevent any brute force or rainbow table attacks.

With the CIA security model in mind, Docketeer encompasses confidentiality by instantiating a unique token for system admin at each login session. A hashed token is required for any functionalities throughout the application.

The integrity of Docketeer has substantially improved for all user roles by ensuring all data is protected from unauthorized changes. In the previous release, if a user (who does not have system admin privileges) knew specific endpoints, they would be able to use 3rd party software to bypass the server and obtain information that was not granted to them. The availability of pertinent information is not sacrificed with the upgraded backend security.

Metrics

In order to properly visualize block IO data, a dynamic graph was instantiated to view the read/written IO bytes over time.

Block IO represents the amount of data the container has read to and written from block devices on the host.

Metrics tab for IO bytes read by image over time.
Metrics tab for IO bytes written by image over time.

Implementing a visualization tool was necessary for the metric as block size can impact the processing magnitude required on servers, networks, and various storage environments.

As a result, developers will be able to monitor their containers for maximum efficiency.

Testing

The existing Jest and Enzyme testing suites were updated in order to confirm the proper images, containers, and graphs were rendered as expected. This was accomplished through synthesizing additional testing files in order to verify that newly added features were integrated cohesively into the application.

Optimization

We have systematized existing algorithms in the codebase in order to generate container metrics at a five-minute interval. Executing these changes allows users to gain insight into container performance more frequently.

Check Docketeer out on GitHub!

Article co-authored by:

If you would like to know more about previous releases of Docketeer, check out these Medium articles!

--

--

May Li
May Li

Written by May Li

When I’m not burrowed in code, you can catch me in a car driving along scenic routes, sitting at cafe shops, or curled up on my couch binge watching movies.

No responses yet