There is no question that the cloud is growing in popularity for enterprise use for raw computing power and other services through its three main categories: Infrastructure (IaaS), Platform (PaaS), and Software-as-a-Service (SaaS). According to a recent report from Gartner, the sum of end user spending for cloud application services (SaaS) total market alone is valued at $22.6bn for 2013, and forecasted to reach $45.6bn by 2017 – a compound annual growth rate of 20%!
For CIOs across all industries, developing a sound cloud strategy is often fraught with as many concerns as benefits: How do I maintain control of my applications and their data? What about security and the overall costs associated with moving to the cloud?
Most concerns boil down to one simple question – how comfortable do I feel about letting go? It’s a bit like letting a child loose into the world, it makes you nervous. We’ve all heard our fair share of war stories about cloud outages and the resulting impact on the end-users who relied on applications and services being delivered from that cloud environment, and it is of course these examples that stick in our minds.
The problem is that every CIO is facing the challenge of distributing their applications to an increasingly global and mobile end-user base that demands the application reach any user, anywhere, on any device. Delivering this utopia is complicated enough, but the CIO understandably wants to maintain control, security, reliability, and find ways to reduce their IT costs.
The Cloud Paradox
Many CIOs still have the perception that it is easy and cheap to scale out beyond a single cloud region. This is of course easier if you are operating from a single region with multiple zones available in a single cloud provider, but things are rarely that straightforward. Many companies require their application in multiple regions either for regulatory reasons or because that is simply where their users are.
Using more than one cloud provider across regions in an effort to ensure they can deliver applications to users effectively is a complicated, but effective strategy. This all, of course, leads to increased complexity not just in terms of management, but also increased cost, application delivery complexities, and the increased possibility of downtime due to increased points of failure and architectural complexity.
Even running an application with just one cloud provider can become a complex affair when you suddenly need to operate in more than one region. There are issues to review in terms of data collection, transmission and storage, as well as local laws that must be complied with. But even dealing with the cloud provider themselves can be a challenge with different pricing models in operation, as well seemingly simple tasks such as invoicing.
In addition, different regions on the same cloud supplier can be subtly different from a technical perspective. This is a result of each cloud provider taking a very different approach to how they architect the software stack that powers their offerings, leveraging different technologies that each respective cloud provider deems to be the best, cheapest, or offers a unique competitive advantage. This makes it extremely difficult for customers to leverage resources from multiple cloud providers.
Beyond that, it is critical for the applications to run in identical environments to ensure they can operate without any failures. From a development standpoint this means applications either must be very robust and architected so that they can tolerate those differences or there must be certainty that the environments they run in are identical, even if they are cross region in the same cloud provider or on multiple cloud providers. This adds huge complexity and cost to the development and application delivery process and drags out the speed with which application updates can be brought to market due to testing.
Counting The Cost
The capital cost and time involved building out data centres can be prohibitive for all but the largest of organizations, so in many respects it is no surprise that companies use cloud service providers to deliver their applications.
But maintaining even a modest cloud infrastructure environment can be a large operational expense. It could cost €51,000 over three years to run four Linux Servers based on the US East Coast, one MySQL database and 300GB of database back-up storage on the West Coast.
This might give the business the basic application infrastructure that it needs, but its all sitting in one location. Replicating this infrastructure in other regions to improve delivery performance would quickly multiply the costs into hundreds of thousands of euros.
Managing The Cloud
While cloud providers are successfully solving the challenge of having on-demand access to scalable compute and storage resources, moving to the cloud creates new challenges and leaves some existing challenges unaddressed, such as getting applications close to users and performing well on all mobile devices.
Even the largest cloud providers with their own data centers only have 9 or 10 physical locations around the world. That may get your application delivery reach into a continent but leaves you a long way from the end user, thus delivering a poor experience to many of your end-users.
Of course the more infrastructure resources you have – whether it be those that you own or through one or more cloud providers – creates a management overhead. Not only do you have to manage your applications at each of the data centers, but you will want to be able to measure the performance of those resources, and perhaps even manage the server instances directly.
When working remotely, all of these tasks can become very time consuming. The aim of any infrastructure should be to minimize complexity and allow IT staff to focus on delivering new applications, efficiencies and value to their end users.
So when the challenge is a distributed computing problem and pushing your application into more and more data centers can create so much complexity, what is the right architectural decision?
Leverage The Best Of ‘Cloud’, While Maintaining Control
The answer, and one being increasingly adopted by companies around the world, especially in markets such as financial services and online retail, is to deliver content to distributed users from a centralised location and implement a layer of application delivery intelligence in front of your datacentre environment. A distributed content delivery network that is optimised to move dynamic data quickly through the Internet best performs this.
Organisations should architect a distributed application delivery service in front of their cloud applications that allows them to leverage the cost benefits and on-demand access to compute and storage resources, and also overcome some of the challenges that cloud providers do not address, such as global scale of delivery, intelligence to delivery to any type of end-user device, or real-time load balancing and failover in the instance of an outage.
So is it utopia? Only you can answer that based on the needs of your application, or from the needs of your users. But if management, complexity and costs and burdening you as a CIO then it is an architectural option that should be explored…