Cloud is everywhere, and we often do not even notice it, but it's part of our lives whether we are aware of it or not.
Clearly, I'm not talking about an aerosol consisting of a visible mass of tiny liquid droplets, frozen crystals, or other particles suspended in the atmosphere of a planetary body.
So, what is the Cloud?
Imagine you are working on some critical files on your computer, and a meteor breaks your window and smashes your laptop!
Okay, maybe a meteor is too much, so let’s so let’s change that to a golf ball.
I sincerely wish that at this moment, you can think: “At least all my documents, photos and files are stored in the Cloud”. Something like a Google Drive, Dropbox or iCloud. Am I right?
If my wishes come true, it means your stuff is saved in servers in the Cloud instead of your computer.
When you upload your documents to tools like Google Drive or Dropbox, it is like having a hard drive that you can access anytime when connected to the Internet and perform a backup of your stuff if something happens with your device, like an unexpected meteor or a golf ball from the sky.
Cloud refers to servers accessed over the Internet and other stuff, such as the software and databases that run on those servers.
Having things running in the Cloud sounds very handy, hun? I can’t think how it would be the world for me without having tools like email and Google Drive. But can you imagine how the world was before the Cloud?
Companies must have a physical space to host their servers on-premises, meaning they need to spend money to ensure they are secured and powered up and have teams to care about the hardware and software.
Well, there are situations nowadays when on-premises is the best solution for some companies. Still, when this is the case, they need to pay for the costs of the whole structure and are stuck with all of that even when not using them.
Accessing these shared resources in the Cloud without needing a physical structure opened the doors and created new possibilities for many small businesses. Something almost impossible to happen in the past.
The concept of sharing resources started in 1950 when multiple users could access the same data storage layer and CPU power using large-scale mainframes with high-volume processing power.
In 1970, the Virtual Machine (VM) era started with mainframes having multiple virtual systems, or compute environments, on a single physical node/hardware. Using a VM, a user could host guest operating systems, such as Windows or Linux, that behaved like they had their own memory, CPU, and hard drives, even though these were shared resources.
The cherry on top of the VMs was the hypervisor, also known as a virtual machine monitor or VMM. You can think of it as an orchestra conductor, a software that creates and runs virtual machines (VMs) and allows each host computer to support multiple guest VMs by virtually sharing its resources, such as memory and processing.
In 1991, the world started to change significantly with the creation of the World Wide Web - also known as the Web, WWW or W3. Thanks to the WWW, public websites or pages could now be accessed by users on their local computers and other devices through the Internet. It was a matter of time before VM concepts could also be accessed virtually.
It didn’t take too long for some companies to realise they could make Cloud benefits accessible to users who didn’t have an abundance of physical servers.
In 1996, Amazon Web Services launched the Amazon Elastic Compute Cloud (EC2), making accessible to anyone a service that lets you run virtual servers in the Cloud with the bonus of having a secure and resizable compute capacity for virtually any workload.
By using an EC2, you can access your resources virtually at any time. You can choose the operating system (Windows, Linux, IOS) you want and what you want to run on your server (internal business applications, web apps, and databases). You can also define the size and configure them to scale up and down depending on your demand. You control the network and security (public or private access), who can access what, and the type (Memory, Storage, etc.).
Just after, other companies also launched their Cloud services, such as Google Compute Engine, Azure Virtual Machines, Elastic Compute Service (ECS) and so on. Since then, users can run and control the configuration of their own servers from anywhere without needing to buy and handle a physical data center.
Now that we understand a bit more how it all started, let’s review some definitions of Cloud Computing to check how it makes a bit more sense now.
Wikipedia - Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. Large Clouds often have functions distributed over multiple locations, each of which is a data center.
AWS - Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing. Instead of buying, owning, and maintaining physical data centers and servers, you can access technology services, such as computing power, storage, and databases, on an as-needed basis from a Cloud provider like Amazon Web Services (AWS).
At this point, we can understand Cloud Computing as resources that can be accessed when needed, at any time, from anywhere, and you only pay for what you use.
You also learned that you can have your applications fully deployed and running in the Cloud, but you don’t need to, as it is not the case for everyone for many reasons.
Cloud Computing services allow you to choose the deployment model that best suits your business and take advantage of its public, hybrid or even private deployment models.
Let’s understand a bit more about the versatility of the existing deployment models and how they can attend to different needs.
Public - The Cloud is available to the general public, and resources are shared between all users. They are available to anyone, from anywhere, using the Internet.
Hybrid - is a Cloud deployment model that combines public and private Clouds. It means that a company uses the public Cloud but owns on-premises systems and provides a connection between the two. It’s handy for companies that cannot operate solely in the public cloud because of security concerns or data protection requirements. So, they may select the hybrid cloud to combine the requirements with the benefits of a public cloud.
Private - is a Cloud deployment model with a dedicated environment for one user or customer. They don’t share the hardware with other users, as it belongs to them. The main difference between private and public Cloud deployment models is how you handle the hardware, and it can be a solution for businesses with legacy systems that cannot access the public cloud, for example.
Community - this deployment model supports multiple organisations sharing computing resources that are part of a community. For example, universities cooperating in specific research areas or police departments within a county or state sharing computing resources. Access to a community cloud environment is usually restricted to community members.
After this introduction, I hope you understand how much Cloud Computing is versatile, accessible and easy to adopt. The agility and flexibility that Cloud technology enables results in new ways of working, operating and doing business.
Cloud Computing is irreversible, and it will grow even more. 📈
Based on research published on websites like CloudZero, Zippia, and Earthweb, 94% of all companies worldwide use Cloud Computing in their operations.
This high level of adoption is not a surprise. With Cloud Computing, resources are available in minutes, which means companies can perform, scale and respond to new market developments much more rapidly.
The impact is also financial. Another survey by Deloitte showed small and medium businesses that adopted Cloud Computing made 21% more profit and grew 26% faster. Accenture revealed that moving workloads to the public Cloud led to Total Cost of Ownership (TCO) savings of 30-40%.
The high level of Cloud Computing adoption also resulted in many Cloud-related jobs necessary to implement and maintain all those services' working. Even though your job may not be specifically cloud-related, if you work in a company that adopted Cloud Computing services, chances are you will have some contact with that.
A full-stack developer working in a small start-up will likely handle some API Gateways and write some AWS Lambda functions like I needed to do (without previous knowledge about the Cloud).
There are also other Cloud Computing roles I even heard about before starting to learn Cloud, such as Cloud Consultant, Cloud Engineer, Cloud Support Engineer, Solutions Architect and so on.
The great news is the cloud is for everyone!
You don’t need to be a tech expert to start learning about Cloud. Getting some Cloud Computing foundations and perhaps a foundational certification is a great way to begin upskilling and prepare yourself for the market. It can help you have a general knowledge of Cloud Computing and decide which area to go for.
If you want to learn more about the first Cloud certification, you can read this article about my first AWS Cloud Practitioner certificate. I also share some resources for you to start your journey.
You can also check this list of free AWS courses in my GitHub repository and start upskilling.
In this article, I explained what are Cloud and Cloud Computing, how all of it started, and what are the benefits of adopting Cloud Computing.
I also talked about Cloud Deployment Models and gave some examples of the flexibility and versatility of Cloud Computing to attend to a diverse range of business requirements and why I believe this technology is irreversible and can be a future for you.
I hope this information helped you to understand where to start in the fantastic Cloud world if you want to.
Feedback and suggestions are always welcome. ❤️