How Can Cloud Help My Database?
When we think of the traditional problems that cloud computing solves – decreased deployment times, providing self-service to users, among many others, we might not immediately think about how the cloud can help with an organization’s database infrastructure. Thinking about the cloud, we often think about deploying new servers using an Infrastructure as a Service model (IaaS) or the platform on which to develop and deploy new applications using Platform as a Service (PaaS). Why not take it one step further and start thinking about Database as a Service (DBaaS)?
There are few jobs in IT more thankless than that of a Database Administrator (DBA). Like in every administrative role, they are expected to be invisible when systems are working and the target of blame as soon as something goes wrong. Yet the consumers of database services rely on them to maintain highly available database architectures, perform regularly scheduled backups, restore databases that have become corrupt, and make sure database servers are performing as well as possible.
In many organizations, DBAs are overworked and simply trying to keep the lights on and systems operational. As the demand for new databases and database servers grows, response time increases and the productivity of application owners and developers goes down. That fancy cloud thing you’ve heard so much about was supposed to increase productivity and solve all of these problems, right? Can it solve this problem, too? Here’s the good news – it can.
Database as a Service
First, we’ll start with changing the way we deploy our database servers. In this aspect of DBaaS, custom virtual machine templates are created that already have SQL Server (or other database platforms) installed and configured. When a user or administrator selects a new database server from the service catalog, the virtual machine is deployed and the user has a fully functional database server. Once deployed, the server can either be managed by the DBA like other servers or owned by the application owner depending on the use case. This reduces the time it takes to deploy new database servers and frees administrators from having to install and configure database server software after deployment. Deploying database servers in this way is sometimes referred to as SQL as a Service (SQLaaS), even though it applies to database technologies other than Microsoft SQL Server.
Now let’s jump one level down (or up, depending on your perspective) and look at changing the way we deploy and manage individual databases. With DBaaS, a user can request an individual database (or databases) from a service catalog and that database is created automatically depending on their requirements. The user is also fully in control of things like database backups, snapshots, and restores. In this model, a user does not need the involvement of a DBA to deploy a new database or restore one should that be required. Consider the use case of a developer that is constantly making changes to a database and frequently needing to restore prior copies of databases or database snapshots as they work. DBaaS frees them from relying on a DBA to perform these tasks or having to access database servers directly, something that is not always possible in production environments.
Benefits of DBaaS
There are several reasons why DBaaS is becoming more and more compelling for organizations as they move towards a cloud operating model. Some of the more common benefits are listed below.
- DBaaS makes both developers/application owners and DBAs more productive, freeing them from the mundane task of installing and configuring database server software. With quicker deployment times and easier to manage databases, developers can complete projects more quickly and provide real benefit to the business.
- Allowing users to deploy database servers or databases directly, the entire database environment becomes easier to manage. Without DBaaS, many DBAs rely on deploying separate database instances to create logical separation for end users and developers. Maintaining separate database instances can be more complex and may actually create more work for DBAs.
- With improvements in productivity and a flexible database deployment model leveraging DBaaS, you can reduce the overall cost of the solution. And we’re not just talking about the soft costs of administrators managing database servers, either. We’ll talk next about how virtualizing your database servers, a key step towards DBaaS, can offer significant cost savings.
Where To Start
It all sounds like unicorns grazing from plush fields of bacon and you want to jump right in, right? Here are a few things you’ll need to consider before implementing DBaaS.
Virtualize Your Database Servers
It’s hard to imagine being able to leverage DBaaS without first virtualizing your database tier. Both Microsoft and Oracle have licensing schemes that would likely make DBaaS cost prohibitive if deployed on physical servers. Both have licensing models that require organizations to license all CPU cores in a physical server. Once licensed in that manner, the organization is free to deploy an unlimited number of virtual machines running the database server software on that physical server. If you plan to allow administrators and developers to deploy database servers on demand, you’ll need a licensing model that supports it or the costs will be too high to make the solution feasible.
By leveraging the unlimited virtualization rights of your database server license, you can take a first step towards this model and you may also end up saving your organization money in the process. Since many database servers have relatively low utilization requirements, many organizations can achieve high consolidation ratios and actually reduce the total number of database server licenses they need to buy.
Define You Service Catalog
When leveraging cloud computing in general, defining what belongs in your service catalog is a key first step, and DBaaS is no exception. Figure out what you really want to deploy via your service catalog before going down this road. You may not need granular database level control, in which case the less complicated SQLaaS model may better suit your organization. Talking to your developers, application owners, and DBAs will help you gather the requirements you need to choose the model that is right for you.
Build Your Cloud
It might sound obvious, but building out a true private or hybrid cloud is key to making DBaaS successful. It may be possible to adopt elements of DBaaS by simply virtualizing your database tier, but a true cloud provides the self service automation, orchestration, and metering that will be required to make this model successful. If you’re just dipping your toes into the cloudy waters, simply allowing admins and developers to deploy database servers (instead of controlling individual databases) may be a good place to start since it has many elements of traditional Infrastructure as a Service (IaaS) that your organization is likely to be familiar with.
The main goal of adopting cloud computing is likely not to reduce the burden on your IT administrators. Though it may not seem like an obvious benefit, having more responsive and business focused administrators can make your organization more agile and possibly reduce the number of times they’re called upon to spring into action when things go bump in the night.
On the other side, you’ll have happier users, developers, and application owners who no longer have to wait for DBAs to provision databases or database servers. That in turn increases their productivity and can help them finish projects faster.
Whether your organization is already leveraging private/hybrid clouds or just starting the journey, DBaaS can be a key addition to your strategy. You can make your business more agile and responsive, your DBAs happier and more focused on important projects, and possibly save some money in the process. What’s not to like?