Let’s face it; whether or not you’ve been in the Technology business, you have undoubtedly heard of the term ‘Cloud.’ Many people have a high-level (and often false) opinion about the cloud, while some have a basic working knowledge of it, and only a few individuals genuinely understand the cloud and it’s various technological and real-world implications.
What is the Cloud, and where is it?
In one line, Cloud Computing is nothing but the delivery of essential IT resources of Compute, Storage, and Network over the internet (or a private network) from a remote location. Let’s understand these terms a bit better.
- Compute resources: These include, and are not limited to RAM and CPU for running your applications
- Storage Resources: These are the basic storage disks, arrays, RAIDs, Databases that are critical for storing and processing your data
- Network resources: It is the backbone of any cloud computing application, and is crucial to all the resources mentioned above and enabling customers to access their resources safely and securely. Innovations in networking technology have made possible the various algorithms that drive a cloud today
- Internet/ Private network: Depending on the user, the application, and the use case, the cloud resources could be accessed either via the public internet or through a private network that only specific users can access
- Location: This ‘cloud’ is present on a cluster of servers and network switches located in a data center. This data center could either be situated inside the company’s premises (Private Cloud), inside a cloud service provider’s data center like AWS (Public Cloud) or a combination of both (Hybrid Cloud)
Why do I need the Cloud?
One of the best places to start to understand the philosophy of Cloud Computing is Nicholas Carr’s seminal book – The Big Switch. In this book, he argues that the rise of cloud computing was only a logical step in human evolution. Over the course of history, man realized the benefits of moving from stand-alone water pumps and electricity generators to centralized sources of water and electricity (read as utilities in a city). In the same manner, there is a lot of economic and operational benefit of moving compute resources to a centralized location (in this case cloud).
Before the advent of Cloud Computing (or distributed computing), in a traditional IT setup, each company would spend millions of dollars on setting up and maintaining on-premises servers and data centers. This would not only involve huge capital expenses for the infrastructure, but also a significant investment in operational costs for maintenance. But because each company ran their servers in silos, no one actually realized any benefits from economies of scale. The shift to the cloud has resulted not only in huge savings for individual companies but also in the introduction of new and innovative solutions from the leading cloud companies such as AWS, Google Cloud and Azure.
At the cost of sounding cliche and repetitive, let’s review the basic benefits of running applications on the cloud:
- Scalability: If you’re running a website, you understand that you could suffer high traffic for short amounts of time, and have low to medium traffic on most days of the year. You don’t want your website or your application to break during the traffic spikes; at the same time, you don’t want to purchase extra server space that will be underutilized for most of the year. What you need is a solution that scales up and down according to your traffic needs, and that is what a well-architected cloud and application does really well
- Instant Provisioning: If your business/ application is growing steadily, you need more servers to cater to your business requirements. There is a significant lead time associated with ordering servers, procuring them, racking them, and deploying them if you’re running your own data centers/ server rooms. A good cloud service provider removes this headache for you by giving you the ability to instantly create or delete virtual machines (VMs) for adjusting to the scale of your application
- Low Capex and Opex: By choosing to move to the cloud, you not only avoid the large capex associated with buying/renting space in a data center, but you also save on the massive expenses for running the setup which includes power and cooling (personnel cost will also be separate)
- No in-house experts required: Because you choose to move your application to the cloud, one of the most significant advantages you will get is the ability to focus on your core business, and not worry about the regular maintenance and operations of your servers. You can offload this activity onto industry experts who know what they’re doing 🙂
- Lower downtimes: Most cloud service providers have various forms of backup/ redundancy which might not be cost effective if you were to run your own data center/server room. Advancements in cloud technologies in both how the applications use the compute resources and how data is stored ensures that downtimes or data losses in cases of server failures, user errors or geographic disasters are minimal.
But if I am hosting on other servers, is my data secure?
Data security is probably the single biggest impediment to universal cloud adoption across the industries and the enterprise. There is no one magic bullet to solve all data security problems, but every single cloud service provider has made significant advances in securing their networks, encrypting the traffic to and from their servers, encrypting the servers themselves, and also forcing best security practices onto their customers. Without getting into the technical details of how these measures stack up against each other, or how they function, it is sufficient to know at this stage that security is a two-way street when it comes to cloud computing. It is as much the responsibility of the customer to secure their passwords and keys, as it is the responsibility of the provider to secure their services. More on the vast topic of security in a later post 🙂
But I still don’t understand Cloud Computing entirely
Don’t worry, we’ve only scratched the surface of the large subject of Cloud Computing in this post; the real masters have spent years honing their skills and technical expertise to not only deliver for themselves and their companies but to also contribute to the larger cloud community.
This article has been a very basic primer on the cloud and its philosophy. We’ll dive deeper into Cloud Architectures and solutions in the next few posts.
Till then, feel free to scour the internet for more resources. Some of our favorite resources are: