We’ve all heard about “the cloud,” and various people have different levels of understanding exactly what the cloud is. Is “the cloud” connected? How do we use it? If the cloud rains, do we lose all our data? Okay, maybe no one is asking that last question, but let’s understand what the cloud and cloud computing are, while ending up with the best question we can ask, “What can cloud computing do for me?”
What is the cloud?
Spoiler alert, the cloud is just someone else’s computer as a service. Yes, a large company owns the network and is trying to help get data to you in a way that feels ubiquitous, but it doesn’t sound so surprising anymore, does it? Specialized computers, storage, and software via the Internet doesn’t have the same buzz. Regardless, we’re happy to have the cloud launch us into a new era of services. The cloud is the next step, cheap, global, software specialization for us all!
The cloud is a natural progression of data. Not long ago, when the world was poorly connected, people would bring fragile, light, weathered, and magnet sensitive disks with them to keep track of their critical images and documents. As the world got more connected, physical media got more durable, but it’s too little too late. The death of physical media was inexorable. Via the cloud there’s nothing to lose, you can access all of your information as long as you have an internet connection.
But without physical media, it’s a complicated world for commerce right? Actually, selling software just got a lot easier for everyone. People can’t make a physical copy of access to the cloud. Software-as-a-Service (SaaS) was already at an astounding 22.6 billion in revenue in 2013 and is projected to do more than double of that in 2018. This booming market is helpful to software companies and their consumers.
What makes the cloud special?
It’s not just data anymore, it’s better. Instant provisions, scalable services, and continuity across devices, to name a few elaborate features. You have one place where you can increase versions, and instantly you can provide those updates to your customers. If your server gets swamped, you can usually add more to your cloud service and handle the additional load. And finally, since everything is in one place, a person who’s halfway through watching a movie can put their phone down, and continue where they left off on their TV or their friend’s TV. The cloud is accessible to that person’s online account, not the device. There’s no doubt how impressive the world of computing has become with the victory of cloud over handling copies on physical data.
The common types of clouds
You might be thinking Cumulus, Stratus, and Cirrus, but as we covered earlier, a cloud is just a networked computer owned by someone else that can help services and computing. You’re probably not surprised to hear some of the most prominent cloud services are Microsoft Azure, Google Cloud Platform, and Amazon Web Services. Though each of these services would love to be 100% of your cloud computing needs, in 2017 the average organization uses 210 distinct collaboration services. It appears we’re eager to utilize all our connections as much as possible.
The cloud for programmers
So how do programmers relate to cloud storage? The answer is a new spin on a concept as old as the Internet. Now that the cloud is trying to be an adaptive feature for computing over the web, the list of features has been steadily growing.
At the most basic level, websites have always been a useful aspect of the Internet. You can host a website by hooking up a dedicated computer to the open Internet, no buzz words needed. That is until your website starts to get traffic. Once that server is working overtime, you can’t turn it off and install more RAM and and a hard drive. The world of software has become far too elegant for such mundane downtime and short-sighted service.
With cloud computing your servers are virtual. You can scale them up, down, and even let them scale themselves to the inbound needs. You can even offload the various features of your site to other virtual machines. There’s no need to have a slow site when advanced batch computing is happening on another virtual machine. Think of this way; everything is a service! All the features of a single machine can be refined into distinct services done well. Security, custom hardware, media and more are optimized for unfailing world-wide scalability.
As a developer, you can take any single-computer pain point and fix it with cheap service. Let’s pretend you have an app that needs to save and manage pictures of receipts. Not only is it usually expensive and difficult to keep the receipt images on hand, but it’s also generally limiting. So instead, we send our receipt images to Amazon S3, a simple storage service (S3). Armed with the power to send and receive our receipts from the cloud, let’s evaluate a cost-benefit analysis.
At the time of this article, getting a 25 GB computer with DigitalOcean would only be USD $5 a month. That’s a very reasonable cost. We could write a service on that computer that would accept, secure, and store our receipts for each user of our example application.
At the time of this article, Amazon S3 is offering 12 Months of Free Tier Access, but their paid plan is $0.039 per GB for the first 50 TB per month. That would mean after your year of free access, if you were to fill all 25 GB you’re still paying less than a dollar a month. Additionally, you didn’t have to architect the storage, security, and retrieval of your data, that’s all provided in the documentation of the S3 service. Let’s pretend further that you wanted to get information off of your receipts, well now you’re merely adding the Google Cloud Vision API to read and process your images. Do you want to write and run the image processing software on your 1 GB of RAM computer from our earlier example at DigitalOcean? Cloud computing has turned software from complicated and expensive systems, into composable services. You can buy all three aforementioned services, and have them work in sync to provide a quality solution that gives our example receipt application an empowered edge that would be financially infeasible if we were building from scratch.
Maintaining the images is just one simple part of empowering our product. Consider that we might even want to manage, backup, or share the database which controls receipt permissions, categories, searchability and more! It’s easy to comprehend the power of the impressive features that the cloud gives us by really feeling the immensity of feature.
“I’m in, how do I get started?”
The hardest part of getting started with using the cloud is choosing. Like a kid in a candy store, the list of options can feel monolithic. Step one would be to familiarize yourself with what services exist, and then discuss with your team or friends on how you could best leverage these services. Once you’ve identified the parts you’d like, you should look around and see if some smaller companies are also providing those services with a competitive edge. Since all these cloud computing services are new, there’s quantity but not always quality provided by each. Finding the provider that works best for your features is not only critical, it’s quite exciting!
Cited sources stats/pricing and visuals