The freedom that every devops are looking for the cloud utilization is matter of the last technologies that embrace an hybrid view instead of single public cloud adoption. Few years ago the public cloud adoption was the solution for many developers but rules and constrains using the platform as a service pardigm to build last generation apps were were causing many lock-in fears and consequent investiment risks.
Now the need to move back to in-premise infrastructure near the build of an integration baseline between virtual machine and application, keeping all resources under control, are the new challenge. More deeply inside CI/CD workflows, the need for integrationg several platform is what is doing Nirmata, providing an interesting way to handle dev and ops side of the application. Let’s see in depth…
Inside Nirmata product
Nirmata (http://nirmata.com/), a company situated in San Jose CA, has built an interesting integration for DevOps folks focused on delivery automation and management for cloud native applications and traditional applications in multiple clouds. In a nutshell this is could be defined the top level orchestration for public and private cloud infrastructure.
Notable that Gardner (https://www.gartner.com/doc/3040421/cool-vendors-webscale-platforms-), Tier50 (http://www.tie50.net/TiE50Awards2017/TiE50_Winners_2016.asp), and EMA (https://www.enterprisemanagement.com/research/asset.php/3319/EMA-Vendor-to-Watch:-Nirmata) are looking with some interest to this product.
Analyzing more deeply Nirmata, it’s a Software as a Service capable to integrate private and public cloud in a single pane of glass addressing these application layers:
- Application Delivery and Management
- Application-Centric Infrastructure Management
- Container Orchestration
Inside the application, these are the key components involved in platforms and application lifecycles:
- Application: a composition of services with dependences
- Service: unit of service delivery
- Environment: a runtime instance of an application and could Dev, Prod or whatever
- Image Registry: a repository to store Docker images
- Host Groups: pool of similar server in cloud provider
- Cloud provider: the resource as-a-service to be consumed by an application. They could be
- Public Clouds
- Amazon Web Services (AWS)
- Microsoft Azure
- Cisco Cloud Services
- VMware vCloud Air
- Other (individual machine instances from any other IaaS providers)
- Private Clouds:
- VMware vSphere
- Other (individual virtual or physical servers)
- Public Clouds
- API: a way to integrate or another way to consume Nirmata resources.
Governance during the application lifecycle is and control of the consumption of the hybrid infrastructure is what every company in transition from traditional organization and cloud native oriented application are looking for. This seems the driver that has conduct Nirmata team to develop this powerful integration. In fact, near the ability to serve and operate multitier application in the hybrid cloud, this platform provides the ability to use microservices and serverless architectures.
Highlights during Cloud Field Day
Jim Bugwadia ( co-founder and CEO @JimBugwadia ) introduces the company giving a particular highlight to the journey of development and an eye to Architecture, Packaging & Runtimes and Platforms. This speech ends with the announcement of the integration with Kubernetes: a good imporvement to make this platform more and more confortable for deveops folks.
In the product overview, Nirmata is easy to integrate to the already deployed infrastructure and seems to cover a conservative and progressive organization structures involved in application development: in some case dev and ops are still separated people.
Use cases are presented by Ritesh Patel (founder @riteshdp ) and Jim Bugwadia again
Giving a try
It’s possible to try this product simple signing up here: https://www.nirmata.com/pricing/ .
My test is conducted thinking to dev approach: after defined a single host as private cloud (called “Direct Connected”), I created the application (composed by services) and I deployed in an Environment. It was very easy complete the cycle from dev to production, keeping in mind some rules that are defined in the platform, like policy for deployment and CI/CD notification
During my test I found few little graphical issues that could be resolved with low effort, but the engine seems solid.
Just to note that the way to build an application is similar to what happens using docker-compose, but syntax is different: exporting the application it is possible to get a json file with a proper syntax construct. In Nirmata the Environment is the “instance” of the Application and CI/CD pipeline is realized simply updating one, more or all services. Every time a change happened, following the deployment policy is possible to update the environment. IMHO this last feature must be increased with more devops functionalities like:
- application versioning with the ability to choose what version should be deployed and where
- a sandbox to build services starting from code
Noteworthy are the troubleshooting features available in Environment view that could aid the operation team to find and fix the major part of the issues during application deployment and life.
But back to the Application perspective, giving a more critic implementation view, there is another missing thing the must deserve more attention in the field of integration: the ability to implement existing services like DBaaS, local db or 3rd party data sources giving a specific view for availability and application routes. I know, watching the PaaS perspective, is very difficult make a baseline to abstract an application across multiple cloud. For this reason the Infrastructure as a service way seems more easy to integrate and consume, but sometimes the use of specialities offered by cloud provider is the feature that a lot of devops are looking for.
Definitely this is the orchestrator of the orchestrations (like exposed by other delegates in their blog posts) and an interesting way to handle CI/CD pipeline across a lot of cloud infrastructure. IMHO the separation between roles could be drive many people to confuse the roles of devops team in a company; but giving the appropriate policy-set to every company roles, it is possible to cover the major part of the organization needs in the company.
Nirmata is an interesting product, really easy to use, and with an excellent support (personally tested ) which is equipped with the right energy to make this platform better every day. The integration with Kubernetes announced during Cloud Field Day, is a well news for devops folks.
Disclaimer: I have been invited to Cloud Field Day 2 by Gestalt IT who paid for travel, hotel, meals and transportation. I did not receive any compensation for this event and None obligate me to write any content for this blog or other publications. The contents of these blog posts represent my personal opinions about technologies presented during this event.