It seems as if every CIO comes back from a conference cocktail party demanding IT "move to the cloud." While this can mean many things, including using software-as-a-service (SaaS), managed hosting, or application service providers (ASP), the demand often centers on moving applications out of your own budget-sucking data center and up to an infrastructure-as-a-service (IaaS) cloud platform.
Forrester defines cloud computing as:
A standardized IT capability (services, software, or infrastructure) delivered via Internet technologies in a pay-per-use, self-service way.
Public IaaS cloud computing is the delivery of compute (virtualized servers, storage, and networking) on demand as a shared service. The promises of IaaS clouds combine real flexibility and instant capacity with compelling economics like $0.10 per CPU per hour. While the economics are true, they are a tease.
The value of IaaS clouds lies in developer productivity and time-to-market more than cost, as IaaS clouds let developers entirely control the provisioning, configuration, and deployment of the VM themselves. The key is deploying the right kinds of applications, for the right types of uses, with the right business model behind this practice.
Best Practice 1: Test and Development in the Cloud
The most common practice among enterprise users of IaaS cloud platforms is to build and validate new applications. Developers should focus on testing their application's functions, performance, and scalability. Although you may find that many applications can be tested on a public cloud infrastructure, you will also find that others-for technical or cultural reasons-are best kept in-house.
The toughest testing actions to schedule inside your own data center environment is the performance test, where you want to stress the application with simulated or actual load to determine its scalability limits. This is an ideal use of an IaaS cloud platform, as node limitations are pretty much nonexistent.
Developers should also consider using a cloud-based testing framework. While more sophisticated developers and QA technicians have the skills to set up production-like test environments in the cloud, testing is a process and is best conducted within a proper process framework. Additionally, you should transform internal test and development to a cloud-like structure.
Best Practice 2: Deploy Web Applications
It's no great stretch to conclude that the majority of applications deployed on public cloud infrastructures are Web-based applications. But which are the right ones to be deployed here, and what should your enterprise strategy be?
If you have short-term marketing and sales campaigns such as a product launch, promotion, new media outreach campaign, or activities timed to events or seasons, you should consider deploying these elastic sites on IaaS clouds. Cloud platforms provide a place for deployment that fits these short time horizons and drops to zero cost once the activity is over.
Developers should also consider deploying project collaboration applications and services that can come and go on demand. Enterprises are leveraging public IaaS clouds to deploy project-based collaboration applications, file repositories, and services needed by their teams. If all you need is a wiki or a Sharepoint volume, IaaS clouds are overkill and certainly more complex, but if you have more elaborate needs for short-term teams, these platforms can be ideal.
But perhaps the best use of IaaS clouds is to place Web applications that trigger or are triggered by revenue-generating activities. For example, Animoto Productions' cloud-based service converts a collection of digital photographs into a music video. This conversion and encoding process doesn't get triggered until a customer uploads photos and supplies a credit card. Thus Animoto's cloud VMs don't get instantiated until the company gets paid.
Best Practice 3: High-Performance Computing (HPC)
Often, these massively parallel programs can usually be scaled out to effectively tackle very large problems, and the constraints of HPC are usually the size of compute grid that can be deployed. Enterprises are constantly having to trade off grid size and cost against speed of getting the result. With the financial burdens we are all under today, IaaS clouds provide very necessary relief to this tension.
One of the best emerging practices in HPC is to leverage grids. If it's been a while since you last thought about grid computing, you probably associate it with hermit-like developers with highly focused skills in parallel processing who take business demands and map them to grid architectures. While still true in some circumstances, most grid engines today can easily accommodate more traditional applications with much less developer effort.
You should also remember that clouds can be a tremendous fit for large data sets, as TBs of data can be stored in cloud infrastructure for a very low cost. This can help you identify patterns and draw conclusions that can better direct marketing and product efforts, identify risk, or forecast future behavior.
In the current global recession, infrastructure and operations professionals are being squeezed to drive down costs even further and drive up efficiencies. With an IaaS cloud platform, you can do both. But before you start, make sure you have supportive management who will view your use of cloud computing as empowering for the business, not as a threat to infrastructure and operations.
James Staten is a Principal Analyst at Forrester Research, advising IT Infrastructure & Operations professionals on the transformation of the server and data center into more efficient, business-focused ecosystems. He is an expert on cloud computing. To obtain free, related research from Forrester, please visit: www.forrester.com/cioiaas.
Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.