The Importance of Programming an ADC
June 12, 2013 Leave a comment
- Application delivery controllers are an integral part of your application stack. They need to be treated as first-class citizens and incorporated into any hybrid cloud strategy.
- Matching an ADC, supported cloud service and platform, and integration strategy is critical to enabling applications that can run anywhere with ease.
One of the motivating factors for virtual application delivery controllers (ADCs) is the ability to include the entire set of servers and services that make up an application into a logical group that can be moved easily from physical and virtual servers to a public cloud. If you take the time to tune your ADC for a particular application running in your data center and you want to move it to a cloud service, your only options for an ADC are limiting yourself to the cloud services that can run your virtual ADC or using the cloud provider’s load balancing service, which may even be using products that are far more capable than the features exposed to customers, but the result is basic load balancing as a service and not much else. Running a vendor’s virtual ADC in a cloud environment requires that the vendor supplies a VM built and tested on that cloud service and offered through the service’s application store.
What you really want to package up in your application is not a pre-configured ADC VM, but an ADC configuration that can be applied to an existing ADC. I’ve never been a fan of the “move VMs around” hybrid cloud strategy. Converting VMs from one platform to another can be error-prone, and then you have to move hundreds of gigabytes over the WAN and hope it all works. What makes more sense is to use the base VM images on the cloud provider and move the applications and data to the VM. That includes the ADC configuration.
When evaluating ADCs, take a careful look at the ability to programmatically apply initial and updated configurations – particularly the latter. Any product that saves configurations as a flat file can be exported and imported. The process is usually like this: 1) develop and test the initial configuration; 2) export it to a file; 3) modify it for another instance; 4) import it into the new appliance; 5) go to Step 3, rinse and repeat. That works fine when you have configurations that do not change often, but that is not the cloud way. Cloud computing is dynamic and application components have to respond to dynamic change.
What you want is a programmatic way to update a configuration across a number of instances that is nimble and can be applied to live ADCs without having to reboot them. ADC vendors’ programmatic APIs are being developed and you might find them in varying stages of completion, but what you need to research is the amount of programmatic access that will be available and in what form (such as an SDK library, RESTful API, or remote procedure calls). When you can match an ADC with an integration strategy and a cloud service, you’re ready to move to a hybrid cloud.