Cloud Computing Notes
Cloud Computing Notes
Cloud computing means storing and accessing the data and programs on remote
servers that are hosted on the internet instead of the computer’s hard drive or
local server. Cloud computing is also referred to as Internet-based computing.
Cloud Computing Architecture: Cloud computing architecture refers to the
components and sub-components required for cloud computing. These
components typically refer to:
Front end (fat client, thin client)
Back-end platforms (servers, storage)
Cloud-based delivery and a network (Internet, Intranet, Intercloud).
Web Service
A web service is a set of open protocols and standards that allow data to be
exchanged between different applications or systems. Web services can be used
by software programs written in a variety of programming languages and
running on a variety of platforms to exchange data via computer networks such
as the Internet in a similar way to inter-process communication on a single
computer.
Functions of Web Services
It’s possible to access it via the internet or intranet networks.
XML messaging protocol that is standardized.
Operating system or programming language independent.
Using the XML standard, it is self-describing.
A simple location approach can be used to locate it.
Example: Flipkart offers a web service that displays prices for items offered on
Flipkart.com. The front end or presentation layer can be written in .Net or Java,
but the web service can be communicated using either programming language.
Web 2.0
Web 2.0 refers to worldwide websites which highlight user-generated content,
usability, and interoperability for end users. Web 2.0 is also called the
participative social web. It does not refer to a modification to any technical
specification, but to modify the way Web pages are designed and used. The
transition is beneficial but it does not seem that when the changes occur.
Interaction and collaboration with each other are allowed by Web 2.0 in a social
media dialogue as the creator of user-generated content in a virtual community.
Web 2.0 is an enhanced version of Web 1.0.
Five Major Features of Web 2.0:
1. Free sorting of information, permits users to retrieve and classify the
information collectively.
2. Dynamic content that is responsive to user input.
3. Information flows between the site owner and site users using evaluation
& online commenting.
4. Developed APIs to allow self-usage, such as by a software application.
5. Web access leads to concerns different, from the traditional Internet user
base to a wider variety of users.
Usage of Web 2.0 –
The social Web contains several online tools and platforms where people share
their perspectives, opinions, thoughts, and experiences. Web 2.0 applications
tend to interact much more with the end-user. As such, the end-user is not only
a user of the application but also a participant in these 8 tools mentioned below:
1. Podcasting
2. Blogging
3. Tagging
4. Curating with RSS
5. Social bookmarking
6. Social networking
7. Social media
8. Web content voting
Mashups
A mashup (computer industry jargon), in web development, is a web page or
web application that uses content from more than one source to create a single
new service displayed in a single graphical interface.
Advantages:
Using mashups has become an important and popular part of the web. It has
several benefits described below:
1. Providing aggregated content in one place so that users don’t have to
browse through different services.
2. A more rich, interactive user interface.
3. The development cycle is generally faster, due to the reason that
developers require less code to build them.
4. Promoting greater collaborations between companies/services.
5. The cost of developing a mashup website is comparatively lower because
of the reduced effort in application development.
Grid Computing
Grid Computing can be defined as a network of computers working together to
perform a task that would rather be difficult for a single machine. All machines
on that network work under the same protocol to act as a virtual supercomputer.
The task that they work on may include analysing huge datasets or simulating
situations that require high computing power. Computers on the network
contribute resources like processing power and storage capacity to the network.
Grid Computing is a subset of distributed computing, where a virtual
supercomputer comprises machines on a network connected by some bus,
mostly Ethernet or sometimes the Internet. It can also be seen as a form of
Parallel Computing where instead of many CPU cores on a single machine, it
contains multiple cores spread across various locations. The concept of grid
computing isn’t new, but it is not yet perfected as there are no standard rules
and protocols established and accepted by people.
Advantages of Grid Computing:
1. It is not centralized, as there are no servers required, except the control
node which is just used for controlling and not for processing.
2. Multiple heterogeneous machines i.e machines with different Operating
Systems can use a single grid computing network.
3. Tasks can be performed parallelly across various physical locations and
the users don’t have to pay for them (with money).
Disadvantages of Grid Computing:
1. The software of the grid is still in the involution stage.
2. A superfast interconnect between computer resources is the need of hour.
3. Licensing across many servers may make it prohibitive for some
applications.
4. Many groups are reluctant with sharing resources.
Utility Computing
Utility computing is a service provisioning model that offers computing
resources such as hardware, software, and network bandwidth to clients as and
when they require them on an on-demand basis. The service provider charges
only as per the consumption of the services, rather than a fixed charge or a flat
rate.
Utility computing is a subset of cloud computing, allowing users to scale up and
down based on their needs. Clients, users, or businesses acquire amenities such
as data storage space, computing capabilities, applications services, virtual
servers, or even hardware rentals such as CPUs, monitors, and input devices.
Hardware virtualization
Hardware virtualization is the method used to create virtual versions of physical
desktops and operating systems. It uses a virtual machine manager (VMM)
called a hypervisor to provide abstracted hardware to multiple guest operating
systems, which can then share the physical hardware resources more efficiently.
Hardware virtualization offers many benefits, such as better performance and
lower costs.
Virtual Appliances
A virtual appliance is a software application residing and operating in a
preconfigured virtual environment or platform. Virtual appliances are accessed
remotely by users and do not require locally-installed hardware.
Applications of all sizes and complexity can be hosted through remote
infrastructures. Virtual machines mirror typically installed computer OSs, but
do not contain software applications. In other words, a virtual appliance is
essentially a software appliance that is installed on a virtual machine.
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.
The move toward autonomic computing is driven by a desire for cost reduction
and the need to lift the obstacles presented by computer system complexities to
allow for more advanced computing technology. Autonomic computing was
implemented by IBM in 2001.
Characteristics
1. The Autonomic system knows itself. This means that it knows its
components, specifications capacity, and the real-time status. It also has
knowledge about its own, borrowed, and shared resources.
2. It can configure itself again and again and run its setup automatically as
and when required.
3. It has the capability of optimizing itself by fine-tuning workflows.
4. It can heal itself. This is a way of mentioning that it can recover from
failures.
5. It can protect itself by detecting and identifying various attacks on it.
6. It can open itself. This means that it must not be a proprietary solution
and must implement open standards.
7. It can hide. This means that it has the ability to allow resource
optimization, by hiding its complexity.
8. An autonomic system according to IBM must be able to know or expect
what kind of demand is going to arise for its resources to make it a
transparent process for the users to see this information.
Deployment Models
The cloud deployment model identifies the specific type of cloud environment
based on ownership, scale, and access, as well as the cloud’s nature and
purpose. The location of the servers you’re utilizing and who controls them are
defined by a cloud deployment model. It specifies how your cloud infrastructure
will look, what you can change, and whether you will be given services or will
have to create everything yourself. Relationships between the infrastructure and
your users are also defined by cloud deployment types.
1. Public Cloud
The public cloud makes it possible for anybody to access systems and services.
The public cloud may be less secure as it is open for everyone. The public cloud
is one in which cloud infrastructure services are provided over the internet to
the general people or major industry groups. The infrastructure in this cloud
model is owned by the entity that delivers the cloud services, not by the
consumer. It is a type of cloud hosting that allows customers and users to easily
access systems and services. This form of cloud computing is an excellent
example of cloud hosting, in which service providers supply services to a
variety of customers. In this arrangement, storage backup and retrieval services
are given for free, as a subscription, or on a per-use basis. Example: Google
App Engine etc.
Advantages of the public cloud model:
Minimal Investment: Because it is a pay-per-use service, there is no
substantial upfront fee, making it excellent for enterprises that require
immediate access to resources.
No setup cost: The entire infrastructure is fully subsidized by the cloud
service providers, thus there is no need to set up any hardware.
Infrastructure Management is not required: Using the public cloud does
not necessitate infrastructure management.
No maintenance: The maintenance work is done by the service provider
(Not users).
Dynamic Scalability: To fulfill your company’s needs, on-demand
resources are accessible.
2. Private Cloud
The private cloud deployment model is the exact opposite of the public cloud
deployment model. It’s a one-on-one environment for a single user (customer).
There is no need to share your hardware with anyone else. The distinction
between private and public cloud is in how you handle all of the hardware. It is
also called the “internal cloud” & it refers to the ability to access systems and
services within a given border or organization. The cloud platform is
implemented in a cloud-based secure environment that is protected by powerful
firewalls and under the supervision of an organization’s IT department.
The private cloud gives the greater flexibility of control over cloud resources.
Advantages of the private cloud model:
Better Control: You are the sole owner of the property. You gain
complete command over service integration, IT operations, policies, and
user behaviour.
Data Security and Privacy: It’s suitable for storing corporate information
to which only authorized staff have access. By segmenting resources
within the same infrastructure, improved access and security can be
achieved.
Supports Legacy Systems: This approach is designed to work with legacy
systems that are unable to access the public cloud.
Customization: Unlike a public cloud deployment, a private cloud allows
a company to tailor its solution to meet its specific needs.
3. Hybrid cloud
By bridging the public and private worlds with a layer of proprietary software,
hybrid cloud computing gives the best of both worlds. With a hybrid solution,
you may host the app in a safe environment while taking advantage of the
public cloud’s cost savings. Organizations can move data and applications
between different clouds using a combination of two or more cloud deployment
methods, depending on their needs.
Advantages of the hybrid cloud model:
Flexibility and control: Businesses with more flexibility can design
personalized solutions that meet their particular needs.
Cost: Because public clouds provide for scalability, you’ll only be
responsible for paying for the extra capacity if you require it.
Security: Because data is properly separated, the chances of data theft by
attackers are considerably reduced.
4. Community cloud
It allows systems and services to be accessible by a group of organizations. It is
a distributed system that is created by integrating the services of different clouds
to address the specific needs of a community, industry, or business. The
infrastructure of the community could be shared between the organization
which has shared concerns or tasks. It is generally managed by a third party or
by the combination of one or more organizations in the community.
Advantages of the community cloud model:
Cost Effective: It is cost-effective because the cloud is shared by multiple
organizations or communities.
Security: Community cloud provides better security.
Shared resources: It allows you to share resources, infrastructure, etc.
with multiple organizations.
Collaboration and data sharing: It is suitable for both collaboration and
data sharing.
Service Models
Cloud Computing can be defined as 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. Companies offering such kinds of cloud
computing services are called cloud providers and typically charge for cloud
computing services based on usage. Grids and clusters are the foundations for
cloud computing.
1. Software as a Service(SaaS)
Software-as-a-Service (SaaS) is a way of delivering services and applications
over the Internet. Instead of installing and maintaining software, we simply
access it via the Internet, freeing ourselves from the complex software and
hardware management. It removes the need to install and run applications on
our own computers or in the data centers eliminating the expenses of hardware
as well as software maintenance.
SaaS provides a complete software solution that you purchase on a pay-as-you-
go basis from a cloud service provider. Most SaaS applications can be run
directly from a web browser without any downloads or installations required.
The SaaS applications are sometimes called Web-based software, on-demand
software, or hosted software.
Advantages of SaaS
Cost-Effective: Pay only for what you use.
Reduced time: Users can run most SaaS apps directly from their web
browser without needing to download and install any software. This
reduces the time spent in installation and configuration and can reduce
the issues that can get in the way of the software deployment.
Accessibility: We can Access app data from anywhere.
Automatic updates: Rather than purchasing new software, customers rely
on a SaaS provider to automatically perform the updates.
Scalability: It allows the users to access the services and features on-
demand.
The various companies providing Software as a service are Cloud9 Analytics,
Salesforce.com, Cloud Switch, Microsoft Office 365, Big Commerce, Eloqua,
dropBox, and Cloud Tran.
Examples of SaaS
Google Workspace (formerly GSuite)
Dropbox.
Salesforce.
Cisco WebEx.
SAP Concur.
GoToMeeting.
2. Platform as a Service
PaaS is a category of cloud computing that provides a platform and environment
to allow developers to build applications and services over the internet. PaaS
services are hosted in the cloud and accessed by users simply via their web
browser.
A PaaS provider hosts the hardware and software on its own infrastructure. As a
result, PaaS frees users from having to install in-house hardware and software to
develop or run a new application. Thus, the development and deployment of the
application take place independent of the hardware.
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. To make it simple, take the example of an
annual day function, you will have two options either to create a venue or to
rent a venue but the function is the same.
Advantages of PaaS:
Simple and convenient for users: It provides much of the infrastructure
and other IT services, which users can access anywhere via a web
browser.
Cost-Effective: It charges for the services provided on a per-use basis
thus eliminating the expenses one may have for on-premises hardware
and software.
Efficiently managing the lifecycle: It is designed to support the complete
web application lifecycle: building, testing, deploying, managing, and
updating.
Efficiency: It allows for higher-level programming with reduced
complexity thus, the overall development of the application can be more
effective.
The various companies providing Platform as a service are Amazon Web
services Elastic Beanstalk, Salesforce, Windows Azure, Google App Engine,
cloud Bess and IBM smart cloud.
3. Infrastructure as a Service
Infrastructure as a service (IaaS) is a service model that delivers computer
infrastructure on an outsourced basis to support various operations. Typically
IaaS is a service where infrastructure is provided as outsourcing to enterprises
such as networking equipment, devices, database, and web servers.
It is also known as Hardware as a Service (HaaS). IaaS customers pay on a per-
user basis, typically by the hour, week, or month. Some providers also charge
customers based on the amount of virtual machine space they use.
It simply provides the underlying operating systems, security, networking, and
servers for developing such applications, and services, and deploying
development tools, databases, etc.
Advantages of IaaS:
Cost-Effective: Eliminates capital expense and reduces ongoing cost and
IaaS customers pay on a per-user basis, typically by the hour, week, or
month.
Website hosting: Running websites using IaaS can be less expensive than
traditional web hosting.
Security: The IaaS Cloud Provider may provide better security than your
existing software.
Maintenance: There is no need to manage the underlying data center or
the introduction of new releases of the development or underlying
software. This is all handled by the IaaS Cloud Provider.
The various companies providing Infrastructure as a service are Amazon web
services, Bluestack, IBM, Openstack, Rackspace, and Vmware.
User Interface: The user interface refers to all the things that end-user
access to send requests or perform any task on the Cloud. Some of the
popular cloud-based user interfaces are Google Doc, Gmail, etc.
Software: The software architecture in the front end is the software that
runs on the user’s end. Frontend software architecture primarily
comprises client-side applications or browsers.
Client Device or Network: Being a crucial part of the frontend
architecture, Client Device or Network refers to the hardware at the end
user’s side. It can be any input device or PC. In cloud computing, the
client-side device doesn’t require extraordinary ability to process the
heavy load. The cloud can take the entire heavy load and processes the
same.
2. Backend:
The backend architecture in the cloud empowers the frontend architecture. It
comprises hardware & storage and they are located on a remote server. The
cloud service provider controls and handles this backend cloud architecture.
Ideal backend cloud architecture always should be robust as it holds the whole
infrastructure on the cloud. The prime components of backend cloud
architecture are:
Application: The Application is a substantial part of the backend
architecture. It refers to the user interface that the backend offers to the
end-user to send queries. This layer of the backend takes care of the
client’s requests and requirements.
Cloud Runtime: The term ‘Cloud Runtime’ is the concept where the
services run. It’s like a cloud operating system where technology like
virtualization is used. Virtualization as a key technology on the cloud
which allows multiple runtimes on the same server. For instance,
virtualization is a way via which we can create a base of software. In
simple words, it’s the virtual representation of apps, servers, storage as
well as networks. When we create runtimes with the support of
virtualization software, they are called as Hypervisors. Some of the
leading hypervisors are Oracle Virtual Box, Oracle VM for x86,
VMWare Fusion, etc.
Infrastructure: The engine that steers all the cloud software services is
called infrastructure. It includes CPU, Motherboard, Graphics Processing
Unit (GPU), network cards, accelerator cards, etc. The infrastructure
models always depend on the workloads of the clients.
3. Cloud-based Delivery
In layman’s language, cloud-based delivery is anything we are offering to the
end-users from the cloud via some software, infrastructure, and platforms. We
can deliver cloud computing services via the below-mentioned models:
Platform as a Service (PaaS): This model offers a platform that allows the
end-users to develop, run as well as manage applications on the cloud.
In PaaS, a third-party service provider facilitates hardware & software
tools.
Compute (server)
Networking
Storage
Virtualization resources
1. Provisioning and configuration:
Developers, systems engineers and other IT professionals use these tools to set
up and configure the hardware and software resources they need. This would
include:
2. Visibility and monitoring:
Check system health
Deliver real-time alerts and notifications
Create reporting and analytics
3. Resource allocation:
4. Cost optimization:
5. Automation:
6. Security: