Previously, we considered how Application Developers may be the point of entry for cloud computing into your organization. In this posting, I'll consider the effect that might have.
Cloud Computing is not just about cost savings
The role of the applications team changes when they start to use cloud platforms. Now, they control not just the application code, but large portions of the application infrastructure it runs on too. Apps guys are smart, and basic infrastructure isn’t hard. Your good apps guys probably run their own infrastructure from home or from some service provider already, and know enought about TCP and HTTP and Firewalling and to hold their own with their network colleagues.
Perhaps this sounds like a recipe for disaster, but with sufficient support and buy-in, you can make this shift in responsibilities work. Finally the applications teams can drive the infrastructure, leaving the cloud provider to make the hard hardware decisions.
In fact, it’s a potentially a catalyst for great success. Take load balancing as a case in point.
Load Balancers
Modern load balancers (a.k.a. “Application Delivery Controllers”) are immensely capable devices that can manage and transform network traffic in a multitude of ways to address all sorts of application problems. However, there’s a problem. They are often in the wrong place and they can’t be moved.
The majority of load balancers are hardware appliances. They sit in the datacenter, owned by the network team, with a massive organizational firewall around them. Their scripting and traffic management capabilities are blunted because they are in the wrong hands.
Suppose that an application developer has a problem he needs to solve. Perhaps there’s a bug in an application that is provoked by particular requests and he needs to seal it off pending future investigation. Perhaps there’s a clustering problem he could bypass with appropriate session persistence in the load balancer. Maybe he has to support some new client software that uses a slightly different protocol variation that requires either an application modification or a simple rewrite rule in the load balancer.
In each case, the problem can be solved using the load balancer more quickly and effectively than by modifying the application code, but this assumes two things. Firstly, the developer needs access to a load balancer to develop and test the fix, and secondly he has to negotiate his way through the organizational firewalls to place his change request and wait for it to be approved and applied.
Imagine instead that your load balancer / application delivery controller resided in the cloud as a software service. Your application developers could get unrestricted access to a dedicated load balancer (on a pay-by-use or zero-cost basis) to develop solutions and use the functionality more effectively in his applications. This is entirely possible if you choose a cloud provider who offers this advanced load balancing functionality as service (e.g. Joyent), or if you use a software load balancer rather than a hardware one (and run it in your cloud of choice), particularly one with free licenses for your application developers.
Make your
application infrastructure ‘cloud ready’
This ‘empowering’ of your applications team for the benefit of your business is not a consequence of cloud computing. It’s a consequence of making your application infrastructure ‘cloud ready’, whether or not it ever gets deployed to a cloud.
Making your infrastructure ‘cloud ready’ entails a subtle, discreet shift in power to your applications team. Audit your application infrastructure, picking out any components of your composite application that are implemented in hardware appliances – firewalling, intrusion detection, web application firewalls, load balancers etc – and replace them with software alternatives when the next technology refresh comes round. If necessary, walk round your datacenter with a pack of post-it notes tagging any brightly-colored single-purpose appliances with the label ‘anchor’, because those appliances are going to weigh your application down and prevent you from ever moving it to the cloud.
When you do come to deploy software alternatives to your legacy hardware appliances, you will naturally deploy them on the same type of server hardware that you use for your application servers and application code. So it’s a natural move to hand responsibility over to your applications teams to manage them from then on.
By doing so, you achieve two things.
You make your infrastructure ‘cloud ready’. Next year, when your CFO reads the article in his airline magazine explaining how MultiCorp saved $millions and delivered new services faster than their competitors as a result of moving to a cloud architecture, and then asks you “why can’t we do the same?” you’re lined up to be your company’s next hero and the CFO’s new best friend.
A ‘cloud ready’ infrastructure sidesteps the ‘breaking down silos’ challenge that many organizations struggle with. It goes directly to the heart of a key challenge, empowering your most innovative, valuable employees to create more new services, more quickly for your business.
Like so many advances in the IT industry, Cloud Computing is much more than a technical solution to a technical problem. Like client-server, and SOA and Virtualization before it, cloud computing can be a catalyst (or just an excuse) to shed legacy shackles that hold your business back and effect real change for the better.