0% found this document useful (0 votes)
89 views8 pages

What Is A Cloud Server

A cloud server is a virtual private computer hosted remotely in the cloud that provides computing resources to users. It allows users to set up and control a server environment like a private computer. A cloud server runs within a virtual machine on larger server clusters. It provides an entire Linux environment that users can customize by installing operating systems, server software like web servers, databases, and other applications. Choosing between a cloud server or other cloud offerings depends on the complexity of the software and configuration needed.

Uploaded by

h8076262
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views8 pages

What Is A Cloud Server

A cloud server is a virtual private computer hosted remotely in the cloud that provides computing resources to users. It allows users to set up and control a server environment like a private computer. A cloud server runs within a virtual machine on larger server clusters. It provides an entire Linux environment that users can customize by installing operating systems, server software like web servers, databases, and other applications. Choosing between a cloud server or other cloud offerings depends on the complexity of the software and configuration needed.

Uploaded by

h8076262
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

What is a Cloud Server?

A cloud server is internet infrastructure that provides computing resources to users remotely. You can
think of a cloud server as a private computer that you can set up and control in the same way as an on-
premise computer, such as a laptop or desktop. This conceptual article outlines several key components
of cloud server architecture, the difference between cloud servers and other cloud offerings, and how to
determine which cloud offering is right for your website or web application.

Note that you will sometimes see “cloud server,” “web server,” and plain “server” used interchangeably.
Typically, a cloud server refers to an entire Linux environment, or effectively an entire computer. In
practice, cloud servers will always be running as virtual machines, or software systems that emulate
computers, within much larger server clusters in a process known as virtualization. For more information
about this technical context, you can review An Introduction to Cloud Hosting.

Cloud software

To understand cloud servers, it’s helpful to understand the type of software that runs in the cloud.

Operating systems: To set up a cloud server, one of the first things you need to do is install an operating
system. Today, nearly all cloud customers use a Linux-based operating system (such as Ubuntu or Rocky
Linux) due to broad support, free or flexible licensing, and overall ubiquity in server computing. You can
refer to How to Choose a Linux Distribution for more information.

Server-side software: This is a class of software that’s designed to run in a cloud environment, which
does not have a desktop environment or a display connected to it. Usually, this means that the software
is installed and configured via a command line interface, and then accessed by regular users through a
web browser or another application. Though the types of software and tooling you install on your cloud
server can vary greatly, understanding a few key components will help prepare you to plan and set up
your own cloud server.

Web servers: This software enables your cloud server to communicate with users or applications on the
internet using the HTTP protocol. Server-side software, like a web server, has to respond in a well-
defined way to certain types of requests from clients or client-side software. For example, when a user
enters a URL into a web browser, the web browser (known here as the client) makes a request to the
server. In response, the server fetches the HTML document and sends it back to the browser where it is
loaded as a web page. If you are setting up a cloud server from scratch to host a website or web
application, you will likely need to install and set up server software, with Nginx and the Apache HTTP
Web Server, being the two most popular options. You can read more about web server software in our
guide An Introduction to Web Servers.

API servers: APIs (Application Programming Interfaces) are a type of software mediary that enable
applications to communicate with one another. A web server is a type of an API server that implements
the HTTP APIs. There are many other different types of APIs that enable your cloud server to send or
receive data to and from external applications and data resources, such as pulling weather data, flight
information, or other types of data to use with your application. Individual API implementations are also
sometimes called API endpoints, or just “endpoints”.
Database servers: Database servers, also called databases, are another type of API server. Unlike web
servers, which can be accessed via a web browser and usually render an HTML interface, database
servers are usually accessed via a database query API. Some database deployments will be externally
facing, and can implement their own web interfaces for anyone needing to interact with them in a
browser, whereas others may only be internally accessible to your other cloud software via these
queries.

Note: Running Linux without virtualization of any kind on a dedicated physical machine not shared with
other tenants is usually called bare-metal hosting. Although relatively few cloud providers still offer
bare-metal servers other than at the very high end, the most common modern equivalent to running a
bare-metal server is running a Linux environment on a Raspberry Pi, usually for smaller projects.

Cloud Servers and their Alternatives

