Ability to control your Networking device programmatically is what makes life easier for all the network admins and owners. As deployments get complex and 10s of devices being used to perform similar tasks, it becomes extremely difficult to manually control the configuration changes. Similar difficulty is seen when you want to monitor all the systems looking at various stats in run time.
NetScaler saw all these challenges in early days and team invented the SOAP based API model many releases back. SOAP based APIs provide programmatic approach to monitoring and configuring a NetScaler appliance and it served the purpose for many years before we got into the scalability, performance, bulk operation and ease of use challenges apart for other smaller issues. This is where the need for a better integrated solution came up and team invented NITRO API framework and model.
There are several reason how NITRO is superior, better and cleaner solution today. Here are some core thoughts on why we should be moving towards NITRO if not done already.
1. Representation Format: NITRO payload supports XML as well as JSON based representation. JSON is quite easy to use and is human understandable form. By default JSON is the mode of communication and one can switch to XML using a format knob.
2. Lightweight: NITRO is extremely lightweight as compared to traditional SOAP based formats. It makes the processing faster and end users have much better response time.
3. SDK Support: Supports programming SDKs for .NET and Java. REST framework is also available which can be used with most of the scripting languages.
4. Browser based access: NITRO allows the objects/resources to be accessed over HTTP/S. Thus any regular browser or http based tool will be able to access all configured entities on NetScaler. It allows all other operations like creating a new entity or deleting existing configuration etc. it also supports powerful query language which comes very handy with resources.
5. Hierarchical object relationship: The resources/objects maintain hierarchical relationship and you can access one for the context of other.
6. Bulk processing support: This is one of the key advantages where using single request you can perform certain operation over multiple objects. You can create 100 vservers, 500 services, 500 monitors, 1000 policies with respective single commands. This makes the whole framework so efficient that using single request and response you can achieve something which required many calls using the SOAP format. Over the wise this reduces the traffic drastically and even in terms of processing it gets done much more efficiently.
7. Application Template support: Application Templates define how an Application deployment would look like on NetScaler. SOAP based APIs had no support for Application Templates while using NITRO APIs you can create and manage Application Templates.
8. Rollback and Commit support: This is another core feature for complex deployments which is not supported by SOAP APIs.
9. Better Performance: Performance was one of the core reasons why we had to develop new API framework and based on various tests we have observed 3X to 11X improvement over the SOAP framework. The benefits are more visible over long latency network.
10. Better Error Handling: NITRO utilizes the error codes defined in native NetScaler. Thus error messages aremore meaningful and you can easily map an error code to respective message.
Aren’t these enough reasons to consider moving towards NITRO 🙂