Cloud Computing Overview and Principles
Cloud Computing Overview and Principles
Cloud Computing
(BMC014)
Faculty:
Dr. Brijesh Kr. Gupta
Prof., MCA Department
Lecture -1:
1.0. Introduction of Course Outcomes & Overview of the Syllabus
Cloud computing means storing and accessing the data and programs on remote servers that
are hosted on the internet instead of the computer’ shard drive or local server. Cloud
Computing is also referred to as Internet-based computing, it is a technology where
theresource is provided as a service through the Internet to the user. The data which is stored
canbefiles, images, documents, or any other storable document. Some operations which can be
performed with cloud computing are-
Storage, backup, and recovery of data
Deliveryof softwareondemand
Development of new applications and services
Streamingvideos andaudio
Cloud Computing is a general term used to describe a new class of network based computing that takes
place over the Internet, basically a step on from Utility Computing a collection/group of integrated and
networked hardware, software and Internet infrastructure (called a platform).
Characteristics of Cloud Computing:
1. Broad network access: The Computing services are generally provided over
standard networks and heterogeneous devices.
2. Rapid elasticity: The Computing services should have IT resources that are
able toscale out and in quickly and on as needed basis. Whenever the user
require services itisprovided to himand it is scaleout as soonas its
requirementgetsover.
3. Resource pooling: The IT resource (e.g., networks, servers, storage,
applications, and services) present are shared across multiple applications
committed manner. Multiple clients are provided service from a same
physical resource.
4. Measured service: The resource utilization is tracked for each application
and occupant, it will provide both the user and the resource provider with an
account ofwhat has been used. This is done for various reasons like
monitoring billing andeffectiveuse ofresource.
5. Multi-tenancy: Cloudcomputing providers cansupport multiple tenants(users
ororganizations)on asingleset ofshared resources.
6. Virtualization: Cloud computing providers use virtualization technology to
abstractunderlyinghardware resources andpresent themaslogical resources to
users.
7. Resilient Computing: Cloud computing services are typically designed with
redundancy and fault tolerance in mind, which ensures high availability and
reliability.
8. Flexible pricing models: Cloud providers offer a variety of pricing models,
includingpay-per-use, subscription-based, and spot pricing, allowing users to
choose the optionthatbest suits their needs.
Cloud computing is a utility oriented and Internet centric way of delivering IT services on
demand. These services cover the entire computing stack: from the hardware
infrastructure packaged as a set of virtual machines to software services such as
development platforms and distributed applications.
Lecture 2:
1.2.1 Evolution of Cloud Computing:
Cloud Computing is all about renting computing services. This idea first came in the
1950s. In making cloud computing what it is today, five technologies played a vital
role. These aredistributed systems and its peripherals, virtualization, web 2.0,
service orientation, and utility computing.
Mainframe Computing:
Mainframes which first came into existence in 1951 are highly powerful and
reliable computing machines. These are responsible for handling large data such as
massive input-output operations. Even today the seare used for bulk processing
tasks such as online transactions etc. These systems have almost no downtime with
high fault tolerance. Afterdistributed computing, these increased the processing
capabilities of the system. But these were very expensive. To reduce this cost,
cluster computing came as an alternative to mainframe technology.
Cluster Computing:
In 1980s, cluster computing came as an alternative to mainframe computing. Each
machine inthe cluster was connected to each other by a network with high
bandwidth. These were waycheaper than those mainframe systems. These were
equally capable of high [Link], new nodes could easily be added to the
cluster if it was required. Thus, the problem ofthe cost was solved to some extent
but the problem related to geographical restrictions [Link] solvethis,
theconceptofgrid computingwas introduced.
Grid Computing:
In 1990s, the concept of grid computing was introduced. It means that different
systems were placed at entirely different geographical locations were connected via
the internet. These systems belonged to different organizations and thus the grid
consisted ofheterogeneous nodes. Although it solved some problems but new
problems emerged as thedistance between the nodes increased. The main problem
which was encountered was the lowavailability of high bandwidth connectivity and
with it other network associated issues. Thus cloud computing is often referred to as
“Successor of grid computing”.
Virtualization:
It was introduced nearly 40 years back. It refers to the process of creating a virtual
layer over the hardware which allows the user to run multiple instances
simultaneously on the hardware. It is a key technology used in cloud computing. It
is the base on which major cloud computing services such as Amazon EC2,VMware
v Cloud, etc work on. Hardware virtualization is still one of the most common types
of virtualization.
Web2.0:
It is the interface through which the cloud computing services interact with the
clients. It isbecause of Web 2.0 that we have interactive and dynamic web
[Link] increasesflexibility among web pages. Popular examples of web 2.0
include Google Maps, Facebook,Twitter, etc. Needless to say, social media is
possible because of this technology only. Itgained majorpopularityin 2004.
Service Orientation:
It acts as a reference model for cloud computing. It supports low-cost, flexible, and
evolvableapplications. Two important concepts were introduced in this computing
model. These were Quality of Service(QoS) which also includes the SLA(Service
Level Agreement) and Software as a Service(SaaS).
Utility Computing:
It is a computing model that defines service provisioning techniques for services
such ascomputer services along with other major services such as storage,
infrastructure, etc which are provisioned on a pay-per-use basis.
Lecture: 3
1.3.1 Underlying Principles of Parallel and Distributed Computing
Parallel Computing:
In parallel computing multiple processors performs multiple tasks as signed to them
simultaneously. Memory in parallel systems can either be shared or distributed.
Parallelcomputingprovidesconcurrencyand saves timeand money.
Distributed Computing:
In distributed computing we have multiple autonomous computers which seems to
the user assingle system. In distributed systems there is no shared memory and
computers communicatewith each other through message passing. In distributed
computing a single task is dividedamongdifferentcomputers.
Difference between Parallel Computing and Distributed Computing:
[Link]. Parallel Computing Distributed Computing
Many operations are performed System components are located at different
1
simultaneously locations
MIMD computing system is a multi processor machine capable of executing multiple instructions on
multiple data sets. Each PE in the MIMD model has separate instruction and data streams, hence
machines built using this model are well suited to any kind of application. Unlike SIMD, MISD machine,
PEs in MIMD machines work asynchronously, MIMD machines are broadly categorized into shared-
memory MIMD and distributed memory MIMD based on the way PEs are coupled to the main memory.
Lecture 4:
1.4.1 Components of Distributed System:
A distributed system is the result of the interaction of several components that traverse the entire
computing stack from hardware to software. It emerges from the collaboration of several elements that-
by working together- give users the illusion of a single coherent system. The figure provides an overview
of the different layers that are involved in providing the services of a distributed system. At the very
bottom layer, computer and network hardware constitute the physical infrastructure; these components
are directly managed by the operating system, which provides the basic services for inter process
communication (IPC), process scheduling and management, and resource management in terms of file
system and local devices. Taken together these two layers become the platform on top of which
specialized software is deployed to turn a set of networked computers into a distributed system.
1.4.2 * History of Cloud Computing: (Pl. Refer 1.2.1)
• Two fundamental and dominant models of computing are sequential and parallel.
• The sequential era began in the 1940s, and Parallel( and distributed)
• computing era followed it within a decade.
• Four key elements of computing developed during three eras are
• Architecture
• Compilers
• Applications
• Problem solving environments
• The computing era started with development in hardware architectures, which actually enabled
the creation of system software – particularly in the area of compilers and operating systems –
which support the management of such systems and the development of applications.
Lecture : 5
1.5.1 . Cloud Reference Model:
Cloud computing supports any IT service that can be consumed as a utility and it is delivered through the
network, most likely the Internet. Such characterization includes quite different aspects: infrastructure,
development platforms, application and services.
Architecture:
It is possible to organize all the concrete realizations of Cloud computing into a layered view covering
the entire stack from the hardware appliances to software systems. Cloud resources are harnessed to offer
“computing/horse power” required for providing services. Often, this layer is implemented by using a
datacenter in which hundreds and thousands of nodes are stacked together.
Cloud infrastructure can be in heterogeneous nature as variety of resources such as clusters and even
networked PCs can be used to build it. Moreover, database systems and other storage services can also be
part of the infrastructure. The physical infrastructure is managed by the core middleware whose
objectives are to provide an appropriate runtime environment for applications and to utilize resources at
best.
At the bottom of the stack, virtualization technologies are used to guarantee runtime environment
customization, application isolation, sandboxing, and quality of service. Hardware virtualization is the
most commonly used at this level. Hypervisors manage the pool of resources and expose the distributed
infrastructure as a collection of virtual machines. By using virtual machine technology it is possible to
finely partition the hardware resources such as CPU, memory, and also virtualize specific devices, thus
meeting the requirement of users and applications.
Cloud Applications
Pure SaaS
SaaS
User
Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs
Adaptive Management
Middleware
Workflows , Libraries, Scripting
Cloud Resources
System
Infrastructure
The combination of Cloud hosting platforms and resources is generally classified as a Infrastructure-as-a-
Service (IaaS) solution.
Infrastructure-as-a-Service solutions are suitable for designing the system infrastructure but
provide limited services to build applications.
Such service is provided by Cloud programming environments and tools, which form a new layer
for offering to users a development platform for applications.
The range of tools include web based interfaces, command line tools, and frameworks for
concurrent and distributed programming.
In this scenario, users develop their applications specifically for the Cloud by using the API exposed at
the user-level middleware. For this reason, this approach is also known as Platform-as-a-Service (PaaS),
because the service offered to the user is a development platform rather than an infrastructure.
PaaS solutions generally include the infrastructure as well, that is bundled as part of the service
provided to users. In case of Pure PaaS only the user level middleware is offered and it has to be
complemented with a virtual or physical infrastructure.
The top layer of the reference model depicted in Figure in previous slide contains services
delivered at application level. These are mostly referred as Software-as-a-Service (SaaS).
In most of the cases these are web based applications that rely on the Cloud to provide service to end
users.
The horse power of the Cloud provided by IaaS and PaaS solutions allows independent software
vendors to deliver their application services over the Internet. Other applications belonging to this
layer are those strongly leveraging the Internet for their core functionalities that rely on the Cloud to
sustain a larger number of users; this is the case of gaming portals and in general social networking
web sites. As a vision, any service offered in the Cloud computing style, should be able to adaptively
change and expose an autonomic behavior; in particular for its availability and performance.
The reference model described in above Figure also introduces the concept of everything as a Service
(XaaS). This is one of the most important elements of Cloud computing: Cloud services from
different providers can be composed together in order to provide a completely integrated solution
covering all the computing stack of a system. Infrastructure-as-a-Service providers can offer the bare
metal in terms of virtual machines where Platform-as-a-Service solutions are deployed.
Lecture 6:
1.6.1. Types of Clouds:
Basic Concepts There are certain services and models working behind the scene making the cloud
computing feasible and accessible to end users. Following are the working models for cloud computing:
Deployment Models
Service Models
Deployment Models:
Deployment models define the type of access to the cloud, i.e., how the cloud is located?
Cloud can have any of the four types of access:
Public
Private,
Hybrid
Community
Public Cloud:
The Public Cloud allows systems and services to be easily accessible to the general public. Public cloud
may be less secure because of its openness, e.g., e-mail. Customers do not have any control over the
location of the infrastructure. The cost is shared by all users and is either free or in the form of a license
policy like pay per user.
Public clouds are great for organizations that require managing the host application and the various
applications users use.
Private Cloud :
The Private Cloud allows systems and services to be accessible within an organization. It offers increased
security because of its private nature. A private Cloud is a cloud infrastructure that is solely used by one
organization. It gives organizations greater control over security and data safeguarded by a firewall and
managed internally. It can be hosted internally or externally. Private clouds are great for organizations
that have high-security demands, high management demands, and uptime requirements.
Hybrid Cloud :
The Hybrid Cloud is mixture of public and private cloud. However, the critical activities are performed
using private cloud while the non- critical activities are performed using public cloud. Hybrid Cloud uses
both private and public clouds but can remain separate entities. Resources are managed and can be
provided either internally or by external providers. A hybrid cloud is great for scalability, flexibility, and
security. An example of this is an organization that can use the public cloud to interact with customers
while keeping their data secured through a private cloud.
Community Cloud :
The Community Cloud allows systems and services to be accessible by group of organizations. It is an
infrastructure that is mutually shared between organizations that belong to a particular community. The
community members generally share similar privacy, performance, and security concerns. An example of
this is a community cloud at banks, the government in a country, or trading firms. A community cloud
can be managed and hosted internally or by a third-party provider. A community cloud is good for
organizations that work on joint ventures that need centralized cloud computing ability for managing,
building, and executing their projects.
Service Models (Business Models) are the reference models on which the Cloud Computing is based.
These can be categorized into three basic service models as listed below:
1. Infrastructure as a Service (IaaS)
2. Platform as a Service (PaaS)
3. Software as a Service (SaaS)
Lecture 7:
1.7.1 Issues in Clouds:
Security Issues: Security is generally perceived as a huge issue for the cloud The survey found that
while 58 percent of the general population and 86 percent of senior business leaders are excited about the
potential of cloud computing, more than 90 percent of these same people are concerned about the
security, access and privacy of their own data in the cloud. There is a possibility where a malicious user
can penetrate the cloud by impersonating a legitimate user, there by infecting the entire cloud thus
affecting many customers who are sharing the infected cloud.
Some of the security problem which is faced by the Cloud computing, Data Integrity. When a data is on a
cloud anyone from any location can access those data’s from the cloud. Cloud does not differentiate
between a sensitive data from a common data thus enabling anyone to access those sensitive data’s. Thus
there is a lack of data integrity in cloud computing. Most of the cloud Vendors instead of acquiring a
server tries to lease a server from other service providers because they are cost affective and flexible for
operation. The customer doesn’t know about those things, there is a high possibility that the data can be
stolen from the external server by a malicious user.
Security on Vendor Level: Vendor should make sure that the server is well secured from all the external
threats it may come across. A Cloud is good only when there is a good security provided by the vendor to
the customers. Security on User level Even though the vendor has provided a good security layer for the
customer, the customer should make sure that because of its own action, there shouldn’t be any loss of
data or tampering of data for other users who are using the same Cloud. Security related to the
information exchanged between different hosts or between hosts and users. This issues pertaining to
secure communication, authentication , and issues concerning single sign on and delegation.
Physical Security: Physical location of data centres; protection of data centers against disaster and
intrusion. Data can be redundantly store in multiple physical location. Physical location should be
distributed across world. When user use the cloud, user probably won't know exactly where your data is
hosted, what country it will be stored in?
Traditional Security: These concerns involve computer and network intrusions or attacks that will be
made possible or at least easier by moving to the cloud. Concerns in this category include: Authentication
and Authorization. The enterprise authentication and authorization framework does not naturally extend
into the cloud. How does a company meld its existing framework to include cloud resources?
Furthermore, how does an enterprise merge cloud security data (if even available) with its own security
metrics and policies? VM-level attacks. - Potential vulnerabilities in the VM technology used by cloud
vendors are a potential problem in multi-tenant architectures.
Third-party data control Cloud Computing facilitates storage of data at a remote site to maximize
resource utilization. As a result, it is critical that this data be protected and only given to authorized
individuals. This essentially amounts to secure third party publication of data that is necessary for data
outsourcing, as well as external publications. The legal implications of data and applications being held
by a third party are complex and not well understood. There is also a potential lack of control and
transparency when a third party holds the data. All this is prompting some companies to build private
clouds to avoid these issues and yet retain some of the advantages of cloud computing.
Operational Security: Access control is a key concern, because insider attacks are a huge risk. A
potential hacker is someone who has been entrusted with approved access to the cloud. - Anyone
considering using the cloud needs to look at who is managing their data and what types of controls are
applied to these individuals.
Cloud Computing Attacks As more companies move to cloud computing, look for hackers to follow.
Some of the potential attack vectors criminals may attempt include: Denial of Service (DoS) attacks -
Some security professionals have argued that the cloud is more vulnerable to DoS attacks, because it is
shared by many users, which makes DoS attacks much more damaging. Twitter suffered a devastating
DoS attack during 2009. Side Channel attacks – An attacker could attempt to compromise the cloud by
placing a malicious virtual machine in close proximity to a target cloud server and then launching a side
channel attack. Authentication is a weak point in hosted and virtual services and is frequently targeted.
The mechanisms used to secure the authentication process and the methods used are a frequent target of
attackers. Man-in-the-middle cryptographic attacks – This attack is carried out when an attacker places
himself between two users. Anytime attackers can place themselves in the communication’s path, there is
the possibility that they can intercept and modify communications.
In the cloud environment, authentication and access control are more important than ever since the cloud
and all of its data are accessible to anyone over the Internet. The TPM(see note) can easily provide
stronger authentication than username and passwords. When a user is fired or reassigned, the customer’s
identity management system can notify the cloud provider in real-time so that the user’s cloud access can
be modified or revoked within second. If the fired user is logged into the cloud, they can be immediately
disconnected. Trusted Computing enables authentication of client PCs and other devices, which also is
critical to ensuring security in cloud computing.
Server-Side Protection. Virtual servers and applications, need to be secured both physically and logically.
organizational policies and procedures, hardening of the operating system and applications should occur
to produce virtual machine images for deployment. Care must also be taken to provision security for the
virtualized environments in which the images run. virtual firewalls can be used to isolate groups of
virtual machines from other hosted groups, such as production systems from development systems or
development systems from other cloud-resident systems Carefully managing virtual machine images is
also important to avoid accidentally deploying images under development or containing vulnerabilities.
be eventually reinstituted in a timely and organized manner. Trust : Incorporate mechanisms into the
contract that allow visibility into the security and privacy controls and processes employed by the cloud
provider, and their performance over time. Institute a risk management program that is flexible enough to
adapt to the continuously evolving and shifting risk landscape. Identity and Access Management Ensure
that adequate safeguards are in place to secure authentication, authorization, and other identity and access
management functions.
Energy Related Issues: Cloud computing is rapidly growing in importance as increasing numbers of
enterprises and individuals are shifting their workloads to cloud service providers. Services offered by
cloud providers such as Amazon, Microsoft, IBM, and Google are implemented on thousands of servers
spread across multiple geographically distributed data centers. The electricity costs involved in operating
a large cloud infrastructure of multiple data centers can be enormous. In fact, cloud service providers
often must pay for the peak power they draw, as well as the energy they consume.
Lowering these high operating costs is one of the challenges facing cloud service providers. Moreover,
there are other crucial problems that arise from high power consumption. Insufficient or malfunctioning
cooling system can lead to overheating of the resources reducing system reliability and devices lifetime.
In addition, high power consumption by the infrastructure leads to substantial carbon dioxide (CO 2)
emissions contributing to the greenhouse effect.
1.7.2 Eucalyptus
The open-source cloud refers to software or applications publicly available for the users in the cloud to
set up for their own purpose or for their organization.
Eucalyptus is a Linux-based open-source software architecture for cloud computing and also a storage
platform that implements Infrastructure as a Service (IaaS). It provides quick and efficient computing
services. Eucalyptus was designed to provide services compatible with Amazon’s EC2 cloud and
Simple Storage Service(S3).
Components of Architecture
Node Controller is the lifecycle of instances running on each node. Interacts with the
operating system, hypervisor, and Cluster Controller. It controls the working of VM instances
on the host machine.
Cluster Controller manages one or more Node Controller and Cloud Controller
simultaneously. It gathers information and schedules VM execution.
Storage Controller (Walrus) Allows the creation of snapshots of volumes. Persistent block
storage over VM instances. Walrus Storage Controller is a simple file storage system. It
stores images and snapshots. Stores and serves files using S3(Simple Storage Service) APIs.
Cloud Controller Front-end for the entire architecture. It acts as a Complaint Web Services
to client tools on one side and interacts with the rest of the components on the other side.
Eucalyptus Architecture
Eucalyptus can handle Amazon Web Services and their own private instances. Clients have the
independence to transfer cases from Eucalyptus to Amazon Elastic Cloud. The virtualization layer
oversees the Network, storage, and Computing. Occurrences are isolated by hardware virtualization.
Important Features are as per follows:
Images: A good example is the Eucalyptus Machine Image which is a module software
bundled and uploaded to the Cloud.
Instances: When we run the picture and utilize it, it turns into an instance.
Networking: It can be further subdivided into three modes: Static mode(allocates IP address
to instances), System mode (assigns a MAC address and imputes the instance’s network
interface to the physical network via NC), and Managed mode (achieves local network of
instances).
Access Control: It is utilized to give limitations to clients.
Elastic Block Storage: It gives block-level storage volumes to connect to an instance.
Auto-scaling and Load Adjusting: It is utilized to make or obliterate cases or
administrations dependent on necessities.
Lecture 8:
Nimbus is scalable to meet a variety of computational needs, and offers a range of processors, storage
solutions, and compute services. It can be used to build private clouds, or users can lease resources to use
the clouds. Nimbus is also intended to allow developers to experiment with the toolkit.
Nimbus is subject to the requirements of the Apache License, version 2. It was launched in 2005 by
Argonne National Laboratory, which is operated by the University of Chicago.
Nimbus Infrastructure is an open source EC2/S3-compatible IaaS solution with features that
benefit scientific community interests, like support for auto-configuring clusters, proxy
credentials, batch schedulers, best-effort allocations, etc.
Nimbus Platform is an integrated set of tools for a multi-cloud environment that automates and
simplifies the work with infrastructure clouds (deployment, scaling, and management of cloud
resources) for scientific users.
This toolkit is compatible with Amazon's Network Protocols via EC2 based clients, S3 REST API
clients, as well as SOAP API and REST API that have been implemented in Nimbus. Also it provides
support for X509 credentials, fast propagation, multiple protocols, and compartmentalized dependencies.
Nimbus features flexible user, group and workspaces management, request authentication and
authorization, and per-client usage tracking.
Any Application: Combine containerized applications from Kubernetes and Docker Hub
ecosystems with Virtual Machine workloads in a common shared environment to offer the best of both
worlds: mature virtualization technology and orchestration of application containers.
Any Infrastructure: Unlock the power of a true hybrid, edge and multi-cloud platform by
combining expanding your private cloud with infrastructure resources from third-party public cloud
and bare-metal providers such as AWS and Packet (Equinix Metal).
Any Virtualization: Integrate multiple types of virtualization technologies to meet your
workload needs, including VMware and KVM virtual machines for fully virtualized clouds, LXC
system containers for container clouds, and Firecracker microVMs for serverless deployments.
Any Time: Automatically add and remove new resources in order to meet peaks in demand, or to
implement fault-tolerant strategies or latency requirements.
• No capital investment involved. With a simulation tool like CloudSim there is no installation or
maintenance cost.
• Easy to use and Scalable. You can change the requirements such as adding or deleting resources
by changing just a few lines of code.
• Risks can be evaluated at an earlier stage. In Cloud Computing utilization of real testbeds
limits the experiments to the scale of the testbed and makes the reproduction of results an
extremely difficult undertaking. With simulation, you can test your product against test cases and
resolve issues before actual deployment without any limitations.
• No need for try-and-error approaches. Instead of relying on theoretical and imprecise
evaluations which can lead to inefficient service performance and revenue generation, you can
test your services in a repeatable and controlled environment free of cost with CloudSim.
Open source and free of cost, so it favors researchers/developers working in the field.
Easy to download and set-up.
It is more generalized and extensible to support modeling and experimentation.
Does not require any high-specs computer to work on.
Provides pre-defined allocation policies and utilization models for managing resources, and
allows implementation of user-defined algorithms as well.
The documentation provides pre-coded examples for new developers to get familiar with the
basic classes and functions.
Tackle bottlenecks before deployment to reduce risk, lower costs, increase performance, and raise
revenue.
Features of CloudSim:
CloudSim provides support for simulation and modeling of:
Large scale virtualized Datacenters, servers and hosts.
Customizable policies for provisioning host to virtual machines.
Energy-aware computational resources.
Application containers and federated clouds (joining and management of multiple public clouds).
Datacenter network topologies and message-passing applications.
Dynamic insertion of simulation entities with stop and resume of simulation.
User-defined allocation and provisioning policies.