Feb 19, 2019 By Team YoungWonks *
In tech circles, we have heard the term cloud computing quite often. So what is cloud computing? In fact, what is a cloud?
What Is Cloud Computing?
To put it simply, the term cloud refers to the Internet. And cloud computing means storing and accessing data and programs over the Internet servers instead of the hard drive on your computer. This in turn is done by the quick handing out of shared pools of configurable computer system resources and higher-level services over the Internet. So cloud computing is, in fact, the opposite of local storage and computing wherein you store and access data on your computer.
And while there are benefits to just saving information on one’s computer, it is not always feasible to do so and this is particularly the case for enterprises / organizations, so that’s where cloud computing comes in. Cloud computing allows these businesses to focus on their core functions instead of spending resources on computer infrastructure and maintenance.
What is Cloud Storage?
Cloud storage is a model of computer data storage where the digital data is stored in logical pools. The data is stored across multiple servers (sometimes in multiple locations), and the physical environment is usually owned and managed by a hosting company. These companies keep the data accessible, and the physical environment protected and running. People and organizations can purchase or rent storage capacity from them to store user, organization, or application data.
For instance, if you have say, over 5,000 images from your wedding, you may have not have enough memory on your phone/ computer to store them all and you’d also want a backup of these image files in case your phone or PC crashes. In such a scenario, it is ideal to save the images on the cloud, which is basically a network of remote servers hosted on the Internet. Google Drive, DropBox are a few examples of cloud storage.
History / Origins Of Cloud Computing
The origin of the term cloud can perhaps be traced back to the fact the cloud symbol was used to represent computing equipment in not one but two Internet predecessor networks, namely the original ARPANET (dating back to 1977) and the CSNET (1981). The term cloud was also used in 1993 to allude to distributed computing platforms, when the Apple spin-off General Magic and AT&T used the term to describe their (paired) Telescript and PersonaLink technologies.
However, the term cloud computing was popularized by Amazon - or rather its subsidiary Amazon Web Services (AWS) - in the year 2006 when it released its Elastic Compute Cloud product.
Meanwhile, the practice of cloud computing originated - in a manner of speaking - back in the 1990s, when telecommunications companies that earlier offered dedicated point-to-point data circuits started providing virtual private network (VPN) services at lower costs. They switched traffic as they saw fit to balance server use, allowing them to use overall network bandwidth more effectively; plus they started using the cloud symbol to highlight the distinction point between what the provider was responsible for and what the users were responsible for. Cloud computing pushed this boundary to cover all servers as well as the network infrastructure.
How Cloud Computing Has Evolved Over The Years
Cloud computing as it stands today has come to include several service models.
Here we shall look at these service models:
a. Infrastructure as a Service (IaaS): This is when the consumer / subscriber avails of processing, storage, networks, and other fundamental computing resources and can use / run arbitrary software, including operating systems and applications. Here the consumer does not manage or control the underlying cloud infrastructure but can control the operating systems, storage, and deployed applications. The IaaS provider is typically an online service offering high-level Application Program Interfaces (a set of routines, protocols, and tools for building software applications). The advantage of IaaS is that it can support large numbers of virtual machines and offers the customer the ability to scale services up and down according to his/ her varying needs.
b. Platform as a Service (PaaS): Here the consumer is allowed to use the cloud infrastructure to store and process consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment. In other words, the PaaS provider basically creates a development environment - complete with a with a toolkit, standards for development - for application developers. The cloud provider then delivers a computing platform, usually including operating system, programming-language execution environment, database, and web server. This means that now the app developers can develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers.
c. Software as a Service (SaaS): This refers to when the consumer can use the provider’s applications running on a cloud infrastructure. The applications can be accessed from various client devices - either through a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer has no control over the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
This is because here the cloud providers are managing the infrastructure and platforms running the applications. So there’s no need for the consumer to install and run the application on the his/ her own computers, which means maintenance and support are no longer the user’s problem. Also called “on-demand software”, SaaS is usually priced on a pay-per-use basis or using a subscription fee.
d. Mobile “backend” as a Service (MBaaS): This model, also known as Backend as a Service (BaaS), is fairly new and it entails a setup where web app and mobile app developers can link their applications to cloud storage and cloud computing services with APIs exposed to their applications and custom software development kits (SDKs). Services on offer include user management, push notifications, integration with social networking services and more.
e. Serverless Computing: Do not let the name mislead you for this doesn’t mean cloud computing code execution model that runs without servers. It is called so because the client here - either a company or an individual - does not have to buy, rent or provision servers or virtual machines for the back-end code to run on. Instead, the cloud provider completely manages starting and stopping virtual machines as required to serve requests, and billing is as per an abstract measure of the resources needed to satisfy the said request, in place of a per hour, per virtual machine rate.
Here's a video about the various cloud computing service models available today:
Types of Clouds
Private Cloud: A private cloud is a cloud infrastructure run only for a single organization, either managed internally or by a third party, and hosted either internally or externally.
Public Cloud: A cloud is known as a public cloud when the services are being provided over a network that is open for public use. Public cloud services could be free and technically speaking, there could be little or no difference between public and private cloud architecture. That said, the security considerations can be significantly different for services (applications, storage, and other resources) that have been made available by a service provider for the general public as this is when communication is taking place on a non-trusted network. So for instance, on one hand, public cloud service providers like Amazon Web Services (AWS), Oracle, Microsoft and Google own and run the infrastructure at their data center and access is made possible through the Internet. But these companies have also come up with a workaround for the privacy/ trust problem by launching direct connect services such as AWS Direct Connect, Oracle FastConnect, Azure ExpressRoute, and Cloud Interconnect respectively. Of course, these services need customers to purchase or lease a private connection from the cloud provider.
Community Cloud: Community cloud is one where the cloud infrastructure is shared among various entities, typically from a specific community that shares common concerns (say, security, compliance, jurisdiction, etc.). Such a cloud can be managed internally or by a third-party, and hosted internally or externally. Here fewer users than in case of a public cloud (but more than a private cloud) have to bear the costs.
Hybrid Cloud: A hybrid cloud is composed of two or more clouds - they can be private, community or public clouds - that remain distinct entities but are bound together, providing the benefits of multiple deployment models. One of its advantages is the fact that the capacity or the capability of such a cloud service can in fact, be expanded via aggregation, integration or customization with another cloud service.
Distributed Cloud: A distributed cloud is a cloud computing platform that has been assembled from a distributed set of machines in different locations, but all connected to a single network or hub service. There are typically two types of distributed clouds: public-resource computing and volunteer cloud. Public-resource computing, as the name suggests, is basically an expansive definition of cloud computing. Whereas a volunteer cloud refers to when the cloud computing infrastructure is being built using volunteered resources. Also known as peer-to-peer clouds, or ad-hoc clouds, these clouds come with a set of challenges mainly due to the volatility of the resources used to build it and the dynamic environment it operates in.
Multicloud: Multicloud is the use of multiple cloud computing services in a single heterogeneous architecture and it’s aimed at minimizing the dependence on single vendors and increasing the flexibility through greater choice. It is different from hybrid cloud in that it alludes to multiple cloud services, rather than multiple deployment modes (public, private, legacy).
Big Data Cloud: As the name suggests, big data cloud refers to a cloud computing model dealing with large amounts of data. The biggest challenges here have been the issues of data security and seamlessly transferring huge amounts of data to the cloud. But given the fact that much of data today originates in the cloud, the big data cloud has become a popular solution for those involved in business analytics and geospatial analysis.
HPC Cloud: This refers to when cloud computing services and infrastructure are used to run high-performance computing (HPC) applications. These applications take up considerable amount of computing power and memory and are traditionally executed on clusters of computers. Various vendors offer servers to support these applications.
Watch the video below for a detailed explanation about the different types of clouds in cloud computing today:
Advantages And Disadvantages Of Cloud Computing
As mentioned earlier, cloud computing does help enterprises cut their IT costs and helps them get their applications up and running faster, with improved manageability and less maintenance. This typically allows IT teams to adjust resources easily so as to meet fluctuating demand. In fact, cloud computing is much more reliable and consistent than in-house IT infrastructure.
Aside from lower costs, fewer maintenance hassles and quick and efficient management, cloud computing offers yet another big advantage - that of mobility. Be it individual users or big companies, everyone using cloud computing can access documents or mail that’s not stored on one’s PC, as it is stored on a cloud. Location in such a situation ceases to matter and as long as one has internet services, one would be able to work on data saved on the cloud - even if one is at a remote location.
On the downside, cloud providers are known to use a “pay-as-you-go” model, which can lead to unexpected operating expenses if administrators are not familiar with cloud-pricing models. Smaller business operations in particular face issues regarding security and downtime. Technical outages leave cloud service providers (CSP) overwhelmed even as they try to minimize damage. At the end of the day, cloud computing depends heavily on the internet, which means that an individual cannot access applications, servers or data from the cloud during an outage.
There are also many privacy concerns surrounding cloud computing. CSPs may boast good security standards and industry certifications, but the fact remains that storing data and important files on external service providers leaves the customer at least a little vulnerable. Using cloud-powered technologies means one needs to provide their service provider access to important business data.
Customers having minimal control over the cloud infrastructure is another issue. A cloud computing customer has no control over the backend infrastructure itself. Key administrative tasks such as server shell access, updating and firmware management may not be passed to the end user.
The Road Ahead
The bottom line is that cloud computing, more often than not, gives the customer a competitive edge over competitors, as virtually no time is needed for IT procurement. Cloud computing lets the consumer outsource his/ her computing concerns and focus on one’s key business activities and objectives. It can also help reduce the time required to market newer applications and services. Today, with the advent of high-capacity networks, low-cost computers and storage devices as well as the widespread adoption of hardware virtualization and service-oriented architecture, the popularity of cloud computing has only gone up.
No wonder then, the cloud computing industry is thriving. Big CSPs continue to invest billions of dollars each year in cloud-computing related research and development. For example, in 2011 Microsoft spent 90 percent of its $9.6 billion R&D budget on its cloud computing. Other tech giants such as Amazon, Alphabet (Google’s parent company) and IBM are also said to spend heavily on enhancing the cloud computing experience.
Exploring Cloud Computing Through Coding
Cloud computing is not just a buzzword but a revolutionary technology shaping the future of internet services and data management. It offers scalable access to computing resources and high-powered computing via the internet. But how can young learners get started with understanding such a complex topic? At YoungWonks, we believe in making learning fun and accessible. Our Coding Classes for Kids are specially designed to simplify complex concepts like cloud computing, making them easy to understand for kids. For those who want to take a deeper dive into programming, our Python Coding Classes for Kids cover essential principles that are pivotal for understanding cloud-based applications. Additionally, learners looking to explore how cloud computing intersects with hardware can benefit greatly from our Raspberry Pi, Arduino, and Game Development Coding Classes. These classes not only enhance programming skills but also provide hands-on experience with projects that utilize cloud services, offering a comprehensive insight into the world of cloud computing for absolute beginners.
*Contributors: Written by Vidya Prabhu; Lead image by: Leonel Cruz