Cloud-native applications are optimized to leverage cloud-computing rather than traditional data centers. Businesses that can efficiently build, deliver, and operate cloud-native applications, will be able to innovate faster than their competitors and win out. Here, I would like to briefly describe how Nirmata's adaptive application management helps deliver and operate cloud-native applications.
ODCA Cloud Application Maturity Model
The Open Data Center Alliance (ODCA) maturity model for cloud-native applications defines four levels:
|Level 0:||Virtualized||The application is decoupled from specific hardware. It has an automated installer and launcher.|
|Level 1:||Loosely coupled||The application components are service-oriented, discoverable, and independent of network and storage resources.|
|Level 2:||Abstracted||The application components are portable, stateless, and independent.|
|Level 3:||Adaptive||The application is cloud-agnostic and its management is fully automated.|
You can read more about the ODCA maturity model here.
With this maturity model, it's easy to understand the strong interest in application containers and microservices. These are important tools to get to Level 2. However, to fully realize the benefits of cloud computing, adaptive application management is required. Let's take a look at how Nirmata enables this for enterprise DevOps teams.
Our Journey at Nirmata
Before we dive into the details, I would like to highlight a significant milestone in our journey at Nirmata. We started Nirmata in September 2013 to transform enterprise software development & operations, by democratizing multi-cloud application management. We launched a beta version of Nirmata in Q1 2015, and have seen tremendous interest and usage, which resulted in continuous learning and improvement.
At Nirmata, we believe that cloud-native software requires cloud-native application management. In other words, the application management tools themselves need to be at the highest level in the maturity model. Tools built for anything less will not do. Hence, early on, we took the hard road and decided to build and deliver Nirmata as a highly scalable and adaptive multi-cloud service.
Nirmata is built using a microservices style architecture and runs in application containers. This decision gave us tremendous flexibility and agility. But most importantly, it has allowed us to innovate at record speeds using minimal resources.
As a business, we chose being customer-centric and decided to take only the minimal funding necessary. This forced us to focus on a path to revenues and profitability and offer the best possible value-proposition to our customers. As we engaged with beta customers, we became intimate with a few early adopters who immediately saw the unique value in Nirmata and signed commercial agreements. This allows us to devote our time to making them successful in the cloud-native journey as a means to an end for our long game.
We are elated to have recently announced general availability of the Nirmata! Over time, we will now start discussing more of what we've learned from our work with large enterprises that have made the transition from semi-automated and brittle application management to fully automated predictable deploys and continuous auto-tuning of their applications. One such customer we have worked closely with is ProSoft Technology a Belden company and a leader in the Industrial IoT space. You can read more about our work with ProSoft here.
How Nirmata Delivers Adaptive Application Management
Let's take a look at how Nirmata helps with adaptive application management. To do this, I will highlight a subset of features that Nirmata provides and discuss how each of these helps enterprise DevOps teams get to Level 3 — adaptive cloud-native applications:
Describe the Application
In Nirmata, you can import ready-to-go application blueprints from a shared catalog or model your own applications. Nirmata's multi-layer scheduling and orchestration handles complex dependencies and allows containerizing any kind of application, including clustered services that require knowledge of cluster membership.
Applications in Nirmata are composed of one or more services. Each application can (optionally) contain a service gateway that acts as a Layer 7 load balancer across service instances, and performs functions like HTTP URL routing. Within an application, you can also define routing, affinity, and scaling rules to define how services should be deployed and placed, and also control how services communicate.
Unlike a traditional PaaS, Nirmata allows developers to choose any language, tool, or OS. Nirmata currently supports Docker and OCI containers, and is architected to support multiple container runtimes.
Set Up Cloud Providers
With Nirmata, you control which cloud providers you wish to use and map exactly how applications and services should make use of the cloud provider resources.
Since Nirmata is a pure play application management solution, you can choose any cloud provider, public or private, and any type of host — physical, virtual, or converged. Nirmata's secure agent based architecture does not require any changes on the infrastructure side and nicely integrates with existing networking, storage, and security technologies.
Set Up Your Policies
Once you drop in the Nirmata Host Agent and pair it with your account, you can configure policies that control how resources are used by applications and teams. You can even pool resources across cloud providers and combine usage of market-priced resources like AWS Spot Instances with reserved instances to drive higher utilization and save on public cloud costs.
Deploy, Operate, and Optimize
With the application blueprints, cloud providers, and policies defined, your DevOps teams can now deploy their applications, typically in seconds, with a single click! While a number of tools stop here, this is where life truly begins for a Nirmata application.
Nirmata provides fully integrated and detailed monitoring and management of cloud-native applications:
You can collect rich metrics across containers and hosts for any cloud. You can set alarms and use auto-remediation to ensure your application stays running, regardless of changes in the environments.
Whether you are working on application performance across services or would like to focus on a single service, Nirmata delivers the data in a easy-to-use and intuitive manner:
Best of all, you can use a powerful transactional REST API to collect and observe data, build your own views, or even extend the built-in remediation.
Because of Nirmata's unique architecture, it also provides full visibility into interactions across services — no additional tooling required! Here, I am viewing a set of mid-tier services that are all allowed to talk to each other, and clicking on each link gives me instant metrics on connections, and latencies across services:
At Nirmata, we are humbled by our customers, their vision, and expertise in their domains. We believe that software will transform every aspect of our lives for the better and our mission is to empower all software teams to live up to their full potential. We will do this by providing the most easy-to-use and complete cloud application management solution that is built on open container technologies, eliminates platform and cloud provider lock-in, and provides full visibility and autonomous application management across the stack.
With our general availability, we have built a scalable cloud platform that allows us to rapidly add higher-value features that aggregate and correlate user activities with events across containers and hosts. Our goal is to make Nirmata the solution of choice for enterprise DevOps teams that want to stay focused on their areas of expertis and require a lightweight, non-intrusive, non-opinionated solution for managing cloud applications.