This month’s installment of T-SQL Tuesday is brought to you by Jorge Segarra, and he’s asked about our opinions on the Cloud. The company I work for, Sanametrix, does all of its work in the Cloud; in fact, that was one of the main reasons I took the position. Additionally, at this year’s PASS Summit, I was selected to give a talk about automation in the Cloud via PowerShell, so you can say that I’ve already drunk the Cloud koolaid.
All that said, the Cloud isn’t some magical thingamajig where in all performance, scale, and unicorns reside. At the best of times, the Cloud is adequate at what it can do for you, and at its worst, it’s expensive and slow. And as I point out in my Automation in the Cloud talk, it’s fantastic for developers and for deployments, but it doesn’t offer that same flexibility and scalability towards typical database tasks.
The Cloud requires the management of expectations. If you take a look at the different kinds of machines you can buy in EC2, you’ll notice that the majority of them (13 of 18) offer less than 60GB of memory. Most have 8 virtual CPU cores or less. For database professionals, those statistics can be alarming especially for those of you who work in Fortune 500 or any other large enterprise company. But for many small businesses, non-profits, and educational agencies, that’s probably on-par (or greater!) than the processing power of their current servers. And they no longer need to worry about powering those servers, licensing those servers, or even hiring a sysadmin to care and feed those servers. True, for the same amount of money spent each year, they could have bought a more powerful, physical server, but the Cloud is great at shifting all these different costs into a single package.
Even though you’ll be stuck with smaller, less powerful servers in the Cloud (unless you’d like to pay a premium…), that doesn’t mean performance is lost. People and companies are building fantastic, quick apps that rely on the strengths of the Cloud, namely, that it’s not just a single service, but a whole host of complementary offerings. As I’ve pointed out in my Automation talk, think about the Cloud as a collection of services, each tuned specifically for a different task. So while you might use EC2 as virtual web and application servers, you could be storing your relational database in RDS, running your data warehouse with Redshift, and sending email notifications with SES. Each of these different services has been highly tuned to perform well at a specific task, and by separating what your application does across different services, you aren’t going to overwhelm your processing servers with “too much to do.”
Finally, the Cloud isn’t for everyone. If you’re at one of those large enterprises, you should have your reservations. For all those start-ups gaining traction in the Cloud, there are some that have grown up and are moving on-premise in order to save money. And for most companies, it’ll be a split: some resources will stay in-house while they look to the Cloud for additional processing power. But as long as you are honest about the trade offs and managing expectations with business users appropriately, most people are happy with what the Cloud can do for them.