Server land, home sweet home
On the internet everything is somewhere on a machine. If it's big, it's on multiple machines.
The game knows 3 different kinds of server environments. The first you see is probably the website. I will talk about that in another post. The second is the game cluster. That one get's it's own post too. This is about the third one, the servers we need for the company to run.
Let's talk about the non-servers first. Back in the day everyone had to have a ton of software and servers to do even simple things. Email, contacts, calendar and documents, all needed individual and/or linked systems. Today you can do most of that externally, cheaper. Google Apps for Business is one such thing that does all of that. You can have your own domain, lists, groups etc with these tools, all simple and fast to setup and reasonably inexpensive. Now this is good for doodles, documents, mails and such things, just the average day to day stuff pretty much anyone needs. It also has the nice effect to be a "per head and month" cost so it simply scales with employees, no 5 digit server and license fees to pay.
For development you need a bit more. Github for example is a good way of a "non-server" here. You can buy small numbers of repos that are private for not much, or go with a self hosted enterprise version, if you are paranoid, or need more speed. Of course there is other version control, but personally I'm most happy with Git at the moment. Github also includes issues and a wiki, which is good for basic documentation and issue tracking. It's not very handy for full on project planing though.
In these agile times, you need agile tools. Again, here you have the pick of the litter, which is tightly tied to your method, Kanban, Scrum or anything else. You can forgo digital and just do physical cards. Or make an entirely digital board. The jury is still out there, but I found it invaluable to be able to search through ideas (possible features) and then reorder priorities, down to single priorities, in a linear fashion, which is first and which is number 150. Add to that your common metrics, like days, hours or story points and you can see a lot clearer. In the same vein come metrics. Being able to have it somewhere digital, you get most metrics for free, by just having it in the computer. Let's assume another non-server tool.
So far there is not a single server locally. This is not good. No it doesn't have to do with paranoia, but there is a significant amount of data, especially in a game, that you don't want to outsource on a storage like Google drive, because if everyone has to download it from there, they could just as well download it from another source site on the internet or would be faster handing a USB stick around.
A file storage server is surely something you will have local. What you put on there is to be shared. You might keep a couple of sensitive files in a more secure place, but the high-res sources of textures, find their ideal home there, along the latest builds for everyone to test. Although that one should go into another category, read further down about the test cluster. This is a very mission critical piece of equipment. It would be good to have this redundant in a fail over configuration. If one breaks, the other jumps in and takes it's place, keeping the files in sync between the two.
Where there is files, there is backups. Backups are important. Backup early, backup often and be paranoid with the backups. You can use that to backup real game data as well, away from the game cluster. Simply use a dedicated machine for the task of keeping backups of everything, including the archiving and save encryption of files, which you want to do when taking something out of the office. Which is what you want to do. In one way you want at least one physical disk drive to take out of the office in a rotation, usually done in a 4 piece dance, so you have a physical storage device you can get to at any point. You keep one always connected to the backup server, one always not connected to the server in the company, one always out of the house and one always in transit (either coming to the company, unconnected, or leaving the company). So at times you have two disks connected to the server, but still one unconnected disk laying about (the transit one). And when you remove the second disk from the server, you have two unconnected, one of which will go home with you. At home you store the new arrival and take the one you had home with you to work again the next day. You could make it more secure by using two rotations, for two locations, but instead I simply use the power of the cloud. Amazon Glacier is a storage solution for longterm storage. Upload is free and storage comes to one cent per GB and month. Same as with external disks, encrypt what you put online. The storage is safe and cheap relatively, adding an additional safety net. Once a backup is too old, you can simply delete it again.
Telephone systems these days also need a server. Well, this one depends a lot on means and needs. It's one you can't get around very simple.
A note on non-servers is being able to reach it. An external service can be down. Lines can be cut between your computer and that external service. That is one reason why many want to keep their stuff as close to the vest as possible. In my experience that has not really paid off, ever. You want to make sure the things that make a full stop to your system are redundant, say a file server where your source files are. Your internet connection should have a backup (most ISPs can deliver that) in case your main line dies, usually with just a reduced bandwidth. Most professional online services have near to zero downtime, or long in advance scheduled ones, you can work around with, or simply go for a coffee break until it works again. So don't waste too much time thinking about that part.
A very real one is privacy. You have to understand your online settings, your sharing of files and folders and keep an eye on it (people that left the company no longer access to those resources, external users, etc). Also the company you give your data to, can see it as you give it to them (except backups you encrypt). I have not heard of abuse in that field, but it is a potential possibility.
On the other hand, non-servers give you in most cases a predictable and linear growth in costs. No huge administration and operating needed. You can spend time and money on the game at hand, not on more hardware.
Which brings us to the last point, the testing cluster. Here we replicate the website and the game cluster, on a few beefy machines with virtual boxes running on there. Technically, everything needed to run the website and game is rebuilt as virtual machines inside that cluster, including fail over nodes, loadbalancers, caches, message queues and so on. That also includes download and update procedures for clients. That way you can get new clients out to testers internally, testing the entire release procedure along the way, eating your own dog food. This will make it possible for you to test new updates, experiment with new software and before you even touch a single machine in a live environment, know already that it will work.
Next server post will be the webpage.