Not long ago Microsoft announced a new product called Azure AKA “SQL Server in the Cloud”. I have to say that when I first heard about the product I was skeptical. The problem I had is that I already have servers, lots of them in fact. I struggled to find any reason that would make me want to spin up a new server in the cloud. A presenter at a user group meeting changed that for me. The presenter threw out the example of the one-off charity campaign web site that many of us have to spin up with little notice then tear down after about a month of use. The lights went on, I got it. I now had an option that was even lighter than a VM and could be spun up faster.
Buying into the cloud was the easy part. Getting to the point where I can convince people in my organization that they should put their application in the cloud is another story. This is where I could use your help today. I have the easy parts of the argument down. The big thing is time. I can spin up a new Azure database in a couple of hours, while it could take a day or more to get a VM or server spun up depending on how isolated the application needs to be and how busy the respective teams are. Another interesting benefit is that the way the billing is set up it really makes it easy to track return on incubator type projects.
I get the great parts of the cloud but there are still some things I could use help with. Here are the questions I have not had much luck finding answers to or have not dug into yet (I thought of 1 or 2 questions as I was writing this):
How secure is my data?
This is a big one. How can I prove that my data is secure both in the database and over the wire? I have heard anecdotally that data can be encrypted at the application before being sent over the wire and stored in the database but how would this look? What would performance be like?
How do backups work?
Can I back up a database to restore to an internal server or restore a database from a local backup to Azure? Would I still have the opportunity to manage recovery like I do on servers I own?
How does maintenance work?
Can I / do I need to set up the usual maintenance jobs to keep indexes and statistics up to date, check for corruption, etc.?
What is support like?
This is sort of a double question but how do I monitor the performance of my database in the cloud? Are there any tools available that make it easier to proactively monitor for issues? What kind of support can I expect if I do have issues? Is there someone I can call? Is there someone monitoring that will call me? Am I expected to be able handle things on my own?
What about DR?
In the Azure demo I saw I distinctly remember the presenter referring to a Chicago data center. Is that a single data center located near Chicago or a group of them that share the load? Would I need to plan for the possibility that natural disaster or a fiber seeking backhoe could knock my database offline? Would my database move to another data center somewhere else in the world and just run a little bit slower until my chosen data center is back online?
So there you have it. Those are my concerns about moving data to the cloud. Overall, I think the cloud will be huge, although I do not know enough about it to know if I am ready to add it as a tool in my toolkit yet. If you know the answer to any of my questions please feel free to leave them in the comments below. Thanks for taking the time to hear me out and share any knowledge you may have.