I took a netscaler basic training a while ago. The class is very informative. And I would recommend it if you have an opportunity to take it.

For more information about this product, see

http://www.citrix.com/English/ps2/products/feature.asp?contentID=21681

You can find more information about this training class at

http://www.citrix.com/English/ps2/products/feature.asp?contentID=21768

Note that the course is being updated for 8.0 release.

Netscaler is great for network, application administrators and most articles have focused on this audience. Not much has been said about Netscaler benefits to application developers and its impact to application designs (particularly web applications). As a developer, I will try to give some examples from a developer perspective based on what I learned from the class.

Load balancing:

Netscaler offers powerful load balancing capabilities. In a multiple web server deployment scenarios, you will probably need a load balancer to load balance web servers. If your web server requires all requests associated with a session to remain on one server, Netscaler can be configured to do so easily and there are multiple methods to choose from. So a simple web application may simplify its design by maintaining its session state on the local server.

Some more complex applications use a separate group of application servers to run business logics. One example of such application is the MSAM product I worked on. (MSAM is an enterprise portal product for those who don know). Making sure the requests from web server to these application servers are load balanced efficiently was a challenge for us. And we spent lots of efforts on it. With netscaler, I now wonder if it makes more sense to eliminate application servers. Instead, host business logics on web servers as well and use netscaler to load balance web servers. It would simplify the design quite a lot and would have more flexible deployment options since the load balancing is separated from the application itself. Such design would be easier to debug, easier to scale up and perform better (less network traffic, simpler code)

For example, Netscaler has a slow start feature to avoid a newly added server to be overloaded. Many of the applications I seen don have this load balancing feature.

Content redirection:

Netscaler has this feature of redirecting requests to different backend servers based on flexible policies. For example, you can configure it to redirect HTTP traffic to a mobile web site if the request headers indicate the client device is a small form factor device. A use case for example can be as follows:

Web interface users can type the same URL they are familiar with from either small form factor devices such as blackberry (we have a blackberry ICA client now!http://citrixcommunity.com/blogs/cdn/archive/2007/03/26/Idokorro-Launches-new-Citrix-ICA-Client-for-BlackBerry.aspx) or a regular PC. A Netscaler can be put in front of web interface servers and redirect requests to different web interface sites that are designed to serve appropriate published applications.

Sure, the applications can do similar things themselves. But it not only require additional code but also difficult to make it as flexible as netscaler can do. Plus it is easier to reconfigure netscaler than changing the applications. Netscaler has a nice GUI to help with this task. Not to mention some applications such as web interfaces currently don have such capabilities yet.

Integrated caching:

For example, Netscaler can cache even dynamic content for specified period of time. Thus it can reduce the load to application server. For certain applications, it means, application developers can focus more on solving business problem and leaving the hard job of caching to NS.

It can be a challenge to design a high performance application. In MSAM and later AAC (advanced access control) products I worked on, we spent tons of development and testing effort to improve the web applications performance. It difficult because tasks such as converting word documents to PDFs do take relatively long time. We improved performance by caching the conversation result. But it is difficult to do and is application specific. If we could rely on Netscaler, we could have delivered the products much quicker.

There are many other benefits to developers. The above are just some examples. We love to hear your experience with netscaler.