RESTful APIs are altering the course of web app development. For example, in 2008 Facebook opened up their application platform by documenting and publishing a set of RESTful APIs. As a result, we have witnessed the emergence of companies whose entire business model is based upon building applications for the Facebook platform.
RESTful APIs have quickly become the norm across various web services, empowering users to build interesting applications based on amalgamation of these stateless APIs. However, exposing programmatic access to datacenter services within mainstream enterprises has been slow to take hold. How many appliance-based solutions provide REST interfaces for management, provisioning and reporting? Not many.
In 2012, the Nutanix development team decided it was time to bring REST to the enterprise. If you’ve read the news of our Nutanix OS v3.5 you’ll know that we added full RESTful API support to our Prism management framework, providing customers a choice of building orchestration applications.
We went all in. Besides exposing the APIs externally, we decided to ‘dog food’ the REST API ourselves. What does this mean? Simply, our brand new HTML5-based Prism GUI consumes the exact same REST APIs that we make available to Nutanix customers. Additionally, we also built the Nutanix SRA (storage replication adapter) such that it also uses these APIs. Our Nutanix SRA builds upon the native replication capabilities already available in the Nutanix software, providing integration with VMWare Site Recovery Manager (SRM) for runbook automation.
Utilizing the RESTful APIs in the implementation of the Nutanix SRA was a much more elegant approach, as we did not have to expose any of the implementation details of the RPC mechanisms. REST by its very nature imposes a stateless architecture, thus simplifying both the implementation and the maintainability of the Nutanix SRA. Additionally, using the RESTful API ties the Nutanix SRA authentication and authorization directly to the existing user profiles defined for Nutanix cluster administration.
By going all in with REST, we’ve built a platform that will support various applications and services in the future. Some are already planned. Others have not even been conceptualized.