A server is a computer program or device that provides a service to another computer program and its user, also known as the client. In a data center, the physical computer that a server program runs on is also frequently referred to as a server. That machine might be a dedicated server or it might be used for other purposes.
In the client/server programming model, a server program awaits and fulfills requests from client programs, which might be running in the same, or other computers. A given application in a computer might function as a client with requests for services from other programs and as a server of requests from other programs.
The term server can refer to a physical machine, a virtual machine or to software that is performing server services. The way that a server works varies considerably depending on how the word server is being used.
A virtual server is a virtual representation of a physical server. Like a physical server, a virtual server includes its own operating system and applications. These are kept separate from any other virtual servers that might be running on the physical server.
The process of creating virtual machines involves installing a lightweight software component called a hypervisor onto a physical server. The hypervisor's job is to enable the physical server to function as a virtualization host. The virtualization host makes the physical server's hardware resources -- such as CPU time, memory, storage and network bandwidth -- available to one or more virtual machines.
An administrative console gives administrators the ability to allocate specific hardware resources to each virtual server. This helps dramatically drive down hardware costs because a single physical server can run multiple virtual servers, as opposed to each workload needing its own physical server.
At a minimum, a server requires two software components: an operating system and an application. The operating system acts as a platform for running the server application. It provides access to the underlying hardware resources and provides the dependency services that the application depends on.
The operating system also provides the means for clients to communicate with the server application. The server's IP address and fully qualified domain name, for example, are assigned at the operating system level.
There are both similarities and differences between desktop computers and servers. Most servers are based on X86/X64 CPUs and can run the same code as an X86/X64 desktop computer. Unlike most desktop computers, however, physical servers often include multiple CPU sockets and error correcting memory. Servers also generally support a far greater quantity of memory than most desktop computers.
Because server hardware typically runs mission-critical workloads, server hardware manufacturers design servers to support redundant components. A server might be equipped with redundant power supplies and redundant network interfaces. These redundant components allow a server to continue to function even if a key component fails.
Server hardware also differs from desktop hardware in terms of its form factor. Modern desktop computers often exist as mini towers, designed to be placed under a desk. Although there are still some vendors that offer tower servers, most servers are designed to be rack mounted. These rack mount systems are described as having a 1U, 2U or 4U form factor, depending on how much rack space they occupy -- a 2U server takes up twice as much rack space as a 1U server.
Another key difference between a desktop computer and a server is the operating system. A desktop operating system might be able to perform some server-like functionality but isn't designed or licensed to take the place of a server operating system. Windows 10, for example, is a desktop operating system.
Some Windows 10 editions include Hyper-V, Microsoft's virtual machine platform. Even though both Windows 10 and Windows Server can run Hyper-V, Windows 10's hypervisor is intended to be primarily used for development purposes, whereas the version of Hyper-V included with Windows Server is designed for running production virtual servers.
Although an organization could conceivably run a virtual server on top of Windows 10 Hyper-V, there are licensing issues to consider. Additionally, Windows Server Hyper-V includes resiliency features that aren't found in the Windows 10 version. For example, Windows Server supports failover clustering and virtual machine replication.
Similarly, the Windows 10 operating system can make files available to devices on a local network. However, Windows 10 was never designed for large-scale file sharing. Windows Server, however, can be configured to act as a fully featured file server. In large organizations, a distributed file system can be created across an entire server farm for the purpose of providing better performance, scalability and resiliency than what one physical server would be able to provide by itself.
Servers are made up of several different components and subcomponents. At the hardware level, servers are typically 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.
Most server hardware supports out-of-band management through a dedicated network port. Out-of-band management enables low-level management and monitoring of the server, independently of the operating system. Out-of-band management systems can be used to remotely power the server on or off, to install an operating system, and to perform health monitoring.
Another component is the server operating system. A server operating system, such as Windows Server or Linux, acts as the platform that enables applications to run. The operating system provides applications access to the hardware resources that they need and enables network connectivity.
There are many factors to consider in the midst of a server selection, including virtual machine and container consolidation. When choosing a server, evaluate the importance of certain features based on the use cases.
Many organizations are shrinking the number of physical servers in their data centers as virtualization enables fewer servers to host more workloads. The advent of cloud computing has also changed the number of servers an organization needs to host on premises.
Packing more capability into fewer boxes can reduce overall capital expenses, data center floor space and power and cooling demands. Hosting more workloads on fewer boxes, however, can also pose an increased risk to the business because more workloads will be affected if the server fails or needs to be offline for routine maintenance.
The use of the word server in computing comes from queueing theory, where it dates to the mid 20th century, being notably used in Kendall (1953) (along with "service"), the paper that introduced Kendall's notation. In earlier papers, such as the Erlang (1909), more concrete terms such as "[telephone] operators" are used.
In computing, "server" dates at least to RFC 5 (1969), one of the earliest documents describing ARPANET (the predecessor of Internet), and is contrasted with "user", distinguishing two types of host: "server-host" and "user-host". The use of "serving" also dates to early documents, such as RFC 4, contrasting "serving-host" with "using-host".
Strictly speaking, the term server refers to a computer program or process (running program). Through metonymy, it refers to a device used for (or a device dedicated to) running one or several server programs. On a network, such a device is called a host. In addition to server, the words serve and service (as verb and as noun respectively) are frequently used, though servicer and servant are not.[a] The word service (noun) may refer to the abstract form of functionality, e.g. Web service. Alternatively, it may refer to a computer program that turns a computer into a server, e.g. Windows service. Originally used as "servers serve users" (and "users use servers"), in the sense of "obey", today one often says that "servers serve data", in the same sense as "give". For instance, web servers "serve [up] web pages to users" or "service their requests".
The role of a server is to share data as well as to share resources and distribute work. A server computer can serve its own computer programs as well; depending on the scenario, this could be part of a quid pro quo transaction, or simply a technical possibility. The following table shows several scenarios in which a server is used.
Since servers are usually accessed over a network, many run unattended without a computer monitor or input device, audio hardware and USB interfaces. Many servers do not have a graphical user interface (GUI). They are configured and managed remotely. Remote management can be conducted via various methods including Microsoft Management Console (MMC), PowerShell, SSH and browser-based out-of-band management systems such as Dell's iDRAC or HP's iLo.
Large traditional single servers would need to be run for long periods without interruption. Availability would have to be very high, making hardware reliability and durability extremely important. Mission-critical enterprise servers would be very fault tolerant and use specialized hardware with low failure rates in order to maximize uptime. Uninterruptible power supplies might be incorporated to guard against power failure. Servers typically include hardware redundancy such as dual power supplies, RAID disk systems, and ECC memory, along with extensive pre-boot memory testing and verification. Critical components might be hot swappable, allowing technicians to replace them on the running server without shutting it down, and to guard against overheating, servers might have more powerful fans or use water cooling. They will often be able to be configured, powered up and down, or rebooted remotely, using out-of-band management, typically based on IPMI. Server casings are usually flat and wide, and designed to be rack-mounted, either on 19-inch racks or on Open Racks. 041b061a72