What's the difference between managing a couple servers or a couple hundred? Well... maybe that's an obvious question. Obviously, the more servers you have the more you need to keep in mind about each of them: their individual settings, the software each of them need, when to update, when to backup, what to copy, etc.
Keeping up with all that information will undoubtedly cost you time and money that will keep piling on as you store more data and expand your equipment.
Fortunately, solutions already exist and we'll go over some of them in this article. While not an exhaustive list, this willl set you on the right path of reducing headaches and tension with bosses and coworkers, since you'll never lose track of your servers and data ever again, right?
If the servers you have start numbering into dozens, you can use a configuration management system. Chef, Puppet, and Ansible are the most commonly used, and usually come with free and enterprise versions available. Since these services do mostly the same things, they all need, basically, the same approach to make the most out of them.
You will need to group your servers by their role. The idea is to get as many servers doing the same thing or close to the same thing as possible. With that idea in mind, you'll create configuration files that will contain the settings for the specifc role. Using a unique file for each role, you'll configure as many servers as you need to fit that role all at once.
For example, if you have a collection of web servers, some MySQL servers and some GlusterFS storage servers you could have them serve the following roles:
Load balancer an HA proxy configured so you can balance your load between web servers.
Web server Apache + PHP + installed along with Nginx, and GlusterFS client.
Database server MySQL server installed and configured, probably with failover configuration and replication.
Storage server GlusterFS node software configured to export resources to the other servers.
So you’ll have a standard failover infrastructure with load balancing server on the front end, a few web servers and a MySQL DB cluster on the backend, and GlusterFS storage servers providing content storage. If you correctly configured your roles with a configuration management system, you can add another web server to the backend if needed, or remove an extraneous one, in a matter of minutes.
Sounds pretty easy right? Well they come at a cost, even when they're free. Sometimes, especially when they're free.
First, creating a complex role for any configuration management system can get complex and become time-consuming, making your job look more like programming than traditional system administration. Debugging and properly testing the configuration and the role itself can get even more challenging, and you’d need to test them after most configuration changes to be sure that your infrastructure is working as intended. If you're not able to do it yourself, that'll require hiring a programmer which will cost you money on top.
Secondly, if your servers are not the typical roles I've listed above, you’ll likely need to either rethink your entire infrastructure or create a dedicated role for almost every server you have. If one of your web servers also has an OwnCloud instance installed, you'd need to have a separate role for it, or create another role for OwnCloud and move it to the new server. It can be the hell of a job, especially for legacy infrastructure. You might have a few dozen servers, but not enough to justify an entire infrastructure overhaul, in which case a configuration management system might be too much investment.
We actually built ServerSuit to deal with this issue. After all, you can connect to your server remotely, and set up multiple servers at once- just like a configuration management system- but we create a configuration based on your preferences, without you having to code anything. This allows you to manage multiple servers and easily add more whenever you have to. If you're adding one or two servers a year, ServerSuit can definitely help you out. Of course, we also offer Linux server monitoring, automated software installation and update management.
If you have hundreds, or even thousands of servers, a configuration management system is exactly what you'd be looking for. But if you're keeping it lowkey, and trying to keep everything manageable and simple, give ServerSuit a try. We have a risk-free 30 day trial for new signups so come check us out!
Until next time!