Mod 1 M
Mod 1 M
By Surabika Hota
Asst Prof(CSE)
GIFT Autonomous College, BBSR
What is Cloud Computing?
The term cloud refers to a network or the internet. It is a technology that uses remote
servers on the internet to store, manage, and access data online rather than local drives.
The data can be anything such as files, images, documents, audio, video, and more.
• Cloud computing allows users to access powerful computing resources without the
need for expensive hardware or IT infrastructure.
• It also allows businesses to scale their computing resources up or down as needed, and
to pay only for the resources they use on a pay-per-use basis.
• Overall, cloud computing has revolutionized the way businesses and individuals access
and use computing resources, and has become an essential part of the modern IT
landscape.
Steps to follow how cloud computing works…………………
The user accesses the cloud service: The user accesses the cloud service
through a web browser, mobile app, or software client.
The request is sent to the provider's data center: The user's request is sent
over the internet to the provider's data center, where it is processed and
fulfilled.
The provider's data center processes the request: The provider's data center
uses a combination of software and hardware resources, such as servers,
storage, and networking equipment, to process the user's request.
The response is sent back to the user: Once the request has been processed,
the provider's data center sends the response back to the user over the
internet.
The user can access and use the service: The user can then access and use
the service, such as storing and retrieving files or running applications, through
the web browser, mobile app, or software client.
Overview of existing hosting platforms
There are numerous hosting platforms available in cloud computing, and here's an overview of some of the most popular ones:
• Amazon Web Services (AWS): AWS is a cloud computing platform provided by Amazon. It offers a broad range of services, including
compute, storage, databases, analytics, and machine learning. AWS is known for its scalability and reliability, and it's often used by large
enterprises and startups alike.
• Microsoft Azure: Microsoft Azure is a cloud computing platform provided by Microsoft. It offers a broad range of services, including
compute, storage, databases, analytics, and machine learning. Azure is known for its integration with Microsoft's other products,
including Windows and Office.
• Google Cloud Platform (GCP): GCP is a cloud computing platform provided by Google. It offers a broad range of services, including
compute, storage, databases, analytics, and machine learning. GCP is known for its machine learning capabilities and its integration with
Google's other products, including Google Drive and Google Workspace.
• IBM Cloud: IBM Cloud is a cloud computing platform provided by IBM. It offers a broad range of services, including compute, storage,
databases, analytics, and machine learning. IBM Cloud is known for its enterprise-level security and compliance capabilities.
• DigitalOcean: DigitalOcean is a cloud computing platform focused on developers and startups. It offers a simple and easy-to-use
interface and a broad range of services, including compute, storage, databases, and networking.
• Heroku: Heroku is a cloud computing platform focused on application development and deployment. It offers a simple and easy-to-use
interface and supports multiple programming languages, including Ruby, Python, and [Link].
• Alibaba Cloud: Alibaba Cloud is a cloud computing platform provided by Alibaba Group. It offers a broad range of services, including
compute, storage, databases, analytics, and machine learning. Alibaba Cloud is known for its strong presence in China and its ability to
handle high traffic volumes.
Overall, each of these hosting platforms offers unique features and capabilities, and businesses should carefully evaluate their needs and
requirements when selecting a cloud computing provider.
Cloud Computing Architecture
It is a combination of service oriented architecture and event driven architecture.
It has two parts.
Front end
Back end
Front End
The front end is used by the client. It contains client-side interfaces and applications that are required
to access the cloud computing platforms. The front end includes web servers (including Chrome,
Firefox, internet explorer, etc.), thin & fat clients, tablets, and mobile devices.
Back End
The back end is used by the service provider. It manages all the resources that are required to provide
cloud computing services. It includes a huge amount of data storage, security mechanism, virtual
machines, deploying models, servers, traffic control mechanisms, etc.
Components of Cloud computing Architecture
1. Client Infrastructure
Client Infrastructure is a Front end component. It provides GUI (Graphical User Interface) to
interact with the cloud.
2. Application
The application may be any software or platform that a client wants to access.
3. Service
A Cloud Services manages that which type of service you access according to the client’s
requirement.
Cloud computing offers the following three type of services:
i. Software as a Service (SaaS) – It is also known as cloud application services. Mostly, SaaS
applications run directly through the web browser means we do not require to download and
install these applications. Some important example of SaaS is given below –
Example: Google Apps, Salesforce Dropbox, Slack, Hubspot, Cisco WebEx.
ii. Platform as a Service (PaaS) – It is also known as cloud platform services. It is quite similar to
SaaS, but the difference is that PaaS provides a platform for software creation, but using SaaS, we
can access software over the internet without the need of any platform.
Example: Windows Azure, [Link], Magento Commerce Cloud, OpenShift.
iii. Infrastructure as a Service (IaaS) – It is also known as cloud infrastructure services. It is
responsible for managing applications data, middleware, and runtime environments.
Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE), Cisco Metapod.
Components of Cloud computing Architecture
4. Runtime Cloud
Runtime Cloud provides the execution and runtime environment to the virtual machines.
5. Storage
Storage is one of the most important components of cloud computing. It provides a huge
amount of storage capacity in the cloud to store and manage data.
6. Infrastructure
It provides services on the host level, application level, and network level. Cloud infrastructure
includes hardware and software components such as servers, storage, network devices,
virtualization software, and other storage resources that are needed to support the cloud
computing model.
7. Management
Management is used to manage components such as application, service, runtime cloud,
storage, infrastructure, and other security issues in the backend and establish coordination
between them.
8. Security
Security is an in-built back end component of cloud computing. It implements a security
mechanism in the back end.
9. Internet
The Internet is medium through which front end and back end can interact and communicate
with each other.
Grid Computing
• Grid computing is a type of computing that involves the coordination and sharing of computing
resources such as processing power, storage, and network bandwidth, across multiple
organizations and geographically dispersed locations.
• The goal of grid computing is to create a virtual computing environment that allows users to
access and utilize resources from different locations as if they were in the same physical location.
This is achieved through the use of middleware software that allows different hardware and
software systems to work together seamlessly.
• Grid computing is often used for scientific, engineering, and business applications that require
large amounts of computing power and storage capacity. It enables researchers to collaborate on
large-scale experiments, conduct simulations, and analyze vast amounts of data.
• Some examples of grid computing projects include the Large Hadron Collider at CERN, which uses
a grid infrastructure to process and analyze the massive amounts of data produced by the
experiments, and the Folding@home project, which uses grid computing to study protein folding
and help develop new drugs.
A grid infrastructure typically consists of the following
components:
Resource Providers: These are organizations that contribute computing resources to the grid
infrastructure, such as processing power, storage, and network bandwidth.
Middleware: This is software that enables different hardware and software systems to work
together seamlessly. It provides services such as job scheduling, data management, and security.
Grid Services: These are services that enable users to access and utilize resources on the grid
infrastructure. Examples of grid services include job submission and monitoring, data transfer, and
authentication.
User Interfaces: These are interfaces that allow users to interact with the grid infrastructure,
submit jobs, monitor progress, and retrieve results.
Grid Operations: This is the management and maintenance of the grid infrastructure, including
monitoring performance, troubleshooting issues, and upgrading hardware and software.
Grid infrastructures can be organized into different types of grids, such as computational grids,
data grids, and collaboration grids, depending on the type of resources they provide and the
applications they support.
Some examples of grid infrastructures include the Open Science Grid, which provides a national
grid infrastructure for scientific research in the United States, and the European Grid Infrastructure,
which provides a distributed computing infrastructure for researchers in Europe.
Difference between Cloud Computing and Grid
Computing
Cloud computing and grid computing are two different paradigms for utilizing computing resources. While they have some
similarities, they differ in several key ways:
Resource Ownership: In cloud computing, resources such as computing power, storage, and network bandwidth are owned
and managed by a service provider who makes them available to customers on a pay-per-use basis. In grid computing,
resources are owned by different organizations and are shared across multiple locations and administrative domains.
Resource Provisioning: Cloud computing is characterized by a centralized approach to resource provisioning, where the
service provider manages and allocates resources dynamically based on customer demand. In contrast, grid computing
relies on a more decentralized approach, where individual resource providers manage their own resources and make them
available to the grid as needed.
Scalability: Cloud computing is designed to be highly scalable, with the ability to rapidly provision and de-provision
resources in response to changing demand. Grid computing is generally less scalable, as it relies on a limited set of resources
that are shared across multiple applications and users.
Service Level Agreements (SLAs): Cloud computing typically provides customers with SLAs that guarantee a certain level of
performance, availability, and security. In grid computing, SLAs are generally less formalized, as resources are shared among
multiple organizations and there may be no single entity responsible for ensuring service quality.
Applications: Cloud computing is often used for general-purpose applications such as web hosting, data storage, and
software development. Grid computing is typically used for more specialized applications such as scientific computing,
where large amounts of computing power and data storage are required.
In summary, cloud computing and grid computing are different paradigms for utilizing computing resources. While cloud
computing is characterized by a centralized approach to resource management and a focus on scalability and SLAs, grid
computing relies on a more decentralized approach to resource provisioning and is often used for specialized applications
that require large amounts of computing power and data storage.
Utility Computing
Utility computing is the most trending IT service model. It provides on-demand computing
resources (computation, storage, and programming services via API) and infrastructure
based on the pay per use method. It minimizes the associated costs and maximizes the
efficient use of resources. The advantage of utility computing is that it reduced the IT
cost, provides greater flexibility, and easier to manage.
Large organizations such as Google and Amazon established their own utility services for
computing storage and application.
Grid computing, Cloud computing, as well as managed IT services follow the concept of
utility computing.
Autonomic Computing
Autonomic computing is a computer’s ability to manage itself automatically
through adaptive technologies that further computing capabilities and cut
down on the time required by computer professionals to resolve system
difficulties and other maintenance such as software updates.
Self-Configuration: The system must be able to configure itself
automatically according to the changes in its environment.
Self-Healing: IBM mentions that an autonomic system must have property
by which it must be able to repair itself from errors and also route the
functions away from trouble whenever they are encountered.
Self-Optimization: According to IBM an autonomic system must be able to
perform in an optimized manner and ensure that it follows an efficient
algorithm for all computing operations.
Self-Protection: the IBM States that an autonomic system must be able to
perform detection, identification, and protection from the security and
system attacks so that systems’ security and integrity remain intact.
The Autonomic Computing must involve the following 3 properties :
• Automatic: It must be able to execute its operations without human intervention.
• Adaptive: Autonomic computers must be able to make changes according to their environment and
other unforeseen conditions such as security attacks and system breakdowns.
• Aware: it must also have awareness of the processes and internal states that would allow the
previous two features to be executed.
Relatively easy
to use as Difficult to use
Complex and
Very easy to members help if the system
Ease of use requires an in- Easy to use
use solve problems was not set up
house team
and establish properly
protocols
Very high as
Low, most Very high as
there are no Fixed capacity
providers offer there are no High (with the
Scalability other tenants in limits
limited other system right setup)
your segment scalability
resources tenants
of the cloud
Prone to Prone to
High (with the Depends on High (with the
Reliability failures and failures and
right team) the community right setup)
outages outages
High (if
Very high as
Very low, not a Very high, ideal Very low, not a members
Security and you keep the
good fit for for corporate good fit for collaborate on
privacy data on a
sensitive data data sensitive data security
private cloud
policies)
Little to no
Little
flexibility,
Less than a flexibility,
service
Setup private cloud, setups are
providers Very flexible Very flexible
flexibility more than a usually
usually offer
public one predefined to an
only predefined
extent
setups
Cheaper than a
Very Members share private model,
Cost Very expensive Affordable
Inexpensive the costs pricier than a
public one
In-house In-house
Demand for
hardware is not hardware is not
in-house No No No
a must but is a must but is
hardware
preferable preferable
Cloud Service Models
There are the following three types of cloud service models -
Infrastructure as a Service (IaaS)
Platform as a Service (PaaS)
Software as a Service (SaaS)
Infrastructure as a service(IaaS)
• IaaS is also known as Hardware as a Service (HaaS). It is a computing infrastructure
managed over the internet. The main advantage of using IaaS is that it helps users to avoid
the cost and complexity of purchasing and managing the physical servers.
• Infrastructure as a Service (IAAS) is a form of cloud computing that provides virtualized
computing resources over the internet. In an IAAS model, a third party provider hosts
hardware, software, servers, storage and other infrastructure components on the behalf
of its users. IAAS providers also host users’ applications and handle tasks including system
maintenance backup and resiliency planning.
Characteristics of IaaS
There are the following characteristics of IaaS -
Resources are available as a service
Services are highly scalable
Dynamic and flexible
GUI and API-based access
Automated administrative tasks
Example: DigitalOcean, Linode, Amazon Web Services (AWS), Microsoft Azure, Google
Compute Engine (GCE), Rackspace, and Cisco Metacloud.
Platform as a Service(PaaS)
• PaaS cloud computing platform is created for the programmer to develop, test, run, and manage the applications.
• Platform as a Service (PAAS) is a cloud computing model that delivers applications over the internet. In a PAAS
model, a cloud provider delivers hardware and software tools, usually those needed for application development,
to its users as a service.
• PAAS doesn’t replace a business’ entire infrastructure but instead, a business relies on PAAS providers for key
services, such as Java development or application hosting. A PAAS provider, however, supports all the underlying
computing and software
Characteristics of PaaS
There are the following characteristics of PaaS -
Accessible to various users via the same development application.
Integrates with web services and databases.
Builds on virtualization technology, so resources can easily be scaled up or down as per the organization's need.
Support multiple languages and frameworks.
Provides an ability to "Auto-scale".
Scalability and auto-provisioning of the underlying infrastructure.
Security and redundancy.
Build and deployment tools for rapid application management and deployment.
Integration with other infrastructure components such as web services, databases, and LDAP.
Multi-tenancy, platform service that can be used by many concurrent users.
Logging, reporting, and code instrumentation.
Management interfaces and/or API.
Example: AWS Elastic Beanstalk, Windows Azure, Heroku, [Link], Google App Engine, Apache Stratos,
Magento Commerce Cloud, and OpenShift.
Software as a Service(SaaS)
• SaaS is also known as "on-demand software". It is a software in which the applications are hosted by a cloud service
provider. Users can access these applications with the help of internet connection and web browser.
• Software as a Service(SAAS) is a software distribution model in which applications are hosted by a vendor or service
provider and made available to customers over a network, typically the Internet.
• SAAS has become an increasingly prevalent delivery model as underlying technologies that support Web services and
service-oriented architecture (SOA) mature and new development approaches, such as Ajax, become popular.
Characteristics of SaaS
There are the following characteristics of SaaS -
• Managed from a central location
• Hosted on a remote server
• Accessible over the internet
• Users are not responsible for hardware and software updates. Updates are applied automatically.
• The services are purchased on the pay-as-per-use basis
• Easier administration.
• Automatic updates and patch management.
• Compatibility: all users will have the same version of software.
• Easier collaboration, for the same reason.
• Global accessibility.
Example: BigCommerce, Google Apps, Salesforce, Dropbox, ZenDesk, Cisco WebEx, ZenDesk, Slack, and GoToMeeting.
Comparison between different cloud services
OpenStack
Some of the top five reasons for CIOs during their selection of open source cloud computing technologies include flexibility
and openness. Standardization, on the other hand, has become more important and is one of the major drivers in the
deployment of open source cloud technologies.
Thus, OpenStack qualifies to be among the upcoming cloud infrastructure software.
Experts advise companies to develop modern and sustainable environments based on efficiency, reliability and openness
principles. With this in mind, a stage for the implementation of multi-cloud and hybrid cloud infrastructure scenarios was set
by CIOs.
This was to assist the IT departments to introduce and enforce holistic DevOps Services. DevOps plays a vital role in the PaaS
adaptation processes and development of applications for the cloud. It also leads to improved speeds, which in turn
improves the competitive edge of a business.
The following are some of the leading users who have put modern open source software into play to assist them in running
their IT environments efficiently and as their way of becoming future oriented environments.
Cloud Foundry
Cloud Foundry is in the leading position when it comes to developing platform-as-a-service. Pivotal, a spin-off
by EMC/VMware initialized the project. Organizations mostly use Cloud Foundry in hosted environments to
deploy a private PaaS environment.
Also, MSPs uses Cloud Foundry when offering PaaS in a hosted environment. OpenStack and PaaS play a very
crucial role in building highly-available and scalable PaaS platforms.
KVM
KVM, also known as Kernel-based Virtual Machine enjoys a high priority within the open source
community. When it comes to infrastructure solutions like Open Source and openQRM, it is the
preferred hypervisor. KVM represents cost efficiency, thus making it the best option to commercial
offerings like Microsoft Hyper-V and the VMware ESX.
The market share of KVM stands at 12%, and because of this, it is used as the foundation for
virtualization solutions by Red Hat. Currently, CIOs are looking for a cheaper solution to virtualize their
infrastructure, and it is believed that the standard hypervisor KVM will be integrated with Openstack to
achieve this.
Docker
Docker was the shooting star in 2016. The container technology is supported by major players like Google,
AWS, and Microsoft and it is still gathering momentum. Docker came as a by-product during the development
of PaaSdotCloud. It looks like a pure tool for developers at first glance.
Docker improves applications portability by enabling the movement of loosely joined applications that are
found in containers. Many experts in the IT industry agree that Docker is a strategic tool for optimizing modern
application deployments. Docker assists in increasing the portability of an application, increase availability and
decrease risks.