Before starting at Joyent, I followed them and the evolution of their platform for years. How they tackled scalability and instrumentation has always appealed to me. I’ve realized the platform covers a lot of use cases and is extremely compelling. I’ve talked previously about new ways to solve legacy enterprise infrastructure issues but there other ways of handling the challenges of newer more distributed workloads.
Here’s how Jason Hoffman (friend and Founder/Chief Scientist at Joyent) puts it:
The Physical Machine business is a “machine” business. The Virtual Machine business is still a “machine” business. The virtual machine is not the abstraction that is equivalent to a packet in the network. Fundamentally, being tied to a machine matters to a person, it doesn’t matter to an application and in fact causes there to be hits in performance, scale and it’s all a black box (can’t comprehend everything).
We come from networking and ask ourselves, “How can we extend the days when the cloud we drew was just the network and enable the same abstractions, economics and models into servers? Into the rest of the datacenter? So that we may have the same type of multitenancy for compute that we have for networking.”
What is Joyent’s stack? It’s a platform first and foremost. What’s part of the platform?
This image from a slide deck lays it out.
A SmartOS kernel – It’s based on unix and all the unimportant fat has been cut from it. It’s lean, scalable and provides QoS *and* introspection all throughout the stack. Yes, we’re a software development company and we have kick ass kernel hackers that are brilliant. We also have some unbelievable UI/UX folks on board who know how to make stuff *usable*. Bryan Cantrill of Dtrace fame and formally of Sun/Oracle leads engineering.
A platform to build on – What do you want to run? Do you want to run a Windows/Linux/WhateverVM? Go ahead. We can’t provide you deep introspection but into the application but we can tell you what your VM is doing. Use SmartMachines (container-based single kernel “virtualization) and you get introspection at ALL levels. Why would you use the native container-based SmartMachines? Because, what you care about is applications, not what OS is running underneath. You want to run Apache, Nginx with CouchDB, MongoDB, MySQL, Oracle or Riak go for it. Oh and by the way, when your app blows up because you rushed the code, we have the diagnostics and visuals that can meaningfully tell you why your app is caving. Can you run Java on us? You can. It’s that simple. You can build out templates and deploy them easily. This is cloud. It’s ITaaS. Pull the trigger and it’s yours.
Let’s boil it down. Is Joyent SmartDataCenter a replacement for VMware? Yes and no. At service providers like Verizon, Terremark and many others, it can be a compliment to an existing IaaS offering. The main target isn’t legacy enterprise use cases that need HA at the IaaS level. But it’s a very good fit for workloads that need a lot of elasticity and dynamic scalability. Instead of constraining resources, a user can use as much of the box that is free while still preserving QoS to the other instances.
Has anyone used this stuff? Yes, Joyent has run its own cloud for 6 years and we figured out that having other SPs deploy Joyent as a cloud solution is something we’re willing to tackle. It’s what LinkedIn, Gilt group, Disney, Facebook developers and many others have been using for awhile now.
If you’re more curious about Joyent’s approach, you can read more here.