This is my first blog here … I hope it’s not too long winded.
I have too many databases servers running. The problem is basically that many apps want a database and we just end up installing another one for every app we deploy. Installed RT so we added another copy of PostgreSQL, setup MediaWiki so we also installed another copy of MySQL, added another line of business app and we ended up installing another MSSQL instance, etc … and it just keeps adding up. Off the top of my head I can think of 3 copies of PostgreSQL, 4 copies of MSSQL, 2 copies of MySQL and a copy of Oracle running. That’s just what I can think of right now; I know there’s a lot more out there. All of these support only one app each and run only one database each. Moreover during this year we’re going to bring up another three apps; two of these require Oracle and the other wants DB2 or Oracle.
Some of my staff have said: “Who cares? Just install them and move on. What’s the problem?”
I feel that the problem is that all these databases need to be maintained and they all consume resources. The most important issue is that these all need to be maintained. They all need patches (nobody wants to have an exploit on that copy of MSSQL express that came with BackupExec for instance) and they all need to be configured, backed up, and monitored.
Another important consideration is that we’re trying to move to a more controlled environment based around scripting and automation. The more databases we have out there then the more complicated that becomes; it’s not enough just to install and configure the app now we have to deal with the backend DB as well. For resources it’s true that that copy of MySQL backing a wiki doesn’t consume much but when you have 10 copies of MySQL sitting around it does add up.
So what we’re looking at is consolidating it all down to two DB platforms; Oracle and MSSQL. Then we’ll further consolidate that down to a cluster for each. MySQL and PostgreSQL have their good points and being open source is not the least of these but not all of our apps support them. Between Oracle and MSSQL we can support all of our apps and both have mature robust clustering support. This won’t be completely set in stone and some apps may justify a dedicated database for various reasons but the majority of our apps will be backed by one of these two clusters.
Aside from killing off all these single purpose instances we’ll also be able to justify clustering and DR replication. Using RT as an example few people have a clustered RT backend, it might be nice but hard to justify. On the other hand I can justify deploying a cluster if it’s going to support a whole pile of apps across the organization. It’s like VMware HA; it brings higher availability to apps that otherwise would never have justified it.
Some readers may ask: Are you insane! What about performance and licensing costs?
First I need to say that this applies to my scope which is a SMB size non-profit. So what that means is that many of these DB instances are lightly loaded and further more we get highly discounted licenses. So while this won’t be cheap it won’t be hundreds of thousands of dollars either. From a performance standpoint even a modest two socket quad core box with say 32GB of RAM should be able to handle every DB we have with ease. We will have more then one box but it will be for HA not performance. So while this would not be feasible for every organization it is for us.
So that’s what I’m planning for dealing with DB sprawl. Consolidate it all down to a handful of high quality boxes and keep a close eye on those boxes. It will make our applications servers easier to deploy and maintain and it will allow us to offer more sophisticated database functionality for all the applications not just a favored critical few.
Anyone else dealing with DB sprawl? What, if anything, are you doing about it? Got any feedback for me? Think this awesome, think this is the road to hell? This is still in early planning so I’m more then happy to hear anything you’ve got.
You need to be a member of The SysAdmin Network to add comments!
Join The SysAdmin Network