Because a cloud server is effectively a whole virtual computer, other cloud product offerings can be
understood in relation to them. For example, some cloud providers will offer dedicated web hosting, or
dedicated database hosting. Any product offering that provides a database or a web server on its own
has effectively abstracted out the actual cloud server in the equation. There are various ways of doing
this, which will typically still involve virtualized server clusters, but the principle is consistent. The
primary distinction is that a cloud server (sometimes called a VPS, or virtual private server, to clarify that
it is a virtual machine) can be made to run any software in any way, whereas any other cloud offering is
effectively an optimized and constrained subset of server features.

The market for these offerings has changed considerably over the past few decades. Before
virtualization was widely available, there used to be a market of web hosts who would instead provision
a web server like Nginx (or at that time, Apache) to support dozens of different users with their own
unique sets of permissions, and offer hosting per-user. This was convenient because it did not require
users to take on any server administration duties, but it was limited in practice to only supporting static
websites (i.e., HTML, CSS and javascript only, with no backend engine) or drop-in PHP applications that
had no dependencies other than the web server.

Since then, VPS offerings — full cloud servers — have become more commonly available. Committing to
running an entire cloud server, especially in a production deployment, requires a certain amount of
knowledge of Linux best practices, usually formalized in dedicated System Administration (“sysadmin”)
or Development Operations (“DevOps”) roles for dealing with security, deployment, and so on. Being
able to perform these roles on an occasional or an as-needed basis is very useful, but can be complex.
This is especially true when considering that it is not strictly necessary to know how to interact with a
Linux server or a command line at all to develop most software.

Should I Use a Cloud Server?

Cloud servers typically have a number of security features built into them, and it is not necessary to
provision a commercial-scale production deployment to safely and reliably run open-source software on
a cloud server. Most server packages ship with carefully configured default settings and are frequently
updated to avoid any security risks. It is often sufficient to deploy a firewall like ufw that can expose
network ports on an individual basis to keep a server secure, or to at least offload the responsibility for
that security to the maintainers of software like Nginx, which is used on millions of servers worldwide.

There are also other modern offerings which are more comparable to drop-in web hosts. Modern static
websites can use modern javascript features to, in some cases, eliminate the need for a backend server
entirely. Some cloud providers refer to this type of hosting as a “headless CMS” and provide other
authoring tools and web forms as part of a larger software-as-a-service offering.

In addition to this static site functionality, some providers also support deploying what are called
serverless functions. These are one-off scripts that can leverage backend server functionality on a
discrete basis, which are deployed into an environment that can run them directly. When used together
with static site deployments, this approach is sometimes called the Jamstack.

Static site and serverless deployments are highly portable and, like legacy web hosting, they avoid nearly
all of the security and maintenance concerns around full server deployments. However, they are far
more limited in scope. For example, as part of your stack, you may need to deploy a Docker container
behind an Nginx web server in a particular way: for this, or any configuration like this, you need an
entire cloud server.

In general, any software that can be deployed to a cloud server can also be deployed to a local
computer. Although the differences can be instructive – notably, many people do not run Linux on their
local computers, and server-side software isn’t always packaged to work directly on macOS or Windows
– those differences are small in practice. This is the main value offering of a cloud server: for all intents
and purposes, it is an entire computer that you can do anything with.

How to Scope your Server

Like bare-metal computers, cloud servers will be more performant depending on their hardware
specifications, and are priced accordingly. Each cloud server is allocated a certain amount of resources
within the cluster. Unlike bare-metal computers, cloud server specs can be quickly scaled up and down
as needed. When assessing servers, you should have an idea of how these specifications will impact your
needs.

Cloud servers are typically provisioned by their number of available CPU cores, their total available
memory (RAM), and their attached disk storage. While disk speed and CPU speed typically vary under
real-world conditions, most cloud providers have standardized on an average disk speed roughly
comparable to consumer solid-state disk drives (SSDs) and a CPU speed comparable to an Intel Xeon
core. Some providers will also constrain lower-tier cloud servers by their total allowed number of disk
input/output operations (IOPS) or their total allowable network traffic, after which traffic may be
throttled, causing bottlenecks for some software.

Almost all cloud providers will also allow you to purchase additional storage, such as block storage or
object storage, that can be attached to your VPS on an as-needed basis. It is usually a good idea to use
this additional storage rather than continuing to expand the baseline storage allocation of your VPS.
Storing all of your data on a single root partition can make scaling more challenging.

To be accessible on the open internet, cloud servers must have a public IP address assigned to them.
This can be an IPv4 address, which follows the pattern 123.123.123.123, or an IPv6 address, which
follows the pattern 2001:0db8:0000:0000:0000:ff00:0042:8329. Almost all network-capable software
can parse and access these IP addresses directly, though most of the time, server IP addresses will be
behind an assigned a domain name, such as https://my_domain.com. Some cloud providers will
automatically allocate you one IP address for each VPS, whereas others may require you to purchase IP
addresses and assign them to your servers individually. These are called reserved IPs, and they can be
more flexible in large deployments.

Domain names are usually purchased and configured from separate registrars using DNS records,
although some cloud providers will offer both products together.

Access

To connect and work with cloud servers, you will need to know how to work in a terminal environment,
both locally and remotely. Remote terminal connections mostly make use of a protocol called SSH, or
Secure Shell. Along with HTTP, this is one of the most commonly used protocols, although SSH is
naturally used more often by administrators rather than end users. HTTP runs on port 80 (and port 443
for HTTPS). SSH typically runs on port 22. Cloud administration can be broadly understood in terms of
these protocols, servers, and services.

What is Web Server?


A web server functions as a computer system responsible for storing, handling, and disseminating
website files to web browsers. Comprising both hardware and software components, web servers utilize
the Hypertext Transfer Protocol (HTTP) to address queries initiated by internet users through the World
Wide Web. Through this mechanism, web servers retrieve and dispatch the desired webpage to the
user’s browser, like Google Chrome. Additionally, for managing files intended for email or storage
purposes, web servers utilize the Simple Mail Transfer Protocol (SMTP) and the File Transfer Protocol
(FTP).

So, what is web server made up of? On the hardware side, a web server connects to the internet,
allowing it to share data or files with other devices that are also connected. This data can take many
different forms, like HTML files, images, JavaScript files, and CSS stylesheets. Web server hardware
contains web server software as well.

Web server software governs how web users access hosted files. It is made up of several parts, one of
which is an HTTP server. An HTTP server is a piece of software that understands HTTP queries and URLs.
Functions of a Web Server

The functions of a web server can be broken down into several categories:

Storing and delivering web content:


The primary function of a web server is to store and deliver web content such as web pages, images,
videos, and other files to clients that request them. This involves processing incoming requests,
retrieving the requested content from the server’s storage devices, and sending the content back to the
client in the form of an HTTP response.

Handling HTTP requests:


A web server handles HTTP (Hypertext Transfer Protocol) requests from clients or users. The HTTP
protocol is the standard protocol used for communication between web servers and clients. When a
client requests a web page or other web content, the request is sent to the web server over the
internet. The web server then processes the request, retrieves the requested content from its storage
devices, and sends it back to the client in the form of an HTTP response.

Generating responses to HTTP requests:


A web server generates responses to HTTP requests by running web applications that generate dynamic
content based on user input and other factors. For example, an e-commerce website may use a web
application to generate web pages dynamically that display product information, pricing, and availability
based on user searches or selections.

Managing and maintaining web applications:


A web server manages and maintains web applications that provide various services such as e-
commerce, social networking, and content management. This involves installing, configuring, and
updating web application software, monitoring performance, and troubleshooting issues that may arise.

Supporting multiple clients simultaneously:


A web server supports multiple clients or users simultaneously by handling multiple HTTP requests at
the same time. This is achieved through the use of multi-threading or other techniques that allow the
server to process requests in parallel.

What is Web Server Architecture?


A Web server architecture establishes the arrangement, elements, and setups that are essential for its
effective operation and the provision of web-oriented services to users. This constitutes a pivotal facet
of web server administration, exerting substantial influence over the server’s performance,
dependability, and safeguarding.

The two main approaches to web server architecture are the concurrent approach and the single-
process-event-driven approach.
Concurrent Approach:
In the concurrent approach, the web server creates a separate process or thread for each client request.
Each process or thread handles one request at a time, allowing multiple requests to be processed
simultaneously.

For example, suppose a web server receives five client requests simultaneously. In the concurrent
approach, the server will create five separate processes or threads to handle each request concurrently.
This approach is often used in traditional web servers like Apache, which can handle a large number of
concurrent connections.

Single-Process-Event-Driven Approach:

In the single-process-event-driven approach, the web server uses a single process or thread to handle all
client requests. The server waits for events (e.g., new connection requests, and incoming data) and
handles them one at a time in a non-blocking manner.

For example, suppose a web server receives five client requests simultaneously. In the single-process-
event-driven approach, the server will use a single process or thread to handle all five requests one at a
time, in a non-blocking manner. This approach is often used in modern web servers like Node.js, which
are designed to handle large numbers of lightweight connections efficiently.

Types of Web Servers


Here are some of the most common types of web servers:

Apache HTTP Server:


Apache HTTP Server is an open-source web server software that is widely used around the world. It is
known for its high performance, stability, and flexibility, and supports a wide range of operating
systems, including Linux, Windows, and macOS.

Microsoft Internet Information Services (IIS):


IIS is a web server software developed by Microsoft that is designed to run on Windows operating
systems. It is known for its scalability, security features, and support for Microsoft technologies such as
ASP.NET and Microsoft SQL Server.

Nginx:
Nginx is a high-performance, open-source web server software that is known for its speed, scalability,
and ease of use. It is often used as a reverse proxy server or load balancer and can be used to serve
static and dynamic content.

Lighttpd:
Lighttpd is a lightweight, open-source web server software that is designed for high performance and
low resource consumption. It is known for its speed, stability, and security features.
How Does a Web Server Work?
Here’s a basic overview of how a web server works:

The client device (e.g., a web browser) sends a request to the web server for a particular resource, such
as a web page.

The web server receives the request and processes it, checking if the requested resource exists and is
accessible.

If the resource is available, the web server retrieves it and sends it back to the client’s device as a
response.

The client device receives the response and displays the resource (e.g., web page) to the user.

This process typically involves several layers of communication protocols, including HTTP (Hypertext
Transfer Protocol), TCP/IP (Transmission Control Protocol/Internet Protocol), and DNS (Domain Name
System).
Web servers can also perform other functions such as database management, session management, and
security checks to ensure that the requested resources are delivered securely and efficiently.

Static Web Server vs Dynamic Web Server


Static and dynamic web servers are two types of web servers that differ in how they deliver web
content.

Static web servers serve pre-existing web pages that do not change in real-time. These web pages are
usually written in HTML and CSS and are stored on the web server’s file system. Whenever a client
device requests a page, the web server retrieves the requested file and sends it back to the client as a
response.
Dynamic web servers, on the other hand, generate web pages on the fly in response to user requests.
These servers use programming languages like PHP, Python, and Ruby to build web pages from
databases, APIs, and other sources of dynamic data. Whenever a client device requests a page, the
server runs the necessary code to generate the page and sends it back to the client as a response.

Uses of Web Server


Web servers have a wide range of uses and applications, as they are the backbone of the internet and
the means by which web resources are delivered to users. Here are some of the most common uses of
web servers:
Hosting websites: Web servers are used to host websites, making them accessible to users around the
world. They serve up HTML, CSS, JavaScript, and other web resources that make up web pages.

Running web applications: Web servers are used to host web applications that run in the browser, such
as online shopping carts, social media platforms, and productivity tools.

Streaming media: Web servers are used to stream audio and video content over the internet, allowing
users to access music, movies, and other multimedia resources.

Managing online databases: Web servers are used to manage online databases, allowing users to access
and manipulate data via web-based interfaces.

Cloud computing: Web servers are used to power cloud computing services, allowing users to access
computing resources and data storage via the Internet.
Internet of Things (IoT): Web servers are used to power IoT devices, allowing them to communicate and
exchange data over the Internet.

File sharing: Web servers are used to share files over the internet, allowing users to access and
download files such as documents, images, and videos.

What is Web Server Security?

Web server security refers to the measures and practices used to protect a web server from
unauthorized access, malicious attacks, and other security threats. A secure web server ensures that
sensitive data and resources are protected from unauthorized access, ensuring the confidentiality,
integrity, and availability of web resources.

Here are some common web server security measures:

Regular software updates: It’s important to keep the web server software and applications up-to-date to
address any security vulnerabilities or bugs.

Secure configuration: The web server should be configured with strong security settings, such as secure
file permissions, SSL/TLS encryption, and secure authentication mechanisms.

Access control: The web server should be configured to restrict access to sensitive data and resources,
including password-protecting directories and using firewall rules.

Security testing: Regular security testing and vulnerability scanning should be performed to identify and
address any potential security threats.
Monitoring and logging: Monitoring the web server logs and activity can help detect and respond to
security incidents in a timely manner.

Backup and recovery: Regular backups of the web server and data should be performed to ensure quick
recovery in case of data loss or other security incidents.

You might also like