Growing up, my mom required us to help with household chores. And, I’m so glad she did. I remember doing my own laundry when I was 9 years old – with no washing machine nor dryer. Being in a private school didn’t help either – I had to get my school uniform ready before the school week started. So, my weekend mornings were usually spent doing my (just mine) laundry. At the back of my mind, I knew there was an “unlimited” supply of water and laundry detergent so I used up as much as I can. I hung my clothes on a clothesline at our backyard to dry. But I didn’t understand whenever my mom would say “don’t waste water” or “don’t waste laundry detergent.” How could I be wasting when I was using them? I also didn’t understand whenever my mom would say “collect your laundry at the end of the day.” Why do it at the end of the day when I can do it the next day?
But when one of my socks went missing because I forgot to collect them the night before, the lesson stuck. And when – 10 years later – I saw how much I was paying for my water bill every month, my mom’s reminder came echoing thru one of the tellers at my bank. Because my actions now COST me something.
When Somebody Else Is Paying
As a SQL Server professional – whether you’re a database developer, a database administrator or a business analyst – our main focus is to get our job done. You write code to implement a functionality, you take backups to recover the database, and you run SELECT * FROM statements to perform analysis. Notice how all of these tasks focus on our jobs, our roles and our responsibilities. We complain when we don’t get that new version of SQL Server to test out a new feature or that shiny, new server from HPE. And we make all calls to the database impersonate the sa login. Like me, you probably reason that you are being a responsible professional who maximizes the available resources. We rarely pay attention to the cost associated with what we are doing. And this is the typical mindset that we IT professional have when we started our careers.
Becoming A Better SQL Server Professional With Cloud Computing
Cloud computing changes that. With organizations continuously looking at different ways to drive down cost, IT needs to be aware of how it contributes to the bottom line. Think about it. Whenever you use a resource on the cloud, you get visibility on how much that resource is costing you. Let’s see how using cloud computing can help make us better SQL Server professionals by evaluating it against the S.P.A. I’ll use Microsoft Azure as a reference but this applies to any cloud provider.
- Security. How many database developers think about firewall rules when they access the database from the application? More so, how many database developers apply the concept of least privilege when writing code? When you create an Azure SQL Database, you would be asked to provide the IP address that you want to allow access to the database. You will also be asked to create different database roles. This approach already forces you to think about security even before you create your tables or connect your application. The same thing applies to a SQL Server instance in an Azure virtual machine. You will be asked whether you want connectivity from within the Azure virtual network or thru the public Internet (which is certainly not a good idea.) Not thinking about security can cost you in terms of data exposure and potential security breach.
- Performance. As I mentioned in a previous blog post, performance seems to be the top priority of every database professional. And this can be easily addressed on the cloud compared to on-premise deployments. Want a faster Azure SQL Database? Upgrade an S0 instance to a P1. That’s an easy task with literally no downtime. Same thing when provisioning an Azure virtual machine with a SQL Server instance. Do you want an Enterprise Edition to go with that? Or maybe local SSDs? But wait until you see the bill at the end of the month. As a database administrator, this forces us to rethink the way we do database deployments. Developers will start evaluating the use of appropriate data types for the table columns because you need to pay monthly for the storage cost. Outbound data transfer for BI purposes will have to be re-evaluated to minimize bandwidth usage. If you have an MSDN subscription, try using your Microsoft Azure credits just for a month. With a cap on your monthly budget, you start to think differently in terms of maximizing your available resources while still getting your job done efficiently.
- Availability. You say you need all of your databases in FULL recovery model? Or all of them in an Availability Group? FULL recovery model will require you to take regular log backups which will require storage space. Your Availability Groups will require Enterprise Edition licenses (as of SQL Server 2014) and at least two SQL Server machines. We don’t see the cost associated with an on-premise deployment. The cloud will tell you all about it at the next billing cycle. This forces us to think about focusing on recovery objectives and service level agreements. Don’t get me wrong. As somebody who focuses on HA/DR, I would love all of my databases to be highly available. But as I tell my customers, we need to balance the HA/DR requirement with the cost associated with it. The cloud forces us to do that.
It’s a natural tendency for us to resist change, especially if the change pose a risk to ourselves. IT professionals hated the idea of cloud computing for fear of losing their jobs in the long run. But if you think about it, the cloud is actually helping us change our mindset in terms of managing an IT asset. That also prepares us in facing the challenges of our next role. Just think of the cloud as an opportunity to give yourself a promotion – from a data professional to a solutions strategist.
IF YOU ENJOYED THIS POST, GET MORE UPDATES STRAIGHT TO YOUR INBOX.