Get posts like this one in your inbox by signing up for our newsletter.
Most of us have heard that the future of technology is in the cloud. And that includes the cloud itself, confusingly enough, in the form of cloud computing.
A Brief Explanation Of The Internet
It all starts with a request to load a website, like the one you’re viewing right now. In order to know where to send the request, your computer must first resolve the domain name (e.g. “example.com”) to an IP address. This is done by sending a request to a DNS server, which is like a phone book for the internet. Once your computer gets the IP address of the server, it then sends a request to the web server.
Then, the web server will request data from more servers, such as a database, required to assemble the page. After the page is assembled, it gets sent back to your computer. Finally, your browser takes the code it received and renders it into you’re seeing right now. Before it can render the page, however, most websites include assets that your browser must fetch. These range from instructions on how to display everything to loading ads and analytics tools.
And, if you’re like me and like lists, here you go:
- Your computer sends a request to convert “example.com” to an IP address
- Your computer then sends a request to server identified by the IP address
- The web server processes your request, and will likely require contacting other servers to build the page
- After the page is built, it gets sent to your computer
- Your browser then sends requests to other servers to get everything the website tells it to
- Your browser converts the code of the web page into what you see
Servers, Servers, Servers
As you can see, each step of the way requires a client and a server. The client is usually your device, and the server is usually off in a data center somewhere on earth. Most people can’t afford to just build a data center when they feel like it. But, every website still needs at least a single server to live on. This is where cloud computing saves the day.
Life Is Possible Without It
Before I explain the benefits of cloud computing, I feel that it’s important to mention that it’s not necessary for the internet to work. Virtually any computer can be a web server, including the vast majority of desktops and laptops. So, if you want to start a website, you can technically just install web server in a matter of minutes. In fact, you can get WordPress (a popular website content manager system) running on your computer in less than an hour. All you need is to set up a LAMP, MAMP, or WAMP. Aren’t computing acronyms just great 🙂 ? Anyways, after that, you need to configure port forwarding on your router to send traffic from your IP address to your computer. Lastly, you’ll just need to purchase a domain name and set up the DNS record to point at your IP address.
Problems With This Approach
Obviously, this setup is less than ideal. If you’re tech-savvy and enjoy a good challenge, then go ahead and host a website on your desktop or Raspberry Pi. But, there are a lot of problems with this approach. For one, not all ISPs will even let you host a website on your home IP address. Even if they do, you’re exposing your computer and internet connection to DoS and DDoS attacks. While these are enough to bring even large websites down, bringing down your website isn’t even the worst part.
The worst part is that while under a DoS or DDoS attack, you can’t use the internet at all. Since your website and the rest of your house share the same internet connection, and attack on either will bring both down. Speaking of down time, what happens when your computer gets updates? Those are annoying enough when you have work to get done, but now your website goes down and loses traffic as well.
Cloud computing solves the problem of building expensive data centers without requiring you to open up your home network to the internet. You can think of cloud computing as renting server space from someone who already has a data center. The company renting out their data center already has it built and running, so adding just one more server doesn’t cost them too much. So, they pass the savings onto you. Even large companies that use vast amounts of resources, like Netflix, rely on cloud computing to serve their content.
One of the larger appeals of cloud computing is the ability to scale websites and services to meet demand. As an example, imagine a large news website that gets occasional bursts of visitors. If they were to build their own data center, they’d need enough servers to meet the highest demand they get. As such, most of their servers would be idle most of the time, which is a huge waste of resources. Instead, if they were to use cloud computing, they could easily spin up or shut down servers as needed. The best part is that they only need to pay for the servers they’re using. Additionally, scaling can be automated which means that more servers will automatically be started when traffic goes up and shut down when it goes back to normal.
Another appealing aspect of cloud computing is how affordable it is for everyone. Since cloud computing providers have a large scale, they can provide servers at a lower cost than running a data center. Additionally, there’s no upfront cost for using cloud computing, which means startups need to spend very little on cloud computing when they start. Their costs only go up when their user base does.
For example, this website is currently hosted on a Linode server for just $5/month. When this site starts getting more traffic that that server can handle, it can be upgraded to a more powerful server within seconds. Once even the most powerful server can’t handle the traffic, the traffic can easily be split across multiple servers affordably.
A picture is worth a thousand words:
Think about how much it would cost for a company to comply with all of those certifications, laws, and frameworks. Cloud computing makes it much easier for a credit card processing company, for example, to comply with PCI standards.
Ease Of Use
Many cloud computing providers offer more than just servers. For example, AWS also offers an easy way to store assets for websites (S3) as well as managed databases. These make life easier for programmers, and allow them to outsource the boring stuff elsewhere. It also means that less can go wrong and more time is left to focus on other areas. Managing backups is also easier when using cloud computing. Snapshots of servers can be taken in minutes, which gives an easy way to roll back changes that break something.
Another cool aspect of cloud computing is the ability to spin up servers anywhere in the world. Larger services need to have their content closer to their audience, which would be really expensive to do yourself. Instead of building five data centers around the world to increase performance, it’s much easier and cheaper to just use cloud computing.