What is cloud computing?

Cloud computing is an on-demand solution that hosts applications on the Internet and makes them accessible to everyone.

It also enables people to use the computing resources hosted by a cloud provider and generate solutions quickly.

Imagine you create an application that takes a single computer eight hours to process. That’s a long time. To save some time you can either purchase a more powerful computer or you can purchase more than one computer and distribute the task across multiple computers to solve it even quicker.

But what will happen after the solution is generated? Most likely the computers will sit idle until you need them again. This kind of expense can be very unrealistic, and you can avoid it by leveraging cloud computing. That’s because you can use the computing units in a cloud provider on-demand.

You use them for a specified amount of time and you only have to pay for what you use.

This way you can use extremely powerful computers with the latest CPUs, GPUs, massive memory, and storage without needing to purchase physical computers that are very expensive.

Cloud computing providers offer different computing resources that can be used to host applications or solve a problem on-demand.

Different types of cloud infrastructure

Public cloud

First is the public cloud, which is for everyone. You can create an account and start using the service anytime. This cloud infrastructure works in a pay as you go style.

The public cloud providers host the servers and create and maintain the network. You can use these computing resources anytime and discard them when your work is done, you will only be charged for what you use.

There are several benefits to using the public cloud. Since these are mostly managed services, you can spend more time creating and running your application. It also has on-demand pricing and quick availability. And another benefit is scalability. You can quickly add a computing unit or nodes to your infrastructure to balance the loads.

Auto-scaling

Some cloud providers even support auto-scaling. This means they will automatically deploy extra nodes when the traffic spikes and then remove these nodes under average load.

Starting an application on the public cloud can be cheap. However, as your usage grows it can become expensive over time.

Private cloud

Unlike public clouds which are accessible to everyone, private clouds are not. It’s a privately hosted cloud infrastructure used by applications that deal with sensitive data that require more security.

A private cloud ensures that only authorized people can access the system. At the same time it offers everything necessary for internal applications to scale and perform properly.

A private cloud is for the most part a tailored solution and comes with a subset of features compared to public cloud providers.

Its main benefits are better security, control, scalability, and reliability.

But since everything is hosted and managed by yourself, it can be costly to start with.

Hybrid cloud

It’s a mixed cloud infrastructure where a part of it is hosted on a private cloud and some services are hosted on a public cloud.

The public cloud remains connected to the private clouds so that the application can work correctly.

The benefit of this type of cloud is that it can be less expensive than a private cloud because it also uses a public cloud. However, setting up a hybrid cloud can be very complex and may take a lot of time.


Key elements of cloud computing

Computing units

This is one of the most popular services offered by public Cloud providers.

Computing units

Computing units are virtual machines available for on-demand deployment. They are used to host a web application or run a program to solve problems.

You can pick computing units from mainly two groups, cores and memories.

The cloud computing units can be resized, which means you can upgrade or downgrade the number of processing cores or memory as needed.

For complex programs like data analysis or machine-learning, most Cloud providers offer a variety of processor cores and memories. Some even offer use of GPUs.

Since you’re charged only for what you use, you can deploy a powerful computing unit when you need it. Let it run as long as required, and then delete it.

What’s more, you can install your preferred operating system and applications in these Cloud computing units.

Volatile storage

Some of these computing units come with volatile storage, which means everything you store in it will be gone when the machine reboots. In such cases, you must always equipped you’re computing unit with a permanent storage solution.

Storage

You can purchase storage, keep your data as long as you want, and then delete it whenever necessary. Cloud computing providers offer storage solutions in a few ways.

You can purchase gigabytes or terabytes to store your application files or personal data. It works just like a regular hard disk, but the risk of data loss due to hardware fault is nearly zero.

This is because Cloud providers automatically backup your data in redundant storage.

Object storage

Another storage solution offered by public Cloud providers is called object storage. In object storage you get an API to upload and download your files, and that’s all.

You can store small or massive files and object storage.

What’s more, You can also make these files available to anyone for a certain amount of time with a timestamp signature. Cloud providers give you a unique URL to access your file, and that link automatically expires after the duration you specified in the signature.

Databases

Most public cloud providers offer SQl, NoSQL or Time-series databases to store your application data.

Examples of SQL or MySQL, MariaDB, and PostgreSQL, and examples of NoSQL are MongoDB, Cassandra and DynamoDB. Whereas examples of Time-series are Influx dB and Prometheu.

Tuning a database can be tricky and scaling it can be tedious and requires a lot of effort and careful supervision. With cloud computing, these issues disappear.

