One of the research areas at the Redgate Foundry is in estate management, trying to better understand how people manage an estate of servers. These could be physical servers you own, VMs in a hosted or cloud situation, or even a platform service like Azure SQL Database or AWS RDS. In today's world with a myriad of choices, it's easy to lose control of your estate of servers.
I saw a quote recently from someone that was struggling with their estate. They said: "The moment it goes red, if you don't know what it should be, then you're clutching at straws."
This particular person was struggling with rebuilding systems after a failure. If one of your VMs dies or gets removed, something that is easy to do in the cloud, do you know all the settings to rebuild it? Not just the CPU and RAM, but all the SQL Server configuration settings you might have changed? These days there are lots of database settings, which ought to be in those backups, but there are plenty of other items that could be hard to recover.
Most of us don't experience large disasters in our instances, but we do get regular calls, tickets, and complaints about performance. We might even find out that settings get changed in a team environment that we are not aware were made. Monitoring systems might catch this, but not necessarily every little setting that we care about. Building your own system is complex, and more importantly, I find that ensuring all new instances and databases that get deployed are in your system is hard.
I didn't think much of this project when it started, but I realized this is more of a problem for people when I attended a session at SQL in the City London in 2019, where our Foundry presented on a few projects. I had assumed that most people would be thrilled with the Spawn project, but most were more interested in estate management. Lots of interest in having software to ensure you not only know what your settings are, but when they might change and how to get them back.
Part of building software, especially with DevOps, is ensuring you know how well it is, or isn't, performing and if the things you change are useful and valuable. Certainly this is important for those DBAs and system administrators, but I think it's also important to ensure you share those settings with developers. Having all your systems configured in the same way through the software process helps ensure more consistent performance.
Some sort of estate management is important, and no matter how you might monitor systems, ensure that you are including the various configuration settings as a part of that.