Let us imagine a story to make it easier to understand Cloud Computing. Suppose José da Silva bought a brand new computer.
Joseph treats his computer with all the zeal in the world. It has all the processing and memory needed to meet his new demands.
Now imagine that five years have passed, and Jose’s computer cannot handle his demands similarly. Then there are a few reasons for this.
Before we talk about Cloud Computing, let us talk about these problems faced by José.
Computer resources and time
Jose loves to play, and his games have heavy graphics that need powerful cards to have a fluid experience.
Also, José is a programmer. Therefore, it carries out several projects, each demanding considerable storage space. Each project increases the amount of space occupied on the SSD (or HD).
Further, José performs computer simulations to model phenomena, such as the behavior of individuals in large events.
We can agree that José’s beloved computer will no longer do the job one day. So what is the solution for this?
To get around this problem, we can invest in hardware modifying components such as CPU, DDR5 RAM, and SSD… However, we can agree that he will have the same problems after a while.
Imagine that we have a company that invests in servers in a data center with a considerable cost. In addition, most of the time, computing resources are not used entirely.
When can Cloud Computing be helpful?
To understand this question, suppose the sales routine at Americanas. Now, imagine how this demand changes during Black Friday.
In this case, a robust infrastructure will be dedicated to the specific demand of the company.
However, this created infrastructure is idle for the rest of the year. Then, of course, we can use NoSQL DBMS to improve system availability and scalability.
However, we would still need to invest in equipment and personnel.
It was for this demand that large companies directed their efforts to the creation of Cloud platforms. Then came a new scenario with computing as a service.
What is Cloud Computing?
Cloud computing emerged from the idea of providing traditional IT services, such as infrastructure, virtual machines, storage, database, and applications, among others, as a service.
Then, concepts of distributed systems were used to make this entire ecosystem available. Therefore, companies such as Amazon (AWS), Microsoft (Azure), and Google (GCP) started to offer several services for companies and individuals.
With the advancement of technology and the maturation of cloud computing platforms, IT services have been extended to more modern concepts, such as machine learning (ML), the internet of things (IoT), NoSQL DBMS, as well as Artificial intelligence (AI).
This way, instead of the infrastructure, devices, and servers being located inside a local data center, they are distributed globally across the data centers of the maintaining company.
Why cloud? The naming of this type of service as cloud computing comes from the lack of knowledge of the infrastructure provided by the cloud platform. In addition, data centers are distributed throughout the world.
What are the advantages of using Cloud platforms?
We may be wondering why we would use a cloud platform over our data center, which is under our control. The answer to that question is more complex than we think. So, we have some points to clarify.
Some of the advantages are:
- “Infinite” resources
- Low initial cost
- Pay for what you use
Let’s talk about some scenarios that encompass the advantages of using the Cloud, listed above. Let’s go…
Resource Allocation and Operational Tasks
We talk about the vertical scale scenario and how it affects the pocketbook of companies and other people in general. If most of the time we do not use the full potential of our machine, how about paying only for what we use?
This simple yet powerful concept enables companies to adapt their infrastructure according to demand. Furthermore, once this demand no longer exists, we need to remove the instance from the system on the Cloud platform.
Imagine that we are data professionals performing parallel processing of large volumes of data in the cloud.
This action takes place without the worry of dealing with day-to-day operating activities. Then it goes for databases, data storage, and containers, among other systems.
Imagine defining database replicas with a few clicks. Just as easily remove DB instances that are no longer needed.
The ease of allocating computing resources and paying only for what you use has been one of the most attractive advantages for companies.
Storage in Cloud Computing
We said that José was starting to lose space on the HD due to his numerous projects. Integration with database, application front-end, tests, and countless libraries for the code to run.
In addition to storage, such as S3 from AWS, platforms provide a space for developing applications within the cloud.
There are several types of data storage within platforms. As a result, data availability, operations, and pricing vary depending on the storage and data access level.
The AWS platform has a few types of services for data storage: S3, Glacier, EBS, EFS, and EC2. They vary according to usability, availability, treatment type (file, object, block), and other features.
Scalability and Processing
We can determine scalability as one of the main points in this discussion. Imagine that we need to increase our computing power to meet a constant increase in demand for our services.
In this scenario, we have two factors involved, time and money. First, time regarding the time we will have for a data center to be built. Money, because we will need to invest in buying new equipment, servers, and network devices.
Scaling up our data center costs more than allocating services to the cloud. Also, if the data center can have idle time, we can invest in something that is not being used to its full potential.
We will need to hire or train our people if we are adding other services to our data center, new devices, and new software.
Like everything in life, the trade-off of using Cloud services is not cheap. Therefore, the cost to maintain the instance is already high. Therefore, we need to study our solution/Application carefully.
The question will be: Do we need a robust cloud-centric solution, or will our small data center provide our needs? Cloud platforms provide several advantages (as mentioned in this article).
However, we must study our case carefully because there is no silver bullet.