Yet, this sort of agility is not the norm. While virtualisation alone has generally improved server utilisation, it often does relatively little to improve developer productivity or to accelerate application delivery.
Approaches for dev/test
Perhaps the most common reaction we've seen to this mismatch between what developers are asking IT organisations to deliver, and what those organisations are actually delivering is what's called shadow IT. Users are going straight to public clouds – bypassing IT departments – and spinning up needed compute resources, paying for it with a credit card. This may provide developers with some temporary relief, but it can introduce security and compliance risks. It can also result in applications that don't interoperate or that can't be easily transitioned to a production environment.
However, as Forrester notes (in 'Four Common Private Cloud Strategies' by Lauren E. Nelson): "Banning the use of unauthorised services will just lead to resentment and more stealthy circumvention." Rather, they counsel that: "The most favoured approach, according to Forrester inquiries, is to provide an alternative environment to the public cloud, delivering this agility in-house. But to successfully incent voluntary change, organisations must approach this service as a cloud and not as an enhancement of the enterprises' existing services."
Organisations can deliver this agility in two complementary ways: by building cloud-style Infrastructure-as-a-Service (IaaS), such as that provided by OpenStack, and by delivering complete development environments as a Platform-as-a-Service. Public clouds can also be added as part of a managed, hybrid environment.
Today's IT professionals – of all levels – face considerable challenges. However, perhaps none of these challenges is greater than breaking down the traditional barriers preventing them from delivering applications and new business services faster. Enabling developers through a dev/test cloud is a practical, achievable starting point for a cloud implementation.
Meeting this dev/test challenge goes beyond technology of course. In that respect, it can help serve as a template for cloud projects more broadly. Implementing a cloud means involving the entire business. What are the most pressing business needs? What manual processes and approvals govern provisioning new resources today and how can they be minimised or eliminated?
And it requires working with the end users, in this case developers, to ensure that their needs will be met at the end of the project. Because if they aren't, you'll be back where you began – with unmanaged, ad hoc, public cloud use. Because the public cloud is the benchmark against which you'll be measured.
- Gordon Haff is cloud strategist at Red Hat