Why Unleash loves private instances
I am the CTO of Unleash. I built Unleash as a side hobby. I didn’t anticipate that Unleash would grow into the company it is today.

Our first paid customer requested that we host them, I looked at it as a one-time thing. It made a lot of sense to just set them up in a private instance.
It wasn’t a one-time thing. Or a three-time thing, for that matter. Unleash kept growing its cloud offering, and each new customer was given a single tenant private instance.

Eventually we had a lot of customers that we managed manually, and it was at that point we had to decide whether to move on to a multi-tenant solution that could support all customers in a single application.

The main benefit of private instances is obviously security, but it’s also about flexibility and privacy. If you tell us to host your instance in the US, we can. We’ll host it in our US cluster and it won’t be in Europe.

In other words, private instances allowed Unleash to offer true data residency. I knew that a multi-tenant hosted solution would be more limiting.
With multi-tenant, you don’t know where the data goes. You don’t know where it’s housed.

Privacy is in fact a huge benefit. Unleash’s approach to building private instances plays a huge part in it.

We didn’t build single tenancy into the software itself, but in the infra layer instead. It basically means we can run separate instances of Unleash with unique configurations per customer.”

Unleash customers also benefit from how we use Kubernetes to run applications in Docker containers: We use a separate namespace for each customer. This means a single customer can never access another customer’s data.

Every customer has their own database. It’s not technically possible to access the secrets of another customer.
Kubernetes brings with it a number of security features.

The industry trusts Kubernetes. We do too. It’s the de facto standard of how you run applications today. With Kubernetes, it’s pretty much impossible to break out of a container.

Unleash also discovered a unique scalability that comes with private instances.

If a customer uses beyond their committed resources, we can add resource limits or increase capacity at the customer level. We don’t have to apply it to the whole platform.

What this means is that, as a customer hosted by Unleash, you can trust that another customer’s usage won’t affect your own.

We’re able to measure the performance–and in general, the SLI– per customer. We have objectives per customer, not across customers. So we can figure out pretty quickly why a single customer might have a lower quality experience.

In the end, for me, it’s all about simplicity.

I really love what you can unlock by thinking in simple terms. For the customer, it’s just an app. It’s not rocket science.

Simplicity is something that tends to resonate with developers, who habitually work with very complex systems. As a developer, I am familiar with this mindset.

We’re very good at making stuff complex, and making microservices on huge platforms where everything needs to be perfect. And we can be proud of complex systems that nobody understands.

Private instances are a way to solve that inclination. This is especially true with how Unleash has moved tenancy to the infra layer.
In other words, by using an infra layer for our private instances, aspects of Unleash like security, performance, privacy, and hosting flexibility remain baked in the Unleash infrastructure.

This means we don’t have to reconsider those needs for every change we make to Unleash’s core application.

As a result, the Unleash experience not only is a lot less complex, but can easily adjust to whatever a user needs.
What we’ve managed to do is make something simple, scalable.