Click here to monitor SSC

Occasional Editorial announcements.

On taking a more nuanced approach to Cloud services.

Published 28 January 2013 3:13 pm

Although it makes a lot of sense for an IT department to use the Cloud where possible instead of using its own IT infrastructure, you can’t just move everything and expect to be left with no task more taxing than twiddling a big dial marked ‘scale’.

Whereas the cloud works well with stateless, process-heavy, application servers that can be easily scaled horizontally, databases aren’t so amenable to this form of scaling. The Cloud finds it trickier to deal with the scaling of singleton-type usage, call-back statefulness, audit information and transactionality. In addition, the performance and scalability of databases depends on a complex combination of factors, including design, CPU, Memory and disk performance. Any experienced administrator is, for example, likely to be very interested in waits and what causes them; it is a struggle with hardware in which much of the fight is in the detail; finding the best hardware RAID 10 configuration to provide low random seek times, for example, or the best-performing load-balancer or firewall. This can be abstracted safely into a cloud service only if performance isn’t critically important. Every level of abstraction or virtualization brings with it a performance penalty. We can disguise this fact in our application with tricks such as using memory-mapped files, but there is no cost-free virtualization. With cloud platforms there are only a few knobs to twiddle, and none as cost-effective as minimizing the time taken to write data to disk.

Some people have blamed the relational model and have dabbled in many systems that promise horizontal scaling. Some are good, because they have the advantage of casting off the baggage of backwards compatibility, transactional integrity, or open standards, but not because they are intrinsically better at scaling.

Were I planning a corporate IT strategy, I’d be considering hybrid approach that considered the requirements of the individual applications, and took advantage of the obvious advantages of Cloud for application servers, and less performance-critical database servers, but kept the corporate databases in on-premise AlwaysOn clusters. Would you?

2 Responses to “On taking a more nuanced approach to Cloud services.”

  1. Sergio E. says:

    Absolutely, even with all the power behind it, the cloud is not “The Answer”, is just another way to solve some problems, but as you observe, there are special situation in which the cloud can even be an unexpected bag of problems, and the worst part is that being out of our control, it can’t be tunned to serve as part of this special cases, so the mixed solution is a very good idea to consider.

    Best regards,
    Sergio E.

  2. Yes, ti is hard for me to see a bright future for the cloud services on the performance front.
    I did some fiddling with my test acount for Azure a few weeks back, and I was saddened and surprised to notice that it takes about 1 second to establish a connection to the SQL Azure. And then it took about 2 minutes to write 100,000 rows to a database table.
    Here is the link to the performance tests:

    The performance problems aside – I guess we can use Azure for offloading some static data which is non-confidential with the purpose of having it available during our maintenance windows of the in-house solutions.
    Other than that – the cloud services are not as cheap as they seem, not as reliable as they seem and not ready for high performance.


Leave a Reply

Blog archive