You might know I am a fan of removing complexity at the infrastructure layer so IT folks can focus on higher levels in the stack, preferably applications, data and information. An example I usually refer to is Platform9, who made OpenStack stupidly simple.

I wrote about Platform9 and the underlying concepts here:

With Platform9 also entering the Managed Kubernetes space (The Power of Platform9: Managed Kubernetes), it’s time to also look at some of the other players in this field.

Nirmata Introduction

At the recent Cloud Field Day 2 event in the Bay Area, I met up with Nirmata (videos here). They take a similar SaaS approach for infrastructure-oriented software, and run cloud service for container-native application delivery and management.

Their focus is on Ops, and not Dev: their offering has lots of bits and pieces that relieve the operational load, automate the management of deploying and managing containers across hybrid and cross-cloud scenarios.

What does the product do?

In a nutshell, it does application delivery and management. Nirmata takes an application-centric view of the infrastructure (which includes cloud environments).

The product is comprised of three layers:
1. App Delivery & Management
2. App-centric infrastructure Management (compute, storage, networking)
3. Container orchestration & scheduling (w/ Kubernetes)

Orchestrator of orchestrators

Nirmata is basically an orchestrator of orchestrators. This sounds like a negative thing, but in reality they’re able to do some cool things with this approach, such cloning (or deploying) applications into a different cloud instantly and from a single UI. This enables cross-cloud migration and cloud agnostic orchestration. Or, in other words, true application mobility.

To do this well, Nirmata is able to manage disparate Kubernetes, AWS and GCP clusters seamlessly form a single, simple UI.
Remember this is aimed at Ops teams, and not Dev teams, so the focus is more on security, cost, performance and manageability than anything else. Nirmata allows you to do this across different environments (different clouds).

Simply put, Nirmata groups all those hosts, clusters and environments in various ways, ready for consumption. Imagine having an on-prem vSphere cluster for a stable, yet limited in scaling, production. Add some auto-scaling instances in GCP and some cheap spot instances on AWS, and you can see the rough sketch of where the value is appearing.

Application Modelling

The true power, however, comes from Application Modelling in Nirmata. The modelling process creates application blueprints in a deterministic and cloud-agnostic format, which can then be deployed on the different environments based on policies. Applications are sourced from different Docker Registries.

Use Cases

Nirmata explicitly focusses on Ops, so it makes that it’s major use case is shops where Ops and Dev are separated. This will usually be in the bigger enterprise.

It’s primary use case is managing container-based applications deployed on multiple (cloud) environments. This encompasses both the CI/CD pipeline (test/dev/staging) as well as production.

I can easily see Ops cooking up policies for test/dev to deploy to the cheapest cloud (more on cost policies later), staging to a production-similar but not highly available cloud environment and production going to high-quality but costly cloud instances.
Moving applications between these different cloud environments is seamless, easy and fast: all underlying complexity on the Kubernetes layer is abstracted away.

Especially for production, it’s a big plus that Nirmata is aware of specific cloud characteristics, like auto-scaling features. Again based on policy, Nirmata can leverage each cloud’s specific features seamlessly.

A note on cost

Nirmata does not currently do cost modelling for target cloud environments. It plans to integrate with existing solutions in the future. I think this a smart move.

What sets Nirmata apart?

Why would I want to use Nirmata? There’s many managed Kubernetes solutions out there, or one could just use the easy-to-use Docker Swarm mode.
Well, the answer is: Nirmata manages application deployment across disparate cloud environments for you. It is not comparable to Kubernetes or Swarm, it is a orchestrator of those. That’s a unique perspective with a solid use case, albeit not something smaller shops might need.

Cross-Cloud is a thing

What Nirmata has integrated in their ‘manager of managers’ is the ability to seamlessly migrate an application from cloud to cloud from within a single UI. This is a very powerful feature for Ops teams, as they’re now able to choose the best place to run any workload (in any phase of the development workflow) based on various policies (i.e. automated and compliant).

Joep’s Stance

Nirmata has an interesting take on container management. It’s refreshing to see a player in the container space taking Operations seriously!

Although it took a little while to extract the right message during the Cloud Field Day presentation, I really like their ‘manager of managers’ approach. It’s clean, simple and well thought out. I can see this being of immense value for customers.

Lastly, their Application modelling feature enables cross-cloud migrations and deployment. This is a cool feature that, with the right engineering effort, can become a truly differentiating feature for Nirmata.

Now, there’s always something that can be done better. With Nirmata, two things stood out:

  1. Cost modelling
    There’s no cost modelling in the product currently. It is on the roadmap though, and I think integrating with existing solutions is a smart move to get faster time-to-market
  2. No solution for data inertia
    When deploying an application, data needs to be in the right place and in the right format. Unfortunately, data doesn’t like to be moved around. Nirmata hasn’t solved this issue, and I think this is a pretty big gap in their offering as cross-cloud deployment is a major feature in the product.