1 Introduction to Cloud Computing

1.1 What is Cloud Computing?

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.

http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Cloud_computing.svg/400px-Cloud_computing.svg.png

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.

 Google

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

  • On-demand self-service
  • Broad network access
  • Resource pooling
  • Rapid elasticity
  • Measured service
  • Software as a Service (SaaS)
  • Platform as a Service (Paas)
  • Infrastructure as a Service (IaaS)
  • Public Cloud
  • Private Cloud
  • Community Cloud
  • Hybrid Cloud

1.2 Cloud Computing History

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.

1.3 Types of Cloud Computing

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.

1.4 Benefits and Challenges

Cloud computing offers multiple benefits. Some of the top reasons companies are adopting cloud are:

  • Cost effective: Cloud computing services help in cost savings because you pay only for what you consume. The additional overheads of maintaining CAPEX is removed.
  • Ease of implementation: Cloud services are easy to procure and implement. All you need is a subscription to the cloud services and network connectivity to the cloud. The cloud service provider is responsible for the installation, upkeep and maintenance of the cloud environment.
  • Secure & Reliable: Cloud services are generally considered to be secure and reliable as long as extremely sensitive data is not hosted on cloud.
  • Flexibility & Scalability: One of the biggest benefits of cloud is that it is highly flexible and scalable. One can scale up the computing requirements based on the business demand. And if you no longer need the service, you can scale down the usage too.
  • Interoperability: Cloud interoperability means the ability of applications to move from one cloud environment to the next (e.g. switching between public and private cloud), or the ability of applications running in different clouds to share information. Nowadays customers can use the same management tools with variety of cloud computing platforms and providers.

Cloud computing comes with its own sets of challenges and pitfalls.

  • Security: One of the biggest challenges of cloud computing is its perceived security risks. There is a general notion that anything hosted on cloud is not safe and secure; they are vulnerable to hackings and data compromise.
  • Data Governance: If the data is stored on cloud servers, the enterprise may not be accurately aware of the physical location of the servers. Therefore it becomes extremely challenges to provide data governance. Another point of debate is who owns the data stored in cloud. Is it the cloud service providers or the cloud service consumers? The cloud service providers may demand significant extra service fee to return the date to the organizations.
  • Multi-tenancy: If the same cloud environment is used as multi-tenancy (sharing of cloud infrastructure/applications by multiple organizations), security and privacy comes a major concern for organizations.
  • Data Privacy and Integrity: As users, we are mostly concerned with data privacy. How do we know that our sensitive personal information is not sold by the cloud service provider to a third-party?
  • Regulatory compliance: Nowadays regulations require that sensitive corporate or user data cannot be stored in a cloud environment hosted in a different country. There are compliance challenges around data location or cloud security policies. Privacy laws, Payment Card Industry (PCI) requirements, or financial reporting laws are some of the compliance requirements that organizations need to abide by.
  • Disaster Recovery: It is a concern of enterprises about the resiliency of cloud computing as data may reside in multiple servers and geographical locations. In such a situation, what is the disaster recovery plan if any of the servers go down? What if we lose data at a point in time due to server failure? Organizations therefore are extremely concerned on the disaster recovery plan.

Listed above are just few of the benefits and challenges. We will uncover more of them as we proceed in the next chapters.