Orchestrating Containers with NirmataJuly 27, 2017
I had high expectations for the sessions being presented during Cloud Field Day 2 hosted by GestaltIT in Silicon Valley during the week of June 26th-28th. The first of the sessions presented was from a company that I hadn’t heard of before called Nirmata. I had no idea what the company did, but after the session I found out the name is an Indo-Aryan word meaning Architect or Director which makes a lot of sense considering what they do.
What Does Nirmata Do?
Nirmata is an orchestrator of orchestrators. Its value proposition is to make managing and deploying container applications on Kubernetes clusters easier. “Why do we need this” you might ask? Well, Kubernetes does a good job of managing individual environments but struggles if you need to manage more than one cluster at a time. This becomes much more difficult if we’re managing Kubernetes clusters in more than one place, like different clouds. Nirmata lets us manage multiple Kubernetes clusters in different cloud providers with a single orchestration layer.
All travel expenses and incidentals were paid for by Gestalt IT to attend Cloud Field Day 2. These expenses were paid with no expectations about the coverage through this blog or on social media and did not affect the content of this post.
Why do I Care?
First of all, Kubernetes has plenty of daunting concepts that you’d have to learn to really manage containers correctly. If we’re focused on building our applications, we don’t really want to spend too much time learning how to manage the containers across hosts, let alone managing multiple clusters across clouds.
Nirmata lets us do this management from an easy to use interface. From a SaaS portal, we can define our container hosts, group them by instance types, cluster different instances together by policy and manage multiple registries. This makes it very easy for us to manage our container clusters from one interface without really even having to know much about Kubernetes (Obviously some experience would help). Once you start using Nirmata, we can deploy new containers in one cloud for testing, or move it between clouds or integrate it with existing applications in other clouds. We no longer have to make specific settings in one Kubernetes cluster and then different ones in other clusters. We can now orchestrate these containers in cluster between clouds. We can use our CI/CD tools to integrate with the Nirmata API to deploy our applications on any cloud that we want and tie them together or do whatever we need without having to manage individual silos of Kubernetes clusters.
If this isn’t enough, we can have Nirmata manage the resources in these clusters to scale as needed, or perform actions on our containers. We can now see all of those siloed Kubernetes clusters through a single portal which gives us a much better way to manage them at scale.
There are a variety of use cases that you could dream up, but assume you wanted your containerized applications to use the lowest cost possible but provide a really high availability. We could setup a few hosts on-premises in our vSphere environment for highly available always on hosts, while using spot instances in AWS to provide our additional scaling, and all of it can be orchestrated through Nirmata. Now, we’ve got stable vSphere hosts and not so reliable, but cheap, spot instances in AWS for our application to live on. We might even be able to take actions on our containers based on traffic patterns. If we get lots of traffic in one geography, we could spin up new hosts closer to the requests and deploy our containers on those hosts. Orchestration will really let us dream up tons of scenarios.
Is it Hard to Setup?
Not really! Once we sign up for an account we want to setup some container hosts, add some policies and then we’re off and running with our containers.
The initial wizard will get you started where you setup some hosts and policies and you’re ready to rock. I’m not a docker expert but even I was able to get it running within a few minutes with some EC2 instances. I used the Nirmata console to deploy a couple of basic containers in my environment, and then logged into one of my instances to see what happened. I have my two test containers along with some Nirmata containers that are used to manage the environment.
The Nirmata console shows my environments, containers, hosts, and resource utilization and I can manage everything else from here or through their API.
It doesn’t matter how good the solution is if it’s priced too high to be useful, so how is Nirmata’s solution priced in the market place? First of all, they have a free trial which you can go sign up for and it gives you a few users, a single public cloud provider and up to 20 GB of managed memory. Check it out for yourself and kick the tires on the platform. https://www.nirmata.io/security/signup.html
If you’re ready to buy you can move up to the professional version with unlimited memory and additional users, as well as support and multiple cloud providers as possibilities.
Enterprise class is also available but would require you to speak with a representative and I’d assume that this pricing will vary depending on size, but this gets you all the bells and whistles including private cloud, single sign on, auditing and all the goodies.
That’s entirely up to you. Check out the free trial for yourself and decide whether or not these capabilities are something that might be useful. Orchestration can be a really powerful tool for application availability as well as providing the development agility that you need to provision containers at scale. I’d love to hear what you think in the comments.