Triton Elastic Docker Service

tl;dr: Joyent’s Triton Elastic Docker Service is effectively a serverless Docker PaaS based on unique technologies that run Docker containers securely on multi-tenant bare metal. I led the go-to-market efforts before taking on the larger product strategy and execution. The messaging pivoted from one focused on the technology and operational benefits to a narrative of developer productivity and joy. The addition of ContainerPilot and the Autopilot Pattern addressed the more significant problems customers were facing while aligning the messaging and value proposition in a way that resonated in the market and dramatically accelerated growth.

Contents:

Containers have been the core infrastructure in Joyent’s cloud since our founding. Our early adoption of containers has enabled API-driven provisioning of cloud compute instances with better performance and lower costs than VM-based competitors, and now we’re excited to make our unique container technology available via Docker API.

Yes, that’s right, you can now provision Docker containers on our cloud simply by adding the Docker API endpoint for our data centers to your tooling and doing a docker run... or docker-compose up.

Docker containers are first-class citizens and true peers to infrastructure containers and hardware virtual machines on Triton. I used these slides in a recent presentation to show how Docker containers run side-by-side with other compute instances:

 

Demos

See how to connect Docker tools to the Triton Docker API endpoint:

 

See how to deploy, scale, and update apps with multiple containers:

 

Technology

SmartOS is the key technology that makes bare-metal containers secure on Triton. It’s a completely open-source operating system evolved from OpenSolaris, and the core container technology has been under continuous development for over a decade.

The container technology powering Joyent’s cloud has been battle-tested and trusted by organizations with some of the most demanding performance and security requirements. And the robustness of the platform is exemplified by container-focused features in the ZFS and Crossbow networking. Together, these technologies provide security matching that of VMs and bare-metal performance for compute, network, and storage.

These slides illustrate the convenience this technology offers for networking Docker containers. Every container has a NIC on the VPC of your choice, but the -p 80 flag to docker run adds a public NIC and configures the firewall to allow traffic on that port, without any need to manage bridge networking or port assignments:

 

Critical new components here include support for Docker API, Docker images, and the ability to run Linux binaries on SmartOS via lx-branded zones. That last part is possibly the most impressive: it works by translating syscalls from Linux to SmartOS/Solaris.

lx-branded zones bridged the gap between Linux binaries in Docker containers and the core container technology in Joyent’s SmartOS and Triton (formerly SmartDataCenter).

lx-branded zones bridged the gap between Linux binaries in Docker containers and the core container technology in Joyent’s SmartOS and Triton (formerly SmartDataCenter).

Most importantly to a lot of users: the entire technology stack is open source. Run in our cloud, or download Triton and build your own cloud. Don’t hesitate to reach out if you want the security and governance advantages of private cloud with our commercial support offerings.

Initial value proposition

Joyent wasn’t the only company to see an opportunity here:

 

Our early messaging about the platform focused on performance and operational convenience. These early blog posts are cringe-worthy now:

This animated architecture diagram highlights the components added or changed in our pivot to Docker and was heavily inspired by competitive intentions against VMware. We quickly dropped it in favor of more developer-friendly messaging.

This animated architecture diagram highlights the components added or changed in our pivot to Docker and was heavily inspired by competitive intentions against VMware. We quickly dropped it in favor of more developer-friendly messaging.

One of my first presentations on behalf of Joyent focused on the performance advantages of running containers on bare-metal vs. in VMs (click through to see the snappy title).

I also leaned on the operational challenges managing containers in VMs posed. Container scheduling and management layered on top of VM scheduling and management on top of physical hardware/network/storage management is a lot of layers of management complexity and added cost in addition to the lost performance. In one of my early meetup talks, I likened container scheduling on VMs to playing a diabolical game of Tetris.

Provisioning infrastructure is like a Tetris game. Slide from an early talk.

Provisioning infrastructure is like a Tetris game. Slide from an early talk.

This messaging and unique technology delivered the goods and drove growth, but listening to users and customers, looking carefully at what was working and where customers were struggling, and paying attention to the larger market, I pivoted our message to focus on developer productivity and joy. One of the best examples of that is my talk about Sci-Fi devops.

Finding the hockey stick

The enthusiasm and momentum for Docker was driven by developers. Docker is an infrastructure technology that truly solves developer’s problems, even if it creates new challenges for operators. (More accurately, it amplifies old challenges.)

The first iteration of public cloud solved infrastructure/datacenter operator problems, making it faster and cheaper to get compute, network, and storage, but it didn’t make it easier to manage the servers themselves. And the tools designed for managing servers are poorly suited to managing the applications. This is the problem that birthed a thousand container solutions.

Chatops as demonstrated in WarGames. A slide from my sci-fi devops talk.

Chatops as demonstrated in WarGames. A slide from my sci-fi devops talk.

For Joyent, focusing on developer productivity and joy was the product narrative that resonated with the market and drove growth. That message wasn’t the result of unique insight, it came from iterating the messaging, talking with customers, fans, critics, devops leaders, and those who were struggling with it. Customer conversations, joining support calls, sales meetings, and working with our solutions engineers, as well as looking at public Terraform and CloudFormation templates informed the apps we needed to support and identify the gaps in our platform.

RICE, cost of delay, and critical user journey all informed our prioritization efforts. These approaches helped us identify and define network ingress1, logging, and monitoring, on top of the compute, network, and storage IaaS offerings. These features addressed competitive challenges and drove incremental growth.

Simplified deploys and scaling as demonstrated in the second worst Terminator movie. A slide from my sci-fi devops talk.

Simplified deploys and scaling as demonstrated in the second worst Terminator movie. A slide from my sci-fi devops talk.

But truly differentiating Triton from competitors required features and a product narrative so strong that they changed the conversation and the way customers thought about the product space. For Joyent, that was ContainerPilot and the Autopilot Pattern. Those were the keys that aligned the messaging and product narrative (as well as our product priorities) for Joyent Triton and resonated with the market to drive hockey-stick growth leading to our acquisition.

Finding the limits of the tech

This post has been updated to reflect my evolved messaging, as well as the impressive value created by ContainerPilot and the Autopilot Pattern. But it would be incomplete without acknowledging Joyent’s 2018 pivot from SmartOS containers to Linux+KVM virtual machines and exit from the commercial public cloud market to focus on Samsung’s IT needs2.

The impressive hardware and software advancements that have combined to make KVM virtual machines match bare-metal performance are truly extraordinary, and it would be foolish for Joyent to ignore them. Full, high-performance virtual machines open the door to supporting solutions that were impossible in container environments and enable compatibility with a larger ecosystem of solutions designed for these environments.

The most important lesson here is that customer outcomes are always more important than any specific technology.

Validation

AWS’ Fargate, introduced nearly three years later, copies the core value proposition of Joyent’s Triton Elastic Docker Service: running Docker containers without managing infrastructure. Effectively, a serverless Docker PaaS that is priced per container.


  1. the DNS-approach to network ingress solved 80% of our use-cases in 1/5 the time we estimated it would have taken to develop a full load balancer service. This shorter time to value was a win that allowed us to serve more customers faster without impeding future efforts to build a full LBaaS. ↩︎

  2. Joyent scaled to approximately 15× the datacenter footprint and 10× the density within 24 months of the Samsung acquisition while growing headcount less than 2×. The hyperscaled infrastructure powered apps that served billions of mobile devices and object storage holding exabytes of data. ↩︎