Cloud computing is ubiquitous. It is the most talked about topic nowadays. Businesses talk about adopting cloud software and solutions to reduce operational cost. We use emails which are stored somewhere in a remote location. We upload our pictures to a website that stores them in cloud storage (e.g. iCloud). Our files are stored in Amazon Cloud drive. Our videos are uploaded to YouTube. In today’s world, it is tough to imagine a scenario where cloud computing has not touched our lives. So what exactly is cloud computing?
Cloud computing is a term used to signify a way of accessing software, infrastructure, and computing power from a location other than our own. The resources usually reside in someone else’s computer or distant data centres. Nowadays the reach of cloud computing is so vast that the resources are located in a different country and continent that often we have no clue of the exact location. Think of the emails in your Gmail inbox. The emails do not reside in our computers. Google serves these emails from the servers that reside in any of the data centres located in Americas, Asia, or Europe.
Another simple way to explain Cloud concept is through the example of ordering food. In the absence of a Cloud model, you would typically have a kitchen in your house where you will prepare your food. This entails a number of financial and non-financial implications. There are costs involved to maintain the kitchen, procure groceries to prepare the food, pay for utility expenses, etc. The non-financial factors are the time involved to prepare the food, cleaning the kitchen, maintaining hygienic conditions, etc. In essence, there is an overhead involved in running your own kitchen. But what if you could just buy the food you need without going through the hassle of cooking? You could either buy the food from the store or order by calling the restaurant. You are least bothered about where the food is prepared and what costs are entailed in the process. The kitchen is hosted in some location. All you care is the delivery of quality food at right time and price. You only pay for the service (in this case, food) you consume. The Cloud model works on the same concept. You pay for the IT service you use; the infrastructure which provides the service is not located in your premise. It is hosted and managed by a third party. The nitty-gritties of the host are unknown to you. This ‘unknown’ is diagrammatically represented as a ‘cloud’.
Where did Cloud computing get its name from? If you remember the IT network diagrams, the internet is often represented as a cloud pictorially as shown below.
The cloud icon is like the proverbial “black box” that makes the internet work. We don’t know that it contains but it serves our purpose. Since it is owned and managed by someone else, why diagram it out its details? Therefore the cloud computing concept, in all likelihood, may have been derived from this notion. A more elaborated Cloud computing structure is shown here.
Source: Wikipedia
All the elements inside the cloud – applications, platform, and infrastructure – are oblivious to the end users. All the users need is the access devices such as laptops, phones, tablets, etc. and network connectivity to the cloud that is mostly provided by Cloud service providers.
Let us look at some of the popular definitions of Cloud computing.
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility (like the electricity grid) over a network (typically the Internet). – Wikipedia |
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. – The National Institute of Standards and Technology (NIST) |
“Cloud Computing”, by definition, refers to the on-demand delivery of IT resources and applications via the Internet with pay-as-you-go pricing. – Amazon |
…the practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer. |
According to NIST, the cloud computing model is composed of five essential characteristics, three service models, and four deployment models.
Characteristics |
Service Models |
Deployment Models |
|
|
|
Cloud computing is the result of evolution of a number of key technology concepts such as virtualization, grid computing, multi-tenancy, scalability, and the exponential increase in computing power and storage.
Even though the origin of cloud computing is not exactly known, the analogy of cloud computing has been existed since 1950s when mainframe computers became available to perform high-volume computing processing. Mainframes were costly and bulky to use. Therefore to make more efficient use of them, a practice evolved that allowed a number of thin clients (or static computer terminals) to share the computing power of mainframes. And this is how “resource pooling” and “time-sharing” – key terms associated with cloud computing – came into common parlance.
The 1990s saw telecommunication service providers using virtual private network (VPN) to manage their network bandwidth effectively. Depending on the demand load, they would switch the traffic to the available servers. This process happened at the infrastructure and data centre level without the users being aware of it. The telecommunication service providers began to use the cloud symbol to demarcate the boundary between the network service providers and the users. In other words, it is akin to saying to end users, “You do not need to know where and how you get the network bandwidth as long as it is available to you uninterrupted. Leave it to us.” In essence, this is where the concept of Infrastructure-as-a-Service took roots.
The decade of 2000s saw the actual emergence and evolution of Cloud computing to its present form. Scientists and technologists explored ways to extend Cloud computing beyond applications and platforms. Technology companies made major breakthroughs in their Cloud products and services. This decade saw the introduction and popularization of “pay-as-you-go” pricing model. Gartner predicted that Cloud computing would change the relationship between consumers and providers of IT services. It also observed that “organizations are switching from company-owned hardware and software assets to per-use service-based models” so that the “projected shift to computing…will result in dramatic growth in IT products in some areas and significant reductions in other areas.”
Major cloud technology innovations were made in this decade. In 2008, OpenNebula came out with open-source software for deploying private and hybrid clouds. In 2008, Rackspace – another major player in Cloud space – launched OpenStack, an open-source cloud software. In 2011, IBM launched SmartCloud framework to support Smarter Planet. Companies such as Microsoft, Amazon, and Oracle also came out with your own Cloud products and services. Today most of the technology companies have some presence in the Cloud market space.
Today Cloud computing has become so ubiquitous that people are no longer talking about the potential or implementation-challenges of Cloud. The talk of the town is how Cloud platforms can be used for the next generation innovations such as Big Data, Internet of Things, Mobility, Analytics, Digitization, and Advanced Research. By removing the overhead of CAPEX, Cloud has made possible for innovators to use ready-made technology platform to test and roll-out their ideas quickly. In other words, it has reduced the time-to-market of ideas.
Cloud Service Models |
Examples/Providers |
|
Infrastructure-as-a-Service (IaaS) |
This is the most basic cloud service model where providers provide hardware capacities by demand. Key services provided are: virtual machines, servers, storage, load balancers, network, firewalls, IP addresses, virtual local area networks (VLANs). Users are billed according to the amount of resource allocated and consumed. |
Amazon web services, Rackspace, Cloud Scaling, Eucalyptus Systems, HP |
Platform-as-a-Service (PaaS) |
Cloud providers provide a computing platform to build applications without the need to buy hardware or software licenses. Typical services provided are: Operating System, Execution runtime environment, database, web server, development tools. |
Amazon web services, Google App Engine, Salesforce.com, Openstack, Rightscale |
Software-as-a-Service (SaaS) |
SaaS providers provide users access to application software and databases without the need to install on their devices. Cloud service providers manage the infrastructure and platforms that run the applications. This is usually priced on a pay-per-use basis. |
Salesforce.com, Oracle On Demand, AppDynamics, Microsoft Office 365 |
Unified Communications as a Service (UCaaS) |
In this model, multi-platform communications over the network are packaged by the service provider. The services could be in different devices, such as computers and mobile devices. Services may include IP telephony, unified messaging, video conferencing and mobile extension. |
Telesphere, Verizon, AT&T, Microsoft, Cisco |
TelePresence as a Service (TPaaS) |
Providers provide Telepresence as a service. |
TeleSpace |
Contact Center as a Service (CCaaS) |
Providers provide Contact Centre services such as interactive voice response, email, web and real-time chat as a service. |
Cisco HCS, Metro CSG |
Cloud Deployment Models |
||
Private Cloud |
Cloud infrastructure dedicated to a single customer (or organization), managed internally or by a third-party, and hosted internally or externally |
HP, Cisco Systems, Microsoft |
Public Cloud |
Cloud infrastructure resources shared by multiple customers. The services are rendered over the internet, and offered on pay-per-usage model. |
Salesforce.com, Amazon, Microsoft, Oracle, Google |
Hybrid Cloud |
Hybrid cloud is a combination of private, public and community cloud services. These services could be from different service providers. |
IBM, VMware, Rackspace, HP, Expedient, Eucalyptus |
Community Cloud |
Cloud infrastructure dedicated to a group of customers. |
Cloudian, CFN Services |
Distributed Cloud |
Cloud computing provided by a distributed set of machines that are running at different locations, while still connected to a single network or hub service. |
Amazon, Microsoft, Google |
Intercloud |
Interconnected global “cloud of clouds” |
Cisco |
Multicloud |
Multicloud refers to multiple cloud services that could be running in a single heterogeneous architecture. Multicloud is mostly used to reduce dependence on single vendor, and spread the risk across multiple service providers. |
A figurative representation of the above table is depicted below.
A clear segregation of each Cloud computing layers is shown here. At the top is the business and application services that are provided by SaaS layer. If an organization decides to develop the software in-house but does not have the necessary development platform, it can opt for PaaS. PaaS provides the platform to develop application software. The application software needs servers (for computing power), storage, and Operating System. These can be procured through IaaS. The network and communication services are provided through models such as UCaaS, TPaaS, and CSaaS.
The economies of scale are increasingly achieved as we move from Private to Public cloud model as the infrastructure is shared with a large pool of consumers.
Cloud computing offers multiple benefits. Some of the top reasons companies are adopting cloud are:
Cloud computing comes with its own sets of challenges and pitfalls.
Listed above are just few of the benefits and challenges. We will uncover more of them as we proceed in the next chapters.