The ubiquitous database is almost an afterthought for any modern developer. Nowadays, we typically have a good idea which database will fit certain needs. Kicking off a LAMP stack project takes no time at all, and an ASP.NET project with a SQL Server backend is equally straightforward.
Using a database for your application wasn’t always so common. I can still remember a time when building a data-driven website was a market differentiator. A developer’s ability to take your website or application and have it dynamically change, based on data (rather than offering a static site), was a game-changer. We wouldn’t have used the word “innovate” back then, but that’s definitely what we were doing.
Cloud computing is revisiting tried-and-true technologies, like databases, and bringing innovation to companies faster than ever before. Let’s use the extremely popular MySQL database to demonstrate how innovation is advancing computing.
MySQL is probably the most widely used open-source database. It is found almost anywhere you find a PHP web application. MySQL is also a mainstay of popular content management systems like Wordpress and Drupal.
Cloud platform vendors like Microsoft, Google and Amazon understand the value of this popular database and they’ve all provided access to MySQL in the cloud. If you’re in the habit of comparing Azure vs Google Cloud vs AWS you’ll know that MySQL, in its original, self-installed form, is available with any virtual server on any cloud platform. ClearDB is available for Azure and Google Cloud, and Google Cloud also has a managed MySQL product, named Cloud SQL.
AWS has the most options for MySQL. Taking a look at their offerings in order of their release also demonstrates the company’s path to innovation.
AWS MySQL Offerings
- EC2 Self-Installed and Self-managed (launched 2006): MySQL on an AWS EC2 Instance (Read: You still have all of the management headaches).
- Relational Database Service (RDS) (launched 2009): In Amazon’s own words, “Amazon RDS frees you up to focus on application development by managing time-consuming database administration tasks including backups, software patching, monitoring, scaling and replication.”
- Amazon Aurora (launched 2016): Built for the cloud from the ground-up, this is a fully managed relational database that is completely compatible with MySQL 5.6.
Amazon Aurora database is cloud innovation that you can use today. The lofty goal of Aurora? To fix all of the things that we hate about database maintenance, performance and reliability, while keeping everything we love. Take a look at the Aurora product page and you’ll see why it took until 2016 for Aurora to move out of beta and into general availability.
If you are wondering why you should adopt cloud innovation with MySQL, let me share three scenarios from an application developer’s perspective that might convince you of the benefits.
Scenario 1: A Self-Installed LAMP stack on an EC2 Instance
You build your new Drupal 8 CMS on an EC2 Instance, and follow a standard pattern of a full LAMP stack on a single server. You know you can improve performance (should it start to lag), by beefing up your virtual server specs to a more powerful instance type.
You’ve done this a dozen times before, and complete the work quickly. Unfortunately, you didn’t configure enough drive space, your web app traffic spiked, and your application fails with an out-of-drive-space condition.
You’re dead in the water until you can migrate everything to a larger volume with more space. To make things worse, while troubleshooting you forced a shutdown of the server and corrupted the database. At this point, you also realized that you forgot to set up your own backup strategy and have no valid database backups. You’ve fixed your disk space problem with a new volume, but without backups, you're stuck fixing a corrupted database, which is a ton of extra work.
Scenario 2: Using the RDS MySQL Service
You wisely chose RDS MySQL as your MySQL service because you knew that backups were configurable and automated. You also were aware that minor updates or security problems are addressed by Amazon automatically. However, once again you forgot to monitor, and increase, your drive space. As an encore, you ran out of drive space for your database and your application stopped working. Luckily, the database wasn’t corrupted, because when you restarted your application instance to troubleshoot, RDS kept running without a hitch.
You had just completed the fix for the database drive space issue, when you began to receive angry text messages from your users because your application is hanging and timing out on every request. You fix that quickly by logging into the RDS control panel and bumping up your instance performance; but your under-provisioning mistake created a boatload of unhappy users.
Scenario 3: Going Native Cloud with Amazon Aurora
You’ve been around the block a few times, and you realize that when it comes to MySQL, you’re going to use Aurora because you want a fully managed database that scales automatically, in both performance and drive space. It’s designed from the ground up to be one of the most worry-free databases ever created.
You’re feeling pretty great about your choices, until one day your company CFO walks into your office and asks you why your AWS billing had such a sharp increase when, (from a CFO’s perspective), nothing else changed with your application. As a result, you find yourself spending a lot of hours completing a cost-benefit analysis to justify the expense.
But, wait a minute! If Aurora is so wonderful, why is that CFO questioning your choices, and why isn’t everyone immediately migrating their cloud databases?
As in our third scenario, pricing is one factor. Like any technology trend, increasing adoption will reduce cost. You may not use MySQL as your database, or you may be using a version that is incompatible with Aurora. The data migration cost may be prohibitive for early adoption.
Other reasons abound, but you can be certain of two things: No developer wants to get a call about running out of drive space, and we will continue to push technologies that solve long-standing problems in innovative new ways.
Innovations like Aurora, ClearDB, and Cloud SQL are simply fantastic. It will be difficult to find this level of database capability in any on-premises or instance-based solution for an equivalent cost. Future innovation will likely take this soon-to-be “new normal” and break the dependence on cloud vendors. But for now, these are some our most powerful tools for cloud innovation.