Over the past three weeks Don and I have had a lot of time to chat whilst making the trek back and forth between home and the hospital where the newest member of our family was keeping residence. Mostly we talked about our new son and speculating as to when he might be allowed to come home (Feb 17), but as is our wont we often ended up talking about work. That's one of the benefits of working "together" and in the same field, at least we think so.

One of those discussions revolved around iControl and the fact that it's really not as well known as iRules. iRules is, of course, incredibly cool and because it's a dynamic, programmatic mechanism for manipulating traffic it's more, well, in your face than iControl.

iControl is also a dynamic, programmatic mechanism - it's just focused on management of F5's BIG-IP. iControl is a Web Services, a.k.a. SOA, enabled API that allows developers and admins control over their BIG-IP. Because it's SOA, there's no limitation on the programming - or scripting - language you can use to create your own customized management programs for a BIG-IP. PERL, Java, .NET, C/C++, Python, PHP. The power of web services means that iControl can be utilized via just about any language you're comfortable with.

Just knowing that iControl is a management API for BIG-IP is helpful, but the real question is almost always "but what can I do with it?" Well, if you want to see real examples, you can check out the iControl CodeShare here on DevCentral. If you're just looking for ideas, well, that's hard primarily because there's so many options and ideas are limited only by your own imagination.

You can create virtual servers, real servers, and pools of servers. You can change the status of a pool - enable or disable it - at will. You can write a script that automatically moves traffic from one server to another based on recurring maintenance windows. You can create iRules on the fly and apply them, or change the way traffic is handled with the click of a button. You can write a script that can be incorporated into a web dashboard to automatically monitor the status of objects such as virtual and real servers. You can build a real-time graphic chart of current connections and throughput rates. You can do just about anything you can think of.

There's more to iControl than just management in the sense that you can use it to integrate your BIG-IP with applications and even other devices. Using iControl you can integrate BIG-IP with your application and make decisions based on real-time conditions that are application or process specific. Need an example? Well, say your application processes things. And let's say that you've got a service level agreement - or customer guarantee - that says you will process a thing in a specified period of time. You know that some things require longer to process than others, so you want to make sure that if a single server is handling one of those things that it doesn't try to process another thing until it's done. You could certainly write an iRule to recognize the situation and direct requests accordingly, but you could also do that using iControl from within your application. In many cases, it's actually more effecient to use iControl from within your application because it may be necessary to base your decision on information that can't be accessed via iRules, such as a information coming from a database lookup.

Integrating applications and other devices using iControl is something we do ourselves and that some of our partners do as well. For example, we've got a plug-in for Oracle's Enterprise Manager and AmberPoint's SOA governance solution. To make using iControl even easier, our gurus on the DevCentral team have created a set of Java wrappers for iControl as well as .NET and Java assemblies. I could go on and on about iControl because the possibilities are nearly infinite, but that would turn this blog post into a book.

So instead of reading my ideas, check out the iControl documentation on DevCentral and the forums for more ideas from our DevCentral team and real users of iControl and BIG-IP on how iControl can fit into your environment and make your life easier.

Imbibing: Mountain Dew