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-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:
- Joyent CoPilot: Bringing Application Awareness to Cloud Infrastructure, Part I
- Part II
- Part III
- Part IV
- Part V
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:
- A CoPilot Story (Pt 1): Welcome to CoPilot
- (Pt 2): Our Product Creation Process…
- (Pt 3): Designing Metrics
- (Pt 4): Designing Notifications
- (Pt 5): Designing The Service & Application Catalogue
- (Pt 6): Designing Versioning
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.
Finally, two more posts worth linking here:
- Do I need a Design System?, by Yaili, who was instrumental in shaping the design system to meet our needs
- Products should start with what you want to learn, not what you want to build, by Anthony, who brought the design team together on this journey
The share image for this post comes from Antonas’ posts.