Five Best Practices for Successful Cloud Deployments and Pitfalls to Avoid

October 17, 2011 Off By David
Grazed from Sys Con Media.  Author: Richard Stone.

Cloud computing represents a compelling new way of providing business agility, flexibility and time-to-value. But companies are learning the hard way that deploying cloud-based applications without considering the unique characteristics of the cloud is resulting in user frustration, low adoption rates, reduced revenue and ultimately failure to achieve the predicted ROI…

The reality is that the cloud presents new challenges and imposes new rules for application architects, IT professionals and line-of-business managers in many different areas such as end-user experience, availability and performance. The root of the problem is the fundamentally different way that cloud applications are delivered to end users and customers – the application delivery chain. Often involving a dozen or more third-party service providers spread around the world, this delivery chain is significantly more complex than in existing IT architectures, and can produce hidden and completely unforeseen interactions which result in the non-availability of applications and data. For many companies, these problems are impossible to isolate and fix using their existing data center-focused IT tools.

Albert Einstein once said: "The only source of knowledge is experience." The ‘experience’ we’ll reference throughout this article is the only one that matters – that of your end users on the other side of the cloud. The end user’s perspective is the only true barometer for determining if your use of the cloud is a benefit or a liability and if you’re getting what you paid for when you signed your cloud service provider contract. Recent research shows that cloud service provider performance can vary greatly from one provider to another; also, the further away your end users are from a cloud service provider’s data center, the slower performance tends to be. Before selecting a cloud service provider, you need to consider what their service is like for your key geographies. New industry tools can provide a starting point to gauge different providers’ performance levels around the world.

With Einstein’s words in mind, let’s examine some best practices for successful cloud deployments that ensure a strong end-user experience and ultimately enhanced ROI.

1. Know Why You’re Going to the Cloud
Get agreement on your top objectives before you actually do anything. Initial cloud deployments in many companies are often driven unilaterally by individual business unit needs – IT wants to reduce capital expenditure on hardware; sales wants an integrated sales force automation solution; or human resources wants an online recruitment presence. Without a well-communicated, company-wide set of objectives, these deployments often result in inter-departmental confusion, missed ROI and increased risk. If IT is simply focused on cost reduction, they might not be aware that the new cloud-based service is providing a worse service to their internal end users and external customers. Or, the new sales force automation solution may be increasing security and compliance risks by exposing sensitive customer data to unauthorized users. Although these problems are not unique to the cloud, the relative ease with which business units can procure cloud services makes it much more likely that they will occur.

Furthermore, beyond just understanding your business objectives for using the cloud, you need to understand what levels of performance – i.e., speed and availability – are needed from your cloud-based applications in order to deliver fast, reliable and highly satisfying end-user experiences.

For example – perhaps a business is using the cloud for elasticity, meaning speed (fast ramp-up) plus capacity to handle occasional, sporadic overflows. Or, perhaps a business is using the cloud in a cloud-bursting model, meaning that instead of investing in an internal infrastructure massive enough to handle occasional, extraordinary traffic peaks (but otherwise sitting idle), the business buys just enough infrastructure to handle usual traffic patterns and diverts only peak, special event traffic to the cloud.  For example, cloud bursting can serve as a great ROI model for an online floral company on the day before Mother’s Day. Or, maybe a business is using the cloud for full-blown support of business applications, 24 hours a day, seven days a week.

Once a business has determined exactly why they’re using the cloud, they can then dictate their performance expectations – which should be based on the unique needs of their business and end users – and set up service level agreements (SLAs) geared towards these parameters. For example:

  • Businesses using the cloud for elasticity purposes need to understand what amount of capacity needs to be available, and how quick the ramp-up needs to be in order to avoid performance issues like time-outs and slow application downloads for end-users. Contrary to popular belief, cloud capacity is not limitless.
  • Businesses using a cloud bursting model need assurance that complex configurations will work properly and seamlessly, with minimal impact on the end-user experience. These businesses must determine how quickly and at what traffic threshold they must cloud burst.
  • Finally, businesses using the cloud to support business applications must first consider performance requirements for end users. For a business using cloud services on occasion to support behind the scenes, back-end applications like number-crunching, slight and infrequent dips in application performance may be tolerable. But for a business using cloud computing to support a high-visibility application or service for a worldwide base of end users, unpredictable stumbles on the part of the cloud service provider are just unacceptable, and there must be specific guarantees regarding the speed and availability of cloud-based services written into cloud contracts.

One final note here: make sure developers have a seat at the table when negotiating cloud service provider contracts. Why? Pricing in the cloud is very variable: some vendors charge by the CPU hour or RAM hour or both; they all charge for bandwidth/transfer, but some are free inbound, some aren’t. Some charge by volume, some by bandwidth. Only the developer really knows how the application works and what types of resources it requires, so they can have a significant impact on your service provider costs.

