Cloud computing gives businesses many options for hosting their applications. Cloud provides instant-on for the immediate launch of tools and applications, allows end users to launch applications themselves just when they need them, and lets architects design applications that can scale up to new levels with minimal operational oversight. But if you're among the group we identified as Cloud Beginners in the RightScale State of the Cloud Report, you may be wondering just how to take your first steps out of the data center and into the cloud. Here are six tips to get you started:
1. Start with a real application
Cloud is not a fit for every application, but every organization has some application for which it is a good fit. For your cloud proof-of-concept (PoC), pick an application that addresses a real business or technology need — don't create some artificial test application for purposes of the PoC. However, don't pick your most difficult use case either — choose a project you can complete in 30 to 60 days. And select an application that's a good fit for cloud's strengths: namely speed of deployment, scalability, and ability to handle variable loads.
If you have the option, start with a new application rather than porting an existing application from your data center. For one thing, when you've finished, you'll have created something new that people can use, rather than a science project. In addition, you can design your application to run in the cloud from its inception, rather than inheriting legacy requirements for the application.
A good PoC application might involve mobile or social media, big data, or batch processing. Don't choose a use case with special security or compliance requirements because you're just trying to learn how to use cloud right now, and simple is better.
2. Treat your first deployment as a learning experience
The first application you code for the cloud should serve not only as a solution that meets a business need, but also as a learning experience. Just creating the application is not your only goal — you want to learn things that you can use to establish good practices and help you improve your cloud development process. Your cloud applications will evolve, and your expertise and knowledge will evolve with them. Consider how you'll manage the application over time — using RightScale Cloud Management is one option.
3. Use a public cloud to evaluate the feasibility of cloud
Once you've zeroed in on an application to build in the cloud, your next decision is where to build it. You have a choice of public clouds, such as Amazon Web Services' (AWS) Elastic Compute Cloud (EC2), Rackspace, Google Compute Engine (GCE), and Windows Azure, as well as a choice of private clouds based on OpenStack, CloudStack, and VMware vSphere.
Even if a private cloud is your ultimate goal, consider starting your cloud development in the more agile world of a public cloud. Public clouds use many of the same hypervisors and orchestration technologies as private clouds, so you can dabble with cloud technology with less up-front investment of time and equipment and see how applications function in a cloud architecture. Start with a simple application and make it work in the public cloud. Build on your success for the next stage and then iterate, adding complexity as you grow.
Eventually you may want to deploy your PoC application, or some other service, to a private cloud. Private clouds are good choices for applications that need high performance. Unlike public clouds, which offer a limited number of hardware options, you can put as much power into your private cloud as your budget allows. And if security and compliance are factors, a private cloud might be a better fit, depending on your constraints.
4. Don't try to re-create your data center in the cloud
A cloud instance is not a virtual machine in the sky. Unfortunately, you can't simply move a virtual machine (VM) image to a cloud and expect it to work out of the box.
Traditionally, IT has built its systems from the bottom up, starting with hardware, installing hypervisors and operating systems, and finally launching applications. Successful cloud deployments turn that stack on its head, focusing first on the applications and, based on their needs, selecting the cloud infrastructure on which they would best run. The result is a highly available, highly scalable architecture at an economical price.
5. Test against technical requirements
Once you have your PoC application running on a cloud you can start to refine it. Test it for performance. Ensure that it meets your security and compliance requirements. Integrate support for it into your existing IT Service Management processes. And when everything is running smoothly, you can consider developing more complex workloads.
Common technical pitfalls are many. The biggest challenge is likely to be storage performance. You may not get the level of performance you're used to with your existing SAN. As an alternative, consider a cloud provider that can offer tunable IOPS performance or one that provides a combination of bare metal and cloud servers. Use bare metal servers for high-performance storage along with cloud servers for elastic workloads.
Organizations often share storage in data centers by mounting the same volume on multiple servers at the same time. You can't always do this with cloud storage, but you can get around this limitation by using shared file systems such as GlusterFS to share storage on the cloud.
Licensing may be an issue if the software you want to deploy is metered by physical CPU cores or hosts. RightScale can help with that problem because a number of independent software vendors (ISV) make their software available through RightScale, with licensing costs based on a cloud-friendly usage-based model.
If you need to meet security and compliance requirements, consider disk encryption and virtual private networks (VPN) to keep data secure both at rest and in transit.
6. Measure success based on broad business goals
Once you've rolled out your first PoC project, how do you judge its success? The best measure is whether you've gained the big-picture benefits that were your goal for starting the project. Business agility, for instance, is a typical goal — how quickly does the cloud help you respond to business needs and opportunities? Look at the speed and ease with which you can launch or change applications or services in the cloud, scale them up or down to meet changing demand, and offer services in new geographical areas.
Also consider whether you can now give both business users and developers self-service access to resources they need, and whether you can automate routine tasks for the operations staff.
Evaluate cost efficiency. The public cloud makes the costs of running infrastructure transparent, so you can compare public cloud costs to what you'd need to pay to run the same application in your data center. A less tangible measure to evaluate is opportunity cost — if you use cloud, do you gain opportunities you would not have with traditional infrastructure?
Another cost factor to consideris the cloud's effect on the efficient use of your staff's time to plan, prepare, and deploy applications and services in the cloud and manage those services compared with performing the same tasks in your data center.
If you develop your cloud PoC with attention to these tips, you can implement new types of solutions with cloud that you could not implement at all without it, such as highly scalable applications for web, mobile, social, and gaming. You can offer greater scalability and availability for your applications and minimize location-based latency to open up applications to users in a broader range of geographical areas. Cloud can even enhance the availability of existing data centers by providing an on-demand disaster recovery environment. And for all these uses, RightScale can add value as your cloud management partner. Sign up for free trial of RightScale today.