Forum Discussion
An iControl would create a provisioning change, whereas an iRule would generate a per-user-session change (and not be permanent). Which one you use depends on the use case. If, for example, you want to switch to a different pool based on the user, or something in the request, that would be an iRule. If you wanted to permanently change the pool assignment, that would be an iControl. As for automating the process, an iControl (or any other method) is only going to act on one VIP at a time, so the above iControlREST call, combined with two others in a script would produce an automated method for changing 3 pools on 3 VIPs. And how you do iControl also depends on a few factors. If you're good with Perl/Python/PowerShell/.Net/Java/etc., you can use the traditional iControl API. The iControlREST API allows you to expand that capability into basically any programming construct that supports REST (Bash, cURL, all of the above language variants, etc.).
As for maintaining active sessions after a pool change, that's a tough one. I haven't investigates this, but I think that an active session (depending on persistence) would stick to its original node, but not certain.