2. Manage ACTUAL Service Levels, Not Just the SLAs the Service Provider Finds Convenient
Availability, portability and security have long dominated the discussion around cloud computing risks. To address these concerns, cloud service providers offer SLAs promising certain uptime guarantees (such as 99.9 percent). But SLAs like this do little to address concerns about the risk of performance, or the response time or speed at which cloud capacity becomes available, ramps up and down and/or delivers applications and services to end-users.

For example, how does a 99.9 percent uptime guarantee translate to performance levels? Does availability mean the server is running or that application and services are performing to a business’s specifications? A look at the status dashboards of several major cloud service providers doesn’t offer this level of detail, and in fact, very few cloud service providers currently offer performance guarantees like this. Today, cloud service providers’ SLAs are incomplete, woefully inadequate and far too generic in addressing specific application and service performance requirements for individual business customers.

In fairness to service providers, there is actually no way that they can guarantee the performance of an application from an end-user perspective because it is dependent on a number of factors which are completely outside their control – which brings us to our next point.

3. How Are End Users Experiencing Your Cloud-Based Application?
Measuring the success of any cloud deployment ultimately comes back to two things: 1) ROI – are you getting the predicted results from existing end users; and 2) increasing end user adoption – are you continuing to ‘sign up’ new users? Understanding why predicted results aren’t being achieved – especially from existing end users and a well-designed application – can be frustrating and elusive, but in the end, it almost always comes down to end-user experience management.

End users today are impatient, unencumbered with antiquated notions such as brand loyalty, and expect things to just work. Their expectations of how an application should perform are being shaped by Facebook, Google and YouTube, and they have a decreasing tolerance for slow applications. This is dramatically demonstrated by studies showing a clear correlation between page load times and abandonment rates, a good measure of user impatience.

Specifically, as page load time increases, so does the rate at which users abandon pages. In other words, the end-user experience is critically dependent on the performance of the application. These studies also illustrate how a poor user experience has a direct impact on revenue and ROI. A page load time of just six seconds results in a page abandonment rate of about 20 percent. If the page in question was a shopping cart checkout, then you will be losing 20 percent of your customers – and your revenue – simply because of the page load time.

4. The Cloud Doesn’t Nullify Geography
In these days of "instant communication," it comes as a big surprise to many people that geography can have a dramatic impact on application performance and hence the end user experience. This is illustrated in the map below. The left-hand map shows the service availability and all lights are green. The right-hand map shows actual end user performance, and it clearly shows that the further away an end user is from the service provider, then the slower the performance. This is the case with any service provider and a far away location – also, it underlines the earlier point that simply using SLAs to manage service providers isn’t effective from an end-user perspective. You need to measure the true experiences of your most important end-user segments, including those that are far away, to ensure your cloud service provider can deliver fast and reliable experiences in key regions.

5. Optimize Your Whole Ecosystem – The Cloud Is Just One Part
Cloud computing and the associated expansion of IT’s "ecosystem" means that the application delivery chain – hardware, software, and services, both within and beyond the firewall – has become significantly more complex. Poor performance at any point in the delivery chain can degrade performance of your cloud-based application.

All the components of the delivery chain – not just cloud service providers, but data center elements, third-party services, CDNs, ISPs, browsers and devices – have to work seamlessly together in order to maintain an acceptable, high performance end-user experience. The challenge for IT is to be able to monitor and manage every part of this delivery chain, even though much of it is outside their firewall and beyond their control. It quickly becomes obvious that this requires an entirely different approach from the traditional tools that focus on one part of the delivery chain. Data center tools will not be able to detect problems on the internet or with third-party service providers adding features and functionality to your site. Simple web management tools will not be able to detect problems in the data center either.

It’s certainly possible for the data center tool provider to partner with the web management tool provider, but this doesn’t buy you very much. IT troubleshooters are still presented with multiple – and different – dashboards; data integration is minimal and most importantly, there is no ability to provide a single view of the business impact of problems in different parts of the delivery chain. The only way to effectively meet these new requirements is to provide a single integrated dashboard that monitors and manages application performance across the entire application delivery chain and from the end-user perspective.

Conclusion
In summary, the five best practices for successful cloud deployments include:

  • Understand what you want from the cloud.
  • Realize that success or failure in the cloud isn’t measured by SLAs.
  • Focus on the end-user experience on the other side of the cloud.
  • Ensure the cloud can deliver high-quality experiences in key geographies.
  • Manage the cloud as part of a fully integrated, "front-to-back" approach that identifies and fixes faulty components in the application delivery chain, before end users are even aware a problem exists.

Incorporating these practices into your cloud strategy will help achieve results like enhanced ROI and end-user adoption, stronger revenues and customer growth. In short, these practices will help protect your cloud investments and validate you’re getting what you pay for when you adopt the cloud.