Cloud providers offer fully managed database solutions compliant with popular database engines like MySQL, MariaDB, or PostgreSQL, so no change in the application code is necessary.

Since these are managed solutions, you can allow these databases to scale automatically as they grow and they’ll be able to withstand substantial traffic loads without extra effort.

In-memory solutions

Some Cloud providers also offer in-memory database solutions, which are great for caching or super-fast data operations.

Specialized solutions

Cloud providers can also offer specialized solutions to deal with huge amounts of data or big data.

With Cloud computing, you can deploy a single database node or multiple ones and just a few seconds and link them to your applications.

Machine learning

Finally, there’s machine-learning which requires powerful computing units and GPU for data modeling and training. But this can be very expensive if you purchase physical hardware.

However, with cloud computing and its on-demand pricing model, you can start using machine learning at a cheaper cost. Cloud providers offer the latest hardware and software solutions that are efficient for machine learning, natural language processing, voice processing, and so on.

For machine-learning, Cloud Computing is a perfect and affordable solution. Cloud Computing is an excellent solution that allows you to spend more time on application development instead of managing hardware and infrastructure.


Networking in the cloud

Introduction

In this reading, you will learn about some exciting networking concepts used in cloud computing. You can use this knowledge to understand how servers communicate privately and publicly.

Public versus private network

In a public network, the cloud computing units are publicly accessible using IP addresses or URLs. On the other hand, computing units in a private network are not publicly accessible. These units are still accessible from the management console but don’t provide any public interface. To communicate publicly, the computing units can be on totally different networks. However, the units must be on the same network for private communication.

A load balancer sits in front of a typical infrastructure and is connected to multiple web servers. This load balancer will be connected to the public, but the web servers can connect to the load balancer both publicly and privately if they are on the same network.

IP Address

An IP address is a communication protocol used in networks. This is a unique identifier to locate a machine or a device on the internet or on a private network. You can use one of the two popular IP addressing systems for this. The first one is the IP version 4 or IPv4 or simply IP4. The other one is IPv6 or IP6.

In the IPv4 system, the address is divided into four different parts, and each part can be numbers ranging from 0 to 255, separated by periods. So, the IPv4 address range is anything from 0.0.0.0 to 255.255.255.255. The maximum length of an IPv4 address can be 15 characters. Here is a sample IPv4 address that belongs to Meta:

69.63.176.13

In the IPv6 system, there are eight groups separated by a colon (:), and in each group, there are four hexadecimal digits. Facebook has adopted an IPv6 address:

2a03:2880:2130:cf05:face:b00c:0:1

Did you notice the “face” and “b00c” in the IP address? They’re both valid hexadecimal digits.

The IPv4 system can have a maximum of 4,294,967,296 unique IP addresses. There needs to be more in this growing modern world, and it can run out soon, which is why IPv6 was invented. You can have 3.4 x 1038 or 340 trillion, trillion, trillion unique addresses.

IPv6 is a new technology, and many countries worldwide are still adapting to IPv6.

When using IPv4, these ranges are used only in the private network, 10.0.0.0 — 10.255.255.255; 172.16.0.0 — 172.31.255.255 and 192.168.0.0 — 192.168.255.255 so they are called private IP ranges.

One device or machine can have more than one IP address and both IPv4 and IPv6 addresses together.

DNS system

Remembering IP addresses is tough. Imagine you host your application in a server that has a public IP address, but you access it using a domain or hostname. This is where DNS servers come in. DNS servers are public servers that store these domain names against their IP addresses. Whenever you request a URL starting with a domain name on your browser or a request, it goes to the DNS server, receives the IP address, and then connects to that machine.

Bandwidth

Data that comes in or goes out from your server is called bandwidth. There are two types of bandwidths – incoming and outgoing. The data that comes to the server, for example, when you submit a form or upload files, is called incoming bandwidth or ingress bandwidth. And the data that leaves, for example, the webpage or API response or downloaded files, are counted as outgoing bandwidth or egress bandwidth.

In a server, uplink refers to the network or communication protocol used to send data outside the server. Similarly, the downlink is the network used to accept incoming data.

Conclusion

In this reading, you have learned the basic networking terms and how servers communicate with the public or other servers using IPv4 or IPv6 protocol. You also learned about egress and ingress bandwidth, uplink and downlink.


CloudserverDatabaseMLAIvirtual-machine

Previous one → 8.Web server environments | Next one → 10.Scaling in the cloud