I want to talk today about a really radical innovation that Nutanix built that is very unique to our platform, and the side effect of a feature the team built. So we released a new capability in 7.6 called Projects, which allows you to do what we thought was just tenant isolation. Essentially, you could group a set of resources and isolate them from another set of resources for tenants. But what we didn’t realize that the way we built it let us do something far more powerful.

Let me explain the traditional problem with tenancy. The traditional problem with tenancy is that you have a resource and need to partition it between multiple tenants. The problem is that the resource partitioning can’t be done at the resource level, but has to be done at a higher level because you can’t go and integrate all the databases the underlying resources have. Very concretely, if you look at what VCF automation does, what it does is it says, “Well, since I can’t modify NSX, vSAN, and vSphere to have a single database such that all the resources are multi-tenant all the way down to ESX, it built a new layer called the Supervisor and then created namespaces. So as long as you go through that layer, you have tenancy, but if you go below that layer, you lose the tenancy information.
The image below is an illustration of a blog I wrote that shows the traditional layering.

Why is that important? It matters because the virtual machine state is now stored in a variety of locations. It’s stored in vCenter, it’s stored in ESX, it’s stored in NSX, it’s stored in vSAN, and it’s stored in the VCF automation layer, and it’s stored in VCF. Now, this isn’t meant to pick on that product. I think that’s actually a really credible solution and, to be quite honest, one that I’ve advocated for over the years. And certainly is part of the long-term vision of the Supervisor that some of the brilliant architects I got to work with articulated.
The issue, though, is that it doesn’t really provide you with an encapsulation oll of the resources that is portable and as reliable and robust as the virtual machine. In other words, I can have a virtual machine exist even if all the other software goes away. What Nutanix did was say, “Hey, what if we created a multi-tenancy layer below the virtual machine? Or, more importantly, such that the multi-tenancy layer was intrinsic to the virtual machine and the resources.” So what we did was we modified the underlying database that the flow product, the AHV virtual machine produc,s and the storage productuses, also known as Prism Central and Prism Element, to have tenancy baked in. As a result, a virtual machine only exists when it is part of a tenant. It can’t exist without a tenant.
So that sounds cute, but why is that useful? The reason it’s useful is that, all of a sudden, we created the first usable deployment spec for a virtual machine. The problem with a virtual machine and a deployment spec for it, is that it’s not just the virtual machine configuration, but it’s all of the storage, the networking policies, the identities, the categories, and the relationships to other virtual machines. And today, there’s no way to isolate that information and have that information be as robust as the VM configuration, except with Nutanix, because the same place that stores the virtual machine state is as robust as the same place that stores this configuration.
For the first time, you can now say this virtual machine and all of its configuration, both the VM configuration and its environmental configuration, are stored in one location and can be retrieved in an atomic way. Why is this powerful? Because what it says is that projects allow me, as an enterprise, not only to support multi-tenancy, but to support isolation of configuration, not for security, but just for operational simplicity. In other words, much like containers have allowed me to have multiple processes run inside of a Linux box that have a certain degree of isolation, this allows me to have configuration isolation of virtual machines at the operator level in a way that gives me confidence that operator A cannot mess around with the configuration of operator B. Or even if operator A and B is me, that if I do something to VM 1, it will not affect VM 2.
That is a very powerful simplification because it reduces infrastructure complexity from managing all 500 virtual machines at once to managing them in reasonable subsets, without deploying additional Prism Central infrastructure.



