So a lot of my colleagues who have a lot of IT experience working on some very large workloads (and I generally count myself in this number) have balked at the notion that all IT workloads can moved to cloud computing models. In general, being in a multi-tenant environment is not the ideal scenario for very large, intensive database workloads, and cloud computing doesn’t change that. The vendors are incentivized to provide you adequate performance, while maximizing the utilization of their infrastructure. So if you want dedicated performance—you are going to pay (at least at Amazon, as of this writing Microsoft doesn’t have a performance storage offering in Azure.) For the purposes of this post—I’m referring to “cloud computing” as Infrastructure as a Service (IaaS), platform and software as a service are different scenarios with different requirements.
When the Cloud is Right
So right now I see two real scenarios where IaaS is an ideal fit—there are others (quick dev environments, testing new platforms, restore testing), but my focus is attuned to these two scenarios:
- Disaster Recovery
- Small Business
If you are a working for a major Multinational Corporation which has three or four data centers, feel free to ignore this section (actually, ignore this post and go read a licensing one.) If you work for a small to medium size business and your DR strategy is to take your backups home with you—you are my target audience. The cloud brings you a lot of really nice options:
- Backup directly to Azure (or other providers through API)
- All SQL Server DR options are available in hybrid models
I’m not suggesting you stop taking backups—just that you think about the cloud as your offsite backup repository. You can also think of the cloud as your second data center—that you only have to pay for when you use it. For example, maybe you only DR for an application, during certain business times of the year—IaaS makes this a viable solution.
The real genesis of this post, was an email I received following the presentation I did last week called “Building Perfect SQL Servers, Every Time.” My goal was teaching people how to install and configure SQL Server in an optimal and repeatable fashion. The session went well, and I had a number of a follow up questions via email and twitter—but I noticed something in a few of them, people where asking how to optimally configure hardware that simply wasn’t enough to server there needs (e.g. a server with only 2 physical drives running SQL Server), or they were a part time SA and DBA (and probably a couple of other things.)
If you have less than 10 servers, and they are running in a closet, you should definitely consider a cloud model. The networking is getting easier to setup and you can only pay for exactly what you need. There are other things to think about such as traffic and bandwidth, but the more important thing is your data is far more protected than it would be running on a server with two drives. In Azure, there are three copies of your data (this doesn’t mean you shouldn’t take database backups to Azure, but when you take those there are also three copies of the data. You may be concerned about security—Microsoft has all of these security certications, and your servers are in your closet.
Cloud computing isn’t for everyone—but if you are supporting a few servers, it can make both financial and technical sense. Focus your efforts on your core business needs, instead of trying to manage infrastructure with band aids and duct tape.