What exactly is a server?
What exactly is a server? To put it simply, a server is a computer program or device that’s the main component of a network, and its job is to manage network resources. That also includes access to the programs, files, and services used by all the other computers or devices within that network.
A more interesting way to think about it is to imagine a server as a coalition of four different food groups:
- CPU – computation power
- Memory – the amount of RAM that you have
- Storage – the amount of hard drive access that you have
- Network – NIC/Network Interface Card
These four groups are managed by the operating system (OS), and its job is to grant access from these various resources to the applications and configure those applications so that they run smoothly. It’s system software that manages both computer hardware and software resources and provides common services and basic functions for computer programs.
However, in order for servers to be far more reliable than their desktop counterparts, you must be aware of the variety of features not typically found in a desktop PC. Here are the features you need to check out in a server:
- Must be scalable, fast, and efficient in processing data
- Dual processors (equipped or capable)
- Hot swappable or removable components
- Redundancy in hard drives or power supplies to maintain continuity of service
There are actually many types of servers, from the basic to the more complicated. One type we’re all quite familiar with is web servers, which allows us access to websites on the internet. Yes, that includes binge-worthy Netflix and your favorite social media sites. Another type of server is mail servers, which allow you to send and receive emails. File servers, on the other hand, control access to files that are stored separately on a multi-user system. The more complicated ones are cloud servers, dedicated servers, and virtual private servers.
If you look at the illustration above, you can see that it is possible to have multiple applications per OS, and multiple applications running per server. But the preferred method within the enterprise is to use a single application with a single OS image. This is because if a problem arises, you must troubleshoot two things: is the problem with the OS? Is it running into conflict with other applications?
Understandably, we want to eliminate this second-guessing. Which usually means choosing a very simple model of a single application per single instance OS per server. This model is very common within an enterprise data center. A server per application is easier to manage: there is a clear relation of monitoring data, logs, and bandwidth to an application. And, it becomes easier to know when that particular application (or service type) needs to be scaled up (or down).
We are solving service (and application) scaling in a more efficient way In the cloud-native world. This blog series will explore this architectural change and its impacts.