I remember the hours I spent putting together a new piece of furniture from IKEA that came in a well-packed box. I especially remember the feeling of satisfaction when the assembly parts turned into a solid addition to our living room.
However, as I was assembling my new (high-end :)) desk-in-a-box, I could not stop cursing IKEA for putting the wrong type of screws in the box (too big for those tiny holes), only to find out that it was I who was attempting to put the screws in the wrong place.
The IKEA folks actually did not make a mistake after all and I had to disassemble the thing, re-read the manual and build it again – this time placing the screws in their rightful place.
While I enjoy assembling IKEA desks and cabinets (while I sort out the screws mix-ups), for some of the more “toolbox-challenged” people – the task may not be as entertaining.
Now – from my short-lived career as a carpenter (or really, an IKEA-assembler of sorts :)), to my experience with software development:
Databases for my various applications can be set up in different ways, and in the cloud there are now more choices than ever.
Cloud Database Options:
In general, there are two options for setting up your database in the cloud:
- The DIY option: choosing a database, like MySQL or Postgres, and installing it and configuring it on a cloud server.
- Subscribe to a database service: for this option, you can choose a ready-made database service from one of the DBaaS providers on the cloud.
The differences between these two options for deploying your cloud database are huge, and it’s not a case of “always the right decision.” Depending on the resources of a business, some organizations can manage setting up their cloud database themselves, but for others – correctly configuring a database to maintain scalability and high availability on the distributed and dynamic environment of the cloud – the task might prove too problematic and resource-heavy.
Databases especially are a sensitive part of the IT puzzle: they keep all the data, all the contacts, all the invoices etc. Data loss or an unresponsive database are big issues that could have serious consequences for today’s businesses.
While there are some friends for whom I would help construct IKEA purchases, I would not help even my best friend set up his database. Let’s face it – an IKEA chair is replaceable but if your DB breaks it can sink your entire business.
Most databases need care and attention, such as frequent backups, constant monitoring, configuration adjustments and more. In the DIY approach, attending to your database requires adding more capabilities and a management layer around the database itself – such as scripts, external monitoring and more. Not a simple task…
If someone offered you a sofa fully assemble, delivered to your door and at a similar price as IKEA – would you go for that, or would you prefer to run through the IKEA maze, carry the boxes yourself, kill your back lifting and trying to fit those large boxes into your compact car, drive all the way with the long wooden pieces in the back seat pushing you from behind, lift it home, and then… put it all together hoping you get it right :)
I know what my choice would be, even if I could do it all myself.
DIY is often more expensive and requires more time, attention and internal resources. It may also prove more expensive in terms of actual cost – for example, Xeround charges on a usage basis – unlike with Amazon RDS where you pay per instance, resulting in over-provisioning. In the future we’ll even offer a free limited version, making the DIY option unnecessary.
The key differences between the DIY approach and DBaaS:
Install, configure, provision, upgrade, maintain, monitor, manage…
Worry-free philosophy: Load schema and/or create DB and run
|Manual recovery from failures||Fast automated recovery from failures|
|Advanced configurations (replication for example) is complicated||Either built-in with nothing to configure, or comes with a straightforward GUI-based configuration|
|Manual backup and restore||Web-based console , managing backups restores and automated scheduling|
|Requires external tools to make sure it’s up and running all the time||Automatic monitoring|
|Requires Linux / Windows system knowledge||Does not require any operating system knowledge|
|Manual scaling and reconfiguring||Automated on-the-go scaling with the ability to simply define the scaling rules or manually adjust|
Xeround offers a free DBaaS for your MySQL applications over Amazon EC2 (US East and Europe). All it takes is quick registration and you’re a few clicks away from running your free, elastic and highly available MySQL database in the cloud!