Sep 16, 2021 By Team YoungWonks *
What is a server? We may have often heard the terms, ‘server crash’, ‘server overload’, etc. But what does it mean? Our latest blog takes a look at the meaning of the term server, its uses, components, maintenance checklist and lots more…
What is a server?
A server is basically a computer program or device offering a service to another computer program and its user; here, the latter is known as the client. In data centers, the physical computing devices that server programs run on are also called servers. Such machines can be dedicated servers or they could be used for multiple purposes. In a client/server programming setup, the server program waits for and completes requests from client programs that are running in the same or another computer. Servers carry out various tasks as part of their services, including sharing data or resources among multiple clients, or carrying out computation tasks for a client. One single server can serve multiple clients, and a single client can use multiple servers.
How servers work
As mentioned earlier, a server can be a physical machine, a virtual machine or even a software performing server services. So the way a server functions depends on how the word server is used in a context.
A physical server is a computer that runs server software. Does this mean that a server is the same as any desktop computer? The answer is no; for there are many differences between the two. Let us look at the differences between a physical server and a desktop PC:
a. Multiple CPU sockets and error correcting memory: Now a server and a desktop PC have many things in common; for instance, many servers are based on X86/X64 CPUs and can run the same code as an X86/X64 desktop computer. But often physical servers have multiple CPU sockets and error correcting memory unlike most desktop computers. Servers also enjoy greater memory support than most desktop computers.
b. Supporting redundant components: Given that server hardware usually runs mission-critical workloads, their manufacturers tend to make servers that can support several redundant components. Take for example, a server equipped with redundant power supplies and redundant network interfaces. These redundant components allow the server to keep on functioning even if a key component fails.
c. Form factor: Server hardware differs from desktop hardware in terms of form factor as well. While modern desktop personal computers (PCs) can be placed conveniently under a desk, servers are meant to be rack mounted, except for a few suppliers offering tower servers. The rack mount systems have a 1U, 2U or 4U form factor, depending on how much rack space they take up; so a 2U server typically occupies twice the rack space taken up by a 1U server.
d. Operating system: A desktop’s OS may be able to perform some server-like tasks but it has not been built for it nor does it have the license to take on the tasks of a server’s operating system. Let’s look at Windows 10 and Hyper-V, Microsoft’s virtual machine platform. The latter has resiliency features - such as supporting failover clustering and virtual machine replication - that cannot be found in the Windows 10 version. Plus, the Windows 10 OS is suited for only making files available to devices on a local network, as opposed to large-scale file sharing that Hyper-V can easily do.
A virtual server, meanwhile, is a virtual representation of a physical server. Like a physical server, a virtual server has its own operating system and applications. These are kept apart from other virtual servers that could be running on the physical server. Essentially, a virtual server is a one sharing hardware and software resources with other operating systems (OS), instead of dedicated servers. Given that they are cost-effective and provide faster resource control, virtual servers are more often than not in demand when it comes to web hosting environments.
How is such a virtual server created? It is done by installing a lightweight software component called a hypervisor onto a physical server. The hypervisor then helps the physical server work as a virtualization host. It is this virtualization host that shares the physical server’s hardware resources - be it CPU time, memory, storage and network bandwidth - with one or more virtual machines. There’s an administrative console that allows administrators to assign specific hardware resources to virtual servers, thus helping reduce hardware costs drastically since now a single physical server is running multiple virtual servers.
Components of a server
Broadly speaking, there is the hardware aspect and the software aspect of the server. Together they form the components of the server.
Let us first look at the hardware. When it comes to hardware, servers are made up of a rack mount chassis containing a power supply, a system board, one or more CPUs, memory, storage, a network interface and a power supply.
Through a dedicated network port, the server hardware supports out-of-band management, which in turn makes way for the low-level management and independent monitoring of the server that doesn’t quite rely on the operating system. In fact, these out-of-band management systems help one remotely power the server on or off, install an operating system, and even carry out maintenance routines.
The OS acts as a platform for running the server application and offers access to the hardware resources in addition to the dependency services that the application depends on. Clients can then communicate with the server application thanks to the operating system. Both the server’s IP address and its fully qualified domain name are allocated at the operating system level.
The server can do its job thanks to the application. For example, a database server would run a database application. Similarly, an email server will run a mail application.
Different types of servers
Servers are often categorized on the basis of their purpose or function. Many networks have one or more of the common server types. Let us look at them below:
A web server is a computer program that serves requested HTML pages or files. Here, a web browser acts as the client.
An application server is a program in a computer in a distributed network that shares the business logic for an application program.
A proxy server is software working as a go-between for an endpoint device, such as a computer, and another server from where the service has been requested by a user or client.
A mail server is an application receiving incoming emails from local users -- people within the same domain -- and remote senders and forwards outgoing emails for delivery.
A blade server is a server chassis that houses within it multiple thin, modular electronic circuit boards, known as server blades. Each blade is a server in its own right, often devoted to a single application.
A file server is a computer dealing with the central storage and management of data files so that other computers on the same network can access them. So basically, these servers can store and distribute files. Here multiple clients or users can share files stored on a server. File server hardware can be customized to maximize read and write speeds thus improving overall performance.
A policy server is the security component of a policy-based network that offers authorization services and facilitates tracking and control of files.
A database server hosts one or more databases. Client applications carry out database queries that retrieve data from or write data to the database that is hosted on the server.
A print server allows users to access one or more network-attached printers, aka print devices. The print server acts as a queue for the print jobs submitted by users. Some print servers can prioritize the jobs in the print queue based on the job type or on who submitted the print job.
Today, some larger and higher-end printers come with their own built-in print server, which removes the need for an additional computer-based print server.
Domain Name System (DNS) servers are application servers that offer name resolution to client computers by converting names easily understood by humans into machine-readable IP addresses.
How to select a server
There are many factors one should keep in mind while choosing a server. For instance, while choosing a server, it is a good idea to assess the importance of certain features. One should ideally look at the security aspect; consider the protection, detection and recovery features, including native data encryption to protect data in flight and data at rest. Also recommended to look for persistent event logging that will ensure an indelible record of all activity. If the server depends on internal storage, disk type and capacity also assumes significance since it can impact input/output (I/O) and resilience.
Today, many companies aka clients prefer virtual servers over physical ones, as a result the number of physical servers in their data centers has decreased in recent times. The rise of cloud computing (see our blog on cloud computing here: https://www.youngwonks.com/blog/What-is-Cloud-Computing---An-Introduction-for-Absolute-Beginners) has also had an important role to play in determining the number of servers needed by an organization.
Using fewer servers - especially the physical variety - has many benefits, not limited to a drop in overall capital expenses, data center floor space and power and cooling demands. That said, hosting more workloads on fewer boxes also comes with a certain risk to the business since more workloads will be affected upon the server crashing or when the server is offline for maintenance reasons.
Those working in back end development (read our blog on back-end development here: https://www.youngwonks.com/blog/What-is-Back-End-Development) should ideally have a maintenance checklist focusing on the server’s physical elements and the system’s critical configuration. Here are a few of the things that should put on the list:
- Carrying out scheduled maintenance on a regular basis
- Conducting physical inspection /monitoring regularly
- Checking the server airflow
- Migrating workloads off the server to avoid a crash
- Replacing or repairing hardware whenever necessary
- Running a hard-disk scan regularly
- Testing the system especially before returning workloads to service
- Reviewing logs at regular intervals, especially for important events, alerts and trends
- Updating OS, if needed
- Updating firmware, if needed
- Updating server monitoring agents, if needed
- Checking the backup status of the server
*Contributors: Written by Vidya Prabhu; Lead image by: Abhishek Aggarwal