Explaining the Cloud: a Layman's Guide
I've been developing cloud-based applications for customers in various industries for quite some time. And even though the cloud is one of the fundamental building blocks of almost every modern application, only some know what it is and how it works.
Suppose you are buying consulting work to build some cloud-based solution. In that case, it's undoubtedly important to understand what the cloud is. Due to this, I decided to explain cloud in layman's terms. I hope this post gives a basic understanding of the cloud and avoids the usual software-related jargon.
Data Centers: The Backbone of Cloud Computing
Imagine you have a giant computer in your house, but it has limits. Eventually, you'll run out of space to store your cherished photos and documents. You can only add more hard drives for a while, as the physical space will soon become a hindrance.
Now, what if I told you there was a way to store your data on many computers in far-off places and that those sites are built just for that purpose? With that kind of place, you'll never have to worry about running out of space again, and your precious files will be safe even if you lose your computer or phone.
But there are probably other things you need. For example, let's say you want to do some heavy-duty calculations, but your computer is not powerful enough. What if you could use these remote computers to crunch the numbers at lightning speed?
And that's where big companies like Amazon, Microsoft, and Google come in. They have massive data centers filled with countless computers that you can use to store your data and access processing power. Here's a slightly longer explanation about the computers in the data centers of Azure by Scott Hanselman. It's effortless to follow and explains the concept in more detail.
One could call computers in the data centers the cloud, but there's more: software.
From Data Centers to the Cloud: Understanding the Connection
Renting a physical computer or computers from a data center is nothing new or groundbreaking. This was done long before the term cloud computing was invented. Considering that, it would take a lot of work to start developing modern and scalable software solutions on top of those data centers alone.
Cloud providers have built a set of software services that you can use to make the development of applications more accessible. These services focus on some specific areas in software development: some are good at storing data, some move data quickly between different places and some just run code you throw at them. There are hundreds of these services.
Cloud services are often billed by usage. If you run some heavy calculation once a week and it takes about one hour to complete, you are billed for the hours or processing power you consumed. Without the cloud, you would have to buy or rent servers somewhere, which would cost a lot of money since you would also be billed for when you are not using them. Similarly, by using the cloud, you can avoid having to worry about the maintenance of some physical server somewhere - the cloud provider will handle that for you and ensure the services stay up and running. Your only responsibility is to keep your software working.
From Cloud Services to Cloud Native: Building Modern Applications
You can think of building an application with the cloud as constructing something out of building blocks. You start with pre-built tools and services and then combine them in various ways to create something new and exciting, like a giant toolbox at your disposal.
Designing applications to be run in the cloud means that you are developing cloud-native applications or software: the application is specifically designed to be deployed to the cloud and consumed from the cloud. Often this means that your application's user interface runs in a web browser. Some software that connects to the cloud runs on IoT devices, mobile devices, or desktops outside the web browser. Still, most of the software resides in the cloud, and the end-user application is merely a graphical interface to consume the cloud services.
But don't be fooled into thinking that the cloud is some magic solution that requires no expertise. Like anything else, you still need people who know what they're doing to make it work. The cloud is just another tool in the toolbox of software engineering. Someone needs to combine the most cost-effective and suitable cloud services and write the software for your application. Code is, after all, the heart of your application. Cloud architects, software architects, software engineers, UI/UX designers, and testers are some titles you might see working with cloud-based applications.
Embracing the Cloud Era
So that's it - the cloud in a nutshell. It's a game-changer, plain and simple. With the cloud, you can store your data, crunch numbers, and build applications without worrying about physical limitations or maintenance. At Softlandia, we're all about embracing the cloud era and helping you make the most of it. Whether you need a cloud-native app or just some guidance on cloud strategy, we've got your back. So what are you waiting for? Let's get to the cloud!