At Compose, we believe databases should be as easy to use as any utility service you get at home. That’s why all databases on the Compose platform are managed services.
But what is a managed service? Unlike other services, a managed service isn't just supplied but actively monitored and that monitoring is acted upon. It moves the boundary of what you expect from a service from say, simply expecting a supplier to keep a server powered and connected so your application can run, to say expecting the application to be always available, monitored, backed up and responsive...
Imagine databases were like your water supply
If water supply were like a database hosted, rather than managed, in the cloud. When there was a problem with the water, chances are you'd have to walk down the entire length of the pipe all the way to the pumping station looking for what was wrong. When you found what was wrong, then you'd have to figure out if it was the trench diggers, the pipe owners or the water pumping company that were at fault. And unless you are in the business of digging trenches, laying pipe or pumping water, you are going to have to contact them to get them to repair it.
Luckily, we generally live in a world where the water company brings your water all the way up to, and into your home. This is a managed service. If there's a problem, with the supply of water, it's up to the water company to fix it. In this scenario, the water arrives at your home ready for you to do what you want with it.
Let's unwrap the analogy though and talk about what it practically means to have a managed database.
When you are assembling your own database for hosting, it's human nature to fit it to your needs and known risks. Of course, you may not know all your needs or the risks; a full high availability configuration of a database may feel like a lot of work early on in your development cycle.
It would be better if someone had already thought through what you should have and might need and pre-configured the complete system for you. That's where Compose's managed servers come in. We've looked at what most users need — reliability — and configured systems which match those needs. From multiple redundant servers, failover proxies and active agents - for each database, we give a configuration built to always be working for you. And as it's managed, you get it all with one click.
When you have a hosted database, it's your responsibility to monitor the database running on the server. There's plenty of tools out there that can help but you still have to make time to install and configure them. Once that's done, you have to make sure the monitoring is working too.
On a managed database like Compose, all that monitoring is automatically installed with every database and its monitored at multiple levels to ensure it is all functioning efficiently and smoothly. And all the alerts and metrics go to the Compose ops team so they know when there's a problem.
Ready for your 24/7 database monitoring on-call? That's what you are going to have to do with a hosted database if you are going to be prepared. When you find out that your monitoring has detected a problem and you need to respond, it's up to you. Reboot or restart? It'll be your decision.
Meanwhile, the managed database user could never know there was a problem. That managed configuration we mentioned earlier, it'll keep running, automatically switching servers and other elements as needed. And the Compose ops team can swing in to restart or revive a problematic system.
Backup is a chore for the hosted database. Backup strategies must be selected, tools implemented, operations scheduled and you need to make sure it all happens like clockwork. All that effort and you still have to check that the backups are working. Otherwise when something goes wrong, when you need to restore you could find the backups aren't there.
The managed database, on the other hand, manages all of this for you. On Compose, databases do daily backups and then create weekly and monthly backups from them. All automatically. And you can create a new managed database from one of those backups with a couple of clicks or a single API call.
With a hosted database, it's entirely up to you how you administer the database. Again you get to use your valuable time selecting tools and configuring them. If you have different databases, it'll be different tools too.
Compose's managed databases are all fronted by a common web interface. You can hop between any of them at a click. Your administrative visibility of backups, logs and metrics are all in an easy to understand, cross-database interface. We can do this because we managed the configuration and because our platform is built to make working with your database simple. And where there are web tools for a particular database, there's no digging around; they'll be a click away.
Where does responsibility begin for a user of a managed database? Well, going back to our analogy, where the water enters the building; where it's delivered. What you do with your service is your own concern and although the water company may have recommendations on what you can do with your water, how you use it inside the building is up to you. With a database, you'll get advice on how to connect and general direction over good and bad practices but we won't tell how you build your applications, or which exact drivers to use (or not use). That said, every database on Compose is not only managed but open source, so there's a whole community to call on when the issue isn't "Why isn't my water flowing into my building".
So why a managed database?
You don't want to be in the database administration business any more than you want to be in the checking pipes and maintaining pumps. You have things to do like building your business and that makes your time valuable.
Spend your time where it'll do the most good for your business and let a Compose managed database take care of your data layer and deliver a more reliable and efficient database.
If you have any feedback about this or any other Compose article, drop the Compose Articles team a line at firstname.lastname@example.org. We're happy to hear from you.
attribution Patryk Gradys