CoPilot: the ContainerPilot UI

By the end of 2016 ContainerPilot was getting great reception, and there was great demand for a dashboard from which people could see the state of their applications. Similarly, Joyent customers were demanding a more sophisticated tools to schedule their Docker containers on Triton.

Unlike other clouds, Docker containers on Triton run on bare metal, not in VMs. Triton emulates the Docker API, so customers can simply do docker run myapp via docker or docker-compose, and never have to start or manage VMs.

A big scheduling feature Triton lacks, however, is any mechanism to make sure the expected number of containers is running at all times, that is: supervision. On AWS you can do this with VMs using “Auto Scaling Groups,” while Azure calls it “VM Scale Sets” and on GCE it’s “managed instance groups,” though all of those are focused on VMs, not Docker containers running on bare metal.

The combination of supervisory scheduling on Triton, with ContainerPilot in the container, which orchestrates the application, and a visual dashboard to observe and manage everything was a promising solution for most customers and prospects.

Customers really loved the features and functionality they imagined from the this clickable mockup.

I was excited to be able to bring in the great folks at Make Us Proud and YLD to work with us to design and build the UI component. They were truly a wonderful team to work with, and Antonas Deduchovas documented his experience in a series of five articles detailing everything he learned:

Antonas’ posts cover how and what he learned about the users, and the needs they had in managing applications. Similarly, Alex Jupiter did a series of posts with his lessons learned:

The UI/UX design work progressed well, but after some false starts, the effort to implement autoscaling groups capability on Triton eventually became what is described in this separate post. By the time those autoscaling/supervisory scheduling features were ready to start testing, the market for Docker had shifted entirely to Kubernetes and the opportunity for Joyent to compete against that with our bare metal Docker offering had passed.

We’ve had to shelve the work here, but the lessons we learned while pursuing it will live with us all.

We more than fond memories, however. The UI toolkit is open source, as one example, and the repo has other bits we’ve already reused in other projects.

Finally, two more posts worth linking here:

The share image for this post comes from Antonas’ posts.