Cloud Computing Notes(Unit-1 to 5)
Cloud Computing Notes(Unit-1 to 5)
TECHNOLOGY MEERUT
Course Content
For
Cloud Computing (KCS – 713)
B.Tech IV Year
CSE,IT,CS-IT,CSE(AI),CSE(AI&ML),CSE(DS) and CSE(IOT)
Prepared By:
Vision
To be an outstanding institution in the country imparting technical education, providing need-
based, value-based and career-based programs and producing self-reliant, self-sufficient
technocrats capable of meeting new challenges.
Mission
The mission of the institute is to educate young aspirants in various technical fields to fulfill
global requirement of human resources by providing sustainable quality education, training and
invigorating environment besides molding them into skilled competent and sociallyresponsible
citizens who will lead the building of a powerful nation.
Vision
Mission
M1: To provide quality education in the core and applied areas of information
technology, and develop students from all socio-economic levels into globally
competent professionals.
M3: To invigorate student’s skills so that deploys their potential in research and
development, and inculcates the habit of lifelong learning.
PEO 2: To bring the physical, analytical and computational approaches of IT to solve real
world Engineering problems and provide innovative solutions by applying appropriate models,
tools and evaluations.
PEO 4: Students to imbibe professional attitudes, team spirit, effective communication and
contribute ethically to the needs of the society with moral values.
PEO 5: Encourage students for higher studies and entrepreneurial skills by imparting the
quality of lifelong learning in emerging technologies and work in multidisciplinary roles and
capacities.
Program Outcomes
2. Problem analysis: Identify, formulate, review research literature, and analyse complex
engineering problems reaching substantiated conclusions using first principles of mathematics,
natural sciences, and engineering sciences.
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, andmodern
engineering and IT tools including prediction and modeling to complex engineering activities
with an understanding of the limitations.
6. The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice.
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
11. Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member and
leader in a team, to manage projects and in ltidisciplinary environments.
12. Life-long learning: Recognize the need for, and have the preparation and ability to engage
in independent and life-long learning in the broadest context of technological change
1. PSO 1: Ability to understand, apply and analyze computational concepts in the areas related
to algorithms, machine learning, multimedia, web designing, Data Science, and networking on
the systems having different degree of complexity.
Lecture-1:
1.1 What is Cloud Computing?
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, it is a technology where the resource is provided
as a service through the Internet to the user. The data which is stored canbe files, images,
documents, or any other storable document.
Lecture-2:
2. Evolution of Cloud Computing
Cloud computing is all about renting computing services. This idea first came in the 1950s. Inmaking cloud computing what it
is today, five technologies played a vital role. These are distributed systems and its peripherals, virtualization, web 2.0, service
orientation, and utility computing.
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 vCloud, etc. work on. Hardware virtualization is still
one of the most common types of virtualization.
It is the interface through which the cloud computing services interact with the clients. It is
because of Web 2.0 that we have interactive and dynamic web pages. It also increases
flexibility 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. It gained
major popularity in 2004.
It acts as a reference model for cloud computing. It supports low-cost, flexible, and evolvable
applications. 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).
It is a computing model that defines service provisioning techniques for services such as
computer services along with other major services such as storage, infrastructure, etc which are
provisioned on a pay-per-use basis.
In distributed computing we have multiple autonomous computers which seems to the user as
single system. In distributed systems there is no shared memory and computers communicate
with each other through message passing. In distributed computing a single task is divided
among different computers.
There are many characteristics of Cloud computing here are few of them:
On-demand self-services: The Cloud computing services does not require any human
administrators, user they are able to provision, monitor and manage computing
resources as needed.
Broad network access: The Computing services are generally provided over standard
networks and heterogeneous devices.
Rapid elasticity: The Computing services should have IT resources that are able to scale
out and in quickly and on as needed basis. Whenever the user require services it is
provided to him and it is scale out as soon as its requirement gets over.
Resource pooling: The IT resource (e.g., networks, servers, storage, applications, and
services) present are shared across multiple applications and occupant in an
uncommitted manner. Multiple clients are provided service from a same physical
resource.
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 of what has been
used. This is done for various reasons like monitoring billing and effective use of
resource.
Multi-tenancy: Cloud computing providers can support multiple tenants (users or
organizations) on a single set of shared resources.
Virtualization: Cloud computing providers use virtualization technology to abstract
underlying hardware resources and present them as logical resources to users.
Resilient computing: Cloud computing services are typically designed with redundancy
and fault tolerance in mind, which ensures high availability and reliability.
Flexible pricing models: Cloud providers offer a variety of pricing models, including
pay-per-use, subscription-based, and spot pricing, allowing users to choose the option
that best suits their needs.
Lecture: 5
5.1 CLOUD ELASTICITY:
It works such a way that when number of client access expands, applications are naturally
provisioned the extra figuring, stockpiling and organization assets like central processor,
Memory, Stockpiling or transfer speed what’s more, when fewer clients are there it will
naturally diminish those as per prerequisite.
Cloud scalability is used to handle the growing workload where good performance is also
needed to work efficiently with software or applications. Scalability is commonly used where
the persistent deployment of resources is required to handle the workload statically.
In this type of scalability, we increase the power of existing resources in the working
environment in an upward direction.
It is a mixture of both Horizontal and Vertical scalability where the resources are added both
vertically and horizontally.
FIg-4: Diagonal Scaling
On-demand computing (ODC) is a delivery model in which computing resources are made
available to the user as needed. The resources may be maintained within the user's enterprise
or made available by a cloud service provider. The term cloud computing is often used as a
synonym for on-demand computing when the services are provided by a third party -- such as
a cloud hosting organization.
The on-demand business computing model was developed to overcome the challenge of
enterprises meeting fluctuating demands efficiently. Because an enterprise's demand for
computing resources can be unpredictable at times, maintaining sufficient resources to meet
peak requirements can be costly. And cutting costs by only maintaining minimal resources
means there are likely insufficient resources to meet peak loads. The on-demand model
provides an enterprise with the ability to scale computing resources up or down whenever
needed, with the click of a button.
When an organization pairs with a third party to provide on-demand computing, it either
subscribes to the service or uses a pay-per-use model. The third party then provides computing
resources whenever needed, including when the organization is working on temporary
projects, has expected or unexpected workloads or has long-term computing requirements.
For example, a retail organization could use on-demand computing to scale uptheir online
services, providing additional computing resources during a high-volume time, such as Black
Friday.
Cloud computing is a general term for anything that involves delivering hosted services over
the internet. These services are divided into different types of cloud computing resources and
applications.
o SaaS is a software distribution model where a cloud provider hosts applications and
makesthem available to users over the internet.
o DaaS is a form of cloud computing where a third party hosts the back end of a virtual
desktopinfrastructure
o Managed hosting services are an IT provisioning and cloud server hosting model
where aservice provider leases dedicated servers and associated hardware to a single
customer andmanages those systems on the customer's behalf.
o Cloud storage is a service model where data is transmitted and stored securely on
remote storage systems, where it is maintained, managed, backed up and made
available to users over a network.
Users can quickly increase or decrease their computing resources as needed -- either short-
term or long-term.
The cloud service organization managing the on-demand services handles resources such as
servers and hardware, system updates and maintenance.
Many on-demand computing services in the cloud are user friendly enabling most users to
easily acquire additional computing resources without any help from their IT department.
This can help to improve business agility.
Saves money because organizations don't have to purchase hardware or software to meet
peaks in demand. Organizations also don't have to worry about updating or maintaining those
resources
SOA is a style of software design. In the SOA concept, services are provided from externally to other
components as application components through a communication protocol over a network. The basic
principle of SOA does not depend upon technologies, products, and vendors. Each service in an SOA
embodies the code and data integrations required to execute a complete, discrete business function (e.g.,
checking a customer’s credit, calculating a monthly loan payment, or processing a mortgage application).
The service interfaces provide loose coupling, meaning they can be called with little or no knowledge of
how the integration is implemented underneath. The services are exposed using standard network
protocols—such as SOAP (simple object access protocol)/HTTP or JSON/HTTP—to send requests to
read or change data. The services are published in a way that enables developers to quickly find them and
reuse them to assemble new applications.
These services can be built from scratch but are often created by exposing functions from legacy systems
of record as service interfaces.
Service-Oriented Architecture (SOA) is an architectural style that supports service- orientation. SOA is
an architecture that publishes services in the form of XML interface. Applications built using an SOA
style deliver functionality as services, which can be used or reused when building applications or
integrating within the enterprise or trading partners.
SOA are based on a mesh of software services
Each service implements one action, such as filling out an online application for an account,
viewing an online bank-statement, or placing an online booking or airline ticket order
SOA can help organizations streamline processes so that they can do business more efficiently, and adapt
to changing needs and competition, enabling the software as a service concept. eBay for example, is
opening up its web services API for its online auction. The goal is to drive developers to make money
around the eBay platform. Through the new APIs, developers can build custom applications that link to
the online auction site and allow applications to submit items for sale. Such applications are typically
aimed at sellers, since buyers must still head to ebay.com to bid on items. This type of strategy, however,
will increase the customer base for eBay.
In this way, SOA represents an important stage in the evolution of application development and
integration over the last few decades. Before SOA emerged in the late 1990s, connecting an application
to data or functionality housed in another system required complex point-to-point integration—
integration that developers had to recreate, in part or whole, for each new development project. Exposing
those functionsthrough SOA eliminates the need to recreate the deep integration every time.
Cloud Computing (KCS-713) 21 | P a g e
7.3 Where is used to SOA
Developers use SOA to reuse services in different systems or combine several independent services to
perform complex tasks.
For example, multiple business processes in an organization require the user authentication
functionality. Instead of rewriting the authentication code for all business processes, you can create a
single authentication service and reuse it for all applications.
Lecture: 8
7.4 Primitive SOA: - SOA is a constantly growing field with various vendors developing SOA
products regularly. A baseline service-oriented architecture that is suitable to be realized by any vendor is
known as the primitive SOA. Baseline SOA, common SOA and core SOA are some of the other terms
used to refer to the primitive SOA. Application of service-orientation principles to software solutions
produces services and these are the basic unit of logic in the SOA. These services can exist autonomously,
but they are certainly not isolated. Services maintain certain common and standard features, yet they can
be evolved and extended independently. Services can be combined to create other services. Services are
aware of other services only through service descriptions and therefore can be considered loosely-
coupled. Services communicate using autonomous messages that are intelligent enough to self-govern
their own parts of logic. Most important (primitive) SOA design principles are loose coupling, service
contract, autonomy, abstraction, reusability, compensability, statelessness and discoverability.
l) SOA is an evolution.
Contemporary SOA and primitive SOA differ on the purpose they stand for within the context of SOA.
Primitive SOA is the baseline service-oriented architecture while, contemporary SOA is used to represent
the extensions to the primitive SOA. Primitive SOA provides a guideline to be realized by all vendors,
whereas Contemporary SOA expands the SOA horizon by adding new features to primitive SOA.
Currently, Contemporary SOA focuses on securing content of messages, improving reliability through
delivery status notifications, enhancing XML/SOAP processing and transaction processing to account for
task failure.
a. Bank- Savings accounts, checking accounts, credit cards, safety deposit boxes, consumer
loans, mortgages, credit verification.
b. Travel agency- Holiday planning, business travel, travel insurance, annual summary of business
travel expenditures.
c. Insurance agency- Car insurance, home insurance, health insurance, accident assessment.
d. Retail store- In-store shopping, online shopping, catalog shopping, credit cards, extended
warranties, repair services.
e. Lawyer's office- Legal advice, wills preparation, business incorporation, bankruptcy proceedings.
Loosely coupled.
Well-defined service contracts.
Meaningful to service requesters.
Standards-based.
A service should also possess as many of the following secondary characteristics as possible in order
to deliver the greatest business and technical benefits:
The notion of designing services to be loosely coupled is the most important, the most far reaching, and
the least understood service characteristic. Loose coupling is a broad term that actually refers to several
different elements of a service, its implementation, and its usage.
7.9.2 Interface coupling refers to the coupling between service requesters and service providers.
Interface coupling measures the dependencies that the service provider imposes on the service requester
the fewer the dependencies, the looser the coupling. Ideally, the service requester should be able to use a
service solely based on the published service contract and service-level agreement (see the next section),
and under no circumstances should the service requester require information about the internal
implementation of the service (for example, requiring that one of the input parameters be a SQL command
because the service provider uses a RDBMS as a data store). Another way of saying this is that the
interface should encapsulate all implementation details and make them opaque to service requesters.
7.9.3 Technology coupling measures the extent to which a service depends on a particular technology,
product, or development platform (operating systems, application servers, packaged applications, and
middleware platforms). For instance, if an organization standardizes on J2EE for implementing all
services and requires all service requesters and service providers to use JNDI to look up user and role
Every service should have a well-defined interface called its service contract that clearly defines the
service's capabilities and how to invoke the service in an interoperable fashion, and that clearly separates
the service's externally accessible interface from the service's technical implementation. In thiscontext,
WSDL provides the basis for service contracts; however, a service contract goes well beyond what can be
defined in WSDL to include document metadata, security metadata, and policy metadata using the WS-
Policy family of specifications. It is important that the service contract is defined based onknowledge of
the business domain and is not simply derived from the service's implementation.
Furthermore, changing a service contract is generally much more expensive than modifying the
implementation of a service because changing a service contract might require changing hundreds or
thousands of service requesters, while modifying the implementation of a service does not usually have
such far reaching effects. As a corollary, it is important to have a formal mechanism for extending and
versioning service contracts to manage these dependencies and costs.
Services and service contracts must be defined at a level of abstraction that makes sense to service
requesters. An appropriate level of abstraction will:
Capture the essence of the business service being provided without unnecessarily restricting future
uses or implementations of the service.
Use a business-oriented vocabulary drawn from the business service domain to define the business
service and the input and output documents of the business service.
Avoid exposing technical details such as internal structures or conventions to service requesters.
An abstract interface promotes substitutability that is, the interface captures a business theme and is
independent of a specific implementation, which allows a new service provider to be substituted for an
existing services provider as necessary without affecting any of the service requesters. In this way,
defining abstract interfaces that are meaningful to service requesters promotes loose coupling.
Cloud Computing (KCS-713) 28 | P a g e
7.12 Technical Benefits of a Service-Oriented Architecture
Services that possess the characteristics discussed earlier deliver the following technical benefits:
Efficient development.
More reuse.
Simplified maintenance.
Incremental adoption.
Graceful evolution.
Efficient Development
An SOA promotes modularity because services are loosely coupled. This modularity has positive
implications for the development of composite applications because:
After the service contracts have been defined (including the service-level data models), each
service can be designed and implemented separately by the developers who best understand the particular
functionality. In fact, the developers working on a service have no need to interact with or even know
about the developers working on the other business services.
Service requesters can be designed and implemented based solely on the published service
contracts without any need to contact the developers who created the service provider and without
access to the source code that implements the service provider (as long as the developers have access to
information about the semantics of the service; for example, the service registry may provide a link to
comprehensive documentation about the semantics of the service).
7.13 Advantages and Disadvantages of SO
7.13.1 Advantages
1. Maintenance is Easy – Editing and updating any service implemented under SOA architecture is easy.
You don’t need to update your system. Service is maintained by a third party and any amendment in this
service won’t have an effect on your system. In most cases previous API work because it is functioning
before.
2. Quality of Code Improved – As services run freelance of our system they have their own variety of
code; therefore, our code is prevented from redundancy. Also, our code becomes error free.
5. Reliable – Services square measure typically tiny size as compared to the full-fledged application. So
it’s easier to correct and check the freelance services.
6. Same Directory Structure – Services have an equivalent directory structure so customers can access
the service information from an equivalent directory on every occasion. If any service has modified its
location then additionally directory remains the same. This is very helpful for consumers.
7. Independent of Other Services – Services generated using SOA principles are independent of each
other. So services are often utilized by multiple applications at an equivalent time.
7.13.2 Disadvantages
1. High Bandwidth Server – As therefore net service sends and receives messages and knowledge often
times so it simply reaches high requests per day. So it involves a high-speed server with plenty of
information measure to run an internet service.
2. Extra Overload – In SOA, all inputs square measures its validity before it’s sent to the service. Ifyou
are victimization multiple services then it’ll overload your system with further computation.
The acronym REST stands for RE presentational State Transfer. It was term originally coined by Roy
Fielding, who was also the inventor of the HTTP protocol. RE presentational State Transfer, or REST, is a
design pattern for interacting with resources stored in a server. Each resource has an identity, a data type,
and supports a set of actions. REST is a simple way to organize interactions between independent systems.
It's been growing in popularity since 2005, and inspires the design of services, such as the Twitter API.
This is due to the fact that REST allows you to interact with minimal overhead with clientsas diverse as
mobile phones and other websites. In theory, REST is not tied to the web, but it's almost always
implemented as such, and was inspired by HTTP. As a result, REST can be used wherever HTTP can.
The RESTful design pattern is normally used in combination with HTTP, the language of the internet. In
this context the resource's identity is its URI, the data type is its Media Type, and the actions are made up
of the standard HTTP methods (GET, PUT, POST, and DELETE). The HTTP POST method is used for
creating a resource, GET is used to query it, PUT is used to change it, and DELETE is used to destroy it.
The most common RESTful architecture involves a shared data model that is used across these four
operations. This data model defines the input to the POST method (create), the output for the GET
method (inquire) and the input to the PUT method (replace). A fifth HTTP method called 'HEAD' is
sometimes supported by RESTful web services. This method is equivalent to GET, except that it returns
only HTTP Headers, and no Body data. It's sometimes used to test the Existence of a resource. Not all
RESTful APIs support use of the HEAD method. These correspond to create, read, update, and delete (or
CRUD) operations, respectively. There are a number of other verbs, too, but are utilized less frequently.
8.2 Why do we need REST?
Representational State Transfer (REST) is a set of guidelines that ensure high quality in applications like
Web services by emphasizing simplicity, performance, and scalability. RESTful Web services follow a
client-server architecture and use a stateless communication protocol such as http. They are designed based
on four principles: resource identification through URIs, a uniform interface with four operations (PUT,
GET, POST, and DELETE), self-descriptive messages, and stateful interactions through hyperlinks.
8.3 Where is REST USED?
Representational State Transfer (REST) is an architectural style for designing networked applications that's
commonly used in cloud computing. REST APIs (Application Programming Interfaces) allow software
applications to communicate with each other over the internet. In cloud computing, REST APIs are used to
interact with cloud services and resources such as virtual machines, databases, and storage.
Here are some examples of REST APIs in cloud computing:
Customers can use the REST API to get analysis results and reports, run data migrations, and search
for data across their storage.
Ordering food through an app
Multiple REST API calls are used, such as one to check the menu, another to place the order, and
another to update the delivery status.
8.4.1 The POST verb is most-often utilized to **create** new resources. In particular, it's used to
create subordinate resources. That is, subordinate to some other (e.g. parent) resource. In other words, when
creating a new resource, POST to the parent and the service takes care of associating the new resource with
the parent, assigning an ID (new resource URI), etc.
On successful creation, return HTTP status 201, returning a Location header with a link to the newly-
created resource with the 201 HTTP status.
POST is neither safe nor idempotent. It is therefore recommended for non-idempotent resource requests.
Making two identical POST requests will most-likely result in two resources containing the same
information.
Examples:
POST http://www.example.com/customers
POST http://www.example.com/customers/12345/orders
GET http://www.example.com/customers/12345
GET http://www.example.com/customers/12345/orders
GET http://www.example.com/buckets/sample
8.4.3 PUT is most-often utilized for **update** capabilities, PUT-ing to a known resource URI with
the request body containing the newly-updated representation of the original resource.
However, PUT can also be used to create a resource in the case where the resource ID is chosen by the
client instead of by the server. In other words, if the PUT is to a URI that contains the value of a non-
existent resource ID. Again, the request body contains a resource representation. Many feel this is
convoluted and confusing. Consequently, this method of creation should be used sparingly, if at all.
Alternatively, use POST to create new resources and provide the client-defined ID in the body
representation—presumably to a URI that doesn't include the ID of the resource (see POST below).
On successful update, return 200 (or 204 if not returning any content in the body) from a PUT. If using
PUT for create, return HTTP status 201 on successful creation. A body in the response is optional—
providing one consumes more bandwidth. It is not necessary to return a link via a Location header in the
creation case since the client already set the resource ID.
PUT is not a safe operation, in that it modifies (or creates) state on the server, but it is idempotent. In other
words, if you create or update a resource using PUT and then make that same call again, the resource is
still there and still has the same state as it did with the first call.
If, for instance, calling PUT on a resource increments a counter within the resource, the call is no longer
idempotent. Sometimes that happens and it may be enough to document that the call is not idempotent.
However, it's recommended to keep PUT requests idempotent. It is strongly recommended to use POST for
non-idempotent requests.
Examples:
PUT http://www.example.com/customers/12345
PUT http://www.example.com/customers/12345/orders/98765
PUT http://www.example.com/buckets/secret_stuff
Cloud Computing (KCS-713) 33 | P a g e
8.4.4 PATCH is used for **modify** capabilities. The PATCH request only needs to contain the
changes to the resource, not the complete resource.
This resembles PUT, but the body contains a set of instructions describing how a resource currently residing
on the server should be modified to produce a new version. This means that the PATCH body should not
just be a modified part of the resource, but in some kind of patch language like JSON Patch or XML Patch.
PATCH is neither safe nor idempotent. However, a PATCH request can be issued in such a way as to be
idempotent, which also helps prevent bad outcomes from collisions between two PATCH requests on the
same resource in a similar time frame. Collisions from multiple PATCH requests may be more dangerous
than PUT collisions because some patch formats need to operate from a known base-point or else them
will corrupt the resource. Clients using this kind of patch application should use a conditional request such
that the request will fail if the resource has been updated since the client last accessed the resource. For
example, the client can use a strong ETag in an If-Match header on the PATCH request.
Examples:
PATCH http://www.example.com/customers/12345
PATCH http://www.example.com/customers/12345/orders/98765
PATCH http://www.example.com/buckets/secret_stuff
8.4.5 DELETE is pretty easy to understand. It is used to **delete** a resource identified by a URI.
On successful deletion, return HTTP status 200 (OK) along with a response body, perhaps the
representation of the deleted item (often demands too much bandwidth), or a wrapped response (see Return
Values below). Either that or return HTTP status 204 (NO CONTENT) with no response body. In other
words, a 204 status with no body, or the JSEND-style response and HTTP status 200 are the recommended
responses.
HTTP-spec-wise, DELETE operations are idempotent. If you DELETE a resource, it's removed.
Repeatedly calling DELETE on that resource ends up the same: the resource is gone. If calling DELETE
say, decrements a counter (within the resource), the DELETE call is no longer idempotent. As mentioned
previously, usage statistics and measurements may be updated while still considering the service
idempotent as long as no resource data is changed. Using POST for non-idempotent resource requests is
recommended.
There is a caveat about DELETE, however. Calling DELETE on a resource a second time will often return
a 404 (NOT FOUND) since it was already removed and therefore is no longer findable. This, by some
opinions, makes DELETE operations no longer idempotent, however, the end-state of the resource is the
same. Returning a 404 is acceptable and communicates accurately the status of the call.
Examples:
DELETE http://www.example.com/customers/12345
DELETE http://www.example.com/customers/12345/orders
DELETE http://www.example.com/bucket/sample
9. WEB SERVICE
It is a collection of open protocols and standards used for exchanging data between applications or
systems
Web services can be discovered using UDDI
XML is the basis for Web services
Envelope: (Mandatory) - Defines the start and the end of the message.
Header: (Optional)- Contains any optional attributes of the message used in processing the message,
either at an intermediary point or at the ultimate end point.
Body: (Mandatory) - Contains the XML data comprising the message being sent.
Fault: (Optional) - An optional Fault element that provides information about errors that occurred while
processing the message
All these elements are declared in the default namespace for the SOAP envelope
The SOAP envelope indicates the start and the end of the message so that the receiver knows when an
entire message has been received. The SOAP envelope solves the problem of knowing when you're done
receiving a message and are ready to process it. The SOAP envelope is therefore basic ally a packaging
mechanism
9.5.1 Service provider: - From a business perspective, this is the owner of the service. From an Service
provider. Architectural perspective, this is the platform that hosts access to the service.
9.5.2 Service requestor: - From a business perspective, this is the business that requires Service
requestor. Certain functions to be satisfied. From an architectural perspective, this is the application that is
looking for and invoking or initiating an interaction with a service.
9.5.3 Service registry: - This is a searchable registry of service descriptions where service providers
publish their service descriptions. Service requestors find services and obtain binding information (in the
service descriptions) for services during development for static binding or during execution for dynamic
binding. For statically bound service requestors, the service registry is an optional role in the architecture,
because a service provider can send the description directly to service requestors.
For an application to take advantage of Web Services, three behaviors must take place:
Publication of service descriptions, lookup or finding of service descriptions, and binding or invoking
of services based on the service description. These behaviors can occur singly or iteratively. In detail, these
operations are:
The advantages of Web services are numerous, as shown in the list below:
Web services have an easy integration in an information system with a merchant platform
Their components are reusable,
Their interoperability makes it possible to link several systems together
They permit reduction of coupling between systems.
They have an extended functional scope made available to merchants: Import, Inventory,
Cloud Computing (KCS-713) 38 | P a g e
Order Management, Pricing, After-Sales...
They connect heterogeneous systems
They interconnect middleware/or allow to install them
They allow servers and machines to communicate,
Reduced computing power is required
They allow a multi-user use, without disturbing sources
Easy component update
Low maintenance (like any big data tool)
They are not linked to any operating system or programming language
Lecture-14:
10.1 What is Virtualization
Virtualization uses software to create an abstraction layer over computer hardware that allows the hardware elements
of a single computer—processors, memory, storage and more—to be divided into multiple virtual computers,
commonly called virtual machines (VMs). Each VM runs its own operating system (OS) and behaves like an
independent computer, even though it is running on just a portion of the actual underlying computer hardware.
Virtualization is the process of creating a software-based, or virtual, representation of something, such as virtual
applications, servers, storage and networks. It is the single most effective way to reduce IT expenses while boosting
efficiency and agility for all size businesses.
e.g. - Virtualization is there to present a logical view of the original things. In real time scenario When a user open
my computer icon, there appear some hard drive partitions say Local Disk (: C), Local Disk (: D), Local Disk (: E)
and so on.
10.2.3 SHORTAGE OF SPACE-The regular requirement for additional capacity, whether memory storage
or compute power, leads data centers raise rapidly. Companies like Google, Microsoft and Amazon develop their
infrastructure by building data centers as per their needs. Mostly, enterprises unable to pay to build any other data
center to accommodate additional resource capacity. This heads to the diffusion of a technique which is known as
Cloud Computing (KCS-713) 39 | P a g e
server consolidation.
Multiple virtual machines can run simultaneously on the same physical computer. For servers, the multiple operating
systems run side-by-side with a piece of software called a hypervisor to manage them, while desktop computers
typically employ one operating system to run the other operating systems within its programme windows. Each
virtual machine provides its own virtual hardware, including CPUs, memory, hard drives, network interfaces and
other devices. The virtual hardware is then mapped to the real hardware on the physical machine which saves costs
by reducing the need for physical hardware systems along with the associated maintenance coststhat go with it, plus
reduces power and cooling demand.
Virtualization methods can change based on the user’s operating system. For example, Linux machines offer a
unique open-source hypervisor known as the kernel-based virtual machine (KVM). Because KVM is part of Linux,
it allows the host machine to run multiple VMs without a separate hypervisor. However, KVM is not supported by
all IT solution providers and requires Linux expertise in order to implement it.
Desktop virtualization
Network virtualization
Storage virtualization
Data virtualization
Application virtualization
Data center virtualization
CPU virtualization
GPU virtualization
Linux virtualization
Cloud virtualization
Virtual desktop infrastructure (VDI) runs multiple desktops in VMs on a central server and streams
them to users who log in on thin client devices. In this way, VDI lets an organization provide its users
access to variety of OSs from any device, without installing OSs on any device.
Local desktop virtualization runs a hypervisor on a local computer, enabling the user to run one or
more additional OSs on that computer and switch from one OS to another as needed without changing
anything about the primary OS.
Network virtualization uses software to create a ―view‖ of the network that an administrator can use to
manage the network from a single console. It abstracts hardware elements and functions (e.g., connections,
switches, routers, etc.) and abstracts them into software running on a hypervisor. The network administrator can
modify and control these elements without touching the underlying physical components, which dramatically
simplifies network management.
Types of network virtualization include software-defined networking (SDN), which virtualizes hardware that
controls network traffic routing (called the ―control plane‖), and network function virtualization (NFV), which
virtualizes one or more hardware appliances that provide a specific network function (e.g., a firewall, load
balancer, or traffic analyzer), making those appliances easier to configure, provision, andmanage.
11.3 Storage virtualization
Storage virtualization enables all the storage devices on the network— whether they’re installed on individual
servers or standalone storage units—to be accessed and managed as a single storage device. Specifically,
Modern enterprises store data from multiple applications, using multiple file formats, in multiple locations,
ranging from the cloud to on-premise hardware and software systems. Data virtualization lets any application
access all of that data—irrespective of source, format, or location.
Data virtualization tools create a software layer between the applications accessing the data and the systems
storing it. The layer translates an application’s data request or query as needed and returns results that can span
multiple systems. Data virtualization can help break down data silos when other types of integration aren’t
feasible, desirable, or affordable.
Application virtualization runs application software without installing it directly on the user’s OS. This differs
from complete desktop virtualization (mentioned above) because only the application runs in a virtual
environment—the OS on the end user’s device runs as usual. There are three types of application virtualization:
Local application virtualization: The entire application runs on the endpoint device but runs in a
runtime environment instead of on the native hardware.
Application streaming: The application lives on a server which sends small components of the
software to run on the end user's device when needed.
Server-based application virtualization: The application runs entirely on a server that sends only its
user interface to the client device.
Data center virtualization abstracts most of a data center’s hardware into software, effectively enabling an
administrator to divide a single physical data center into multiple virtual data centers for different clients.
Each client can access its own infrastructure as a service (IaaS), which would run on the same underlying
physical hardware. Virtual data centers offer an easy on-ramp into cloud-based computing, letting a company
quickly set up a complete data center environment without purchasing infrastructure hardware.
CPU (central processing unit) virtualization is the fundamental technology that makes hypervisors, virtual
machines, and operating systems possible. It allows a single CPU to be divided into multiple virtual CPUs for
use by multiple VMs.
At first, CPU virtualization was entirely software-defined, but many of today’s processors include extended
instruction sets that support CPU virtualization, which improves VM performance.
Pass-through GPUs make the entire GPU available to a single guest OS.
Shared vGPUs divide physical GPU cores among several virtual GPUs (vGPUs) for use by server-
based VMs.
As an open source OS, Linux is highly customizable. You can create VMs running versions of Linux tailored
for specific workloads or security-hardened versions for more sensitive applications.
Cloud virtualization
As noted above, the cloud computing model depends on virtualization. By virtualizing servers, storage, and
other physical data center resources, cloud computing providers can offer a range of services to customers,
including the following:
Infrastructure as a service (IaaS): Virtualized server, storage, and network resources you can
configure based on their requirements.
Platform as a service (PaaS): Virtualized development tools, databases, and other cloud-based
services you can use to build you own cloud-based applications and solutions.
Software as a service (SaaS): Software applications you use on the cloud. SaaS is the cloud-based
service most abstracted from the hardware.
Virtualization is not that easy to implement. A computer runs an OS that is configured to that particular
hardware. Running a different OS on the same hardware is not exactly feasible.
To tackle this, there exists a hypervisor. What hypervisor does is, it acts as a bridge between virtual OS and
hardware to enable its smooth functioning of the instance. There are five levels of virtualizations available that
are most commonly used in the industry. These are as follows:
As the name suggests, this level helps perform virtualization at the hardware level. It uses a bare hypervisor for
its functioning. This level helps form the virtual machine and manages the hardware through virtualization.It
enables virtualization of each hardware component such as I/O devices, processors, memory etc. This way
multiple users can use the same hardware with numerous instances of virtualization at the same time. IBM had
first implemented this on the IBM VM/370 back in 1960. It is more usable for cloud-based infrastructure. Thus,
it is no surprise that currently, Xen hypervisors are using HAL to run Linux and other OS on x86 based
machines.
At the operating system level, the virtualization model creates an abstract layer between the applications and
the OS. It is like an isolated container on the physical server and operating system that utilizes hardware and
software. Each of these containers functions like servers. When the number of users is high, and no one is
willing to share hardware, this level of virtualization comes in handy. Here, every user gets their own virtual
environment with dedicated virtual hardware resource. This way, no conflicts arise.
OS system calls are lengthy and cumbersome. Which is why applications opt for APIs from user-level libraries?
Most of the APIs provided by systems are rather well documented. Hence, library level virtualization is
preferred in such scenarios. Library interfacing virtualization is made possible by API hooks. These API hooks
control the communication link from the system to the applications. Some tools available today, such as vCUDA
and WINE, have successfully demonstrated this technique.
Application-level virtualization comes handy when you wish to virtualized only an application. It does not
virtualized an entire platform or environment. On an operating system, applications work as one process. Hence
it is also known as process-level virtualization. It is generally useful when running virtual machines with high-
level languages. Here, the application sits on top of the virtualization layer, which is above the application
Before virtualization, the operating system manages the hardware. After virtualization, a virtualization layer is
inserted between the hardware and the operating system. In such a case, the virtualization layer is responsible
for converting portions of the real hardware into virtual hardware. Therefore, different operating systems such
as Linux and Windows can run on the same physical machine.
13.1 CPU Virtualization- CPU Virtualization emphasizes on running programs and instructions
through virtual machine giving the feeling as it is working on a physical workstation. All the operations are
handled byan emulator that controls software to run according to it. Nevertheless, CPU Virtualization does not
act as an emulator. The emulator performs the same way as a normal computer machine does. It replicates the
same copy or data and generates the same output just like a physical machine does. The emulation function
offers great portability and facilitates working on a single platform acting like working on multiple platforms.
It enhances performance by providing greater memory capacity without any addition to the main memory.
That’s why a portion of the disk drive serves as an extension of the main memory.
Implementations –
Application-level integration – Applications running on connected computers directly connect to the
memory pool through an API or the file system.
Operating System-Level Integration – The operating system first connects to the memory pool and makes
that pooled memory available to applications.
I/O virtualization provides a foothold for many innovative and beneficial enhancements of the logical I/O
devices. The ability to interpose on the I/O stream in and out of a VM has been widely exploited in both research
papers and commercial virtualization systems.
One useful capability enabled by I/O virtualization is device aggregation, where multiple physical devices can
be combined into a single more capable logical device that is exported to the VM. Examples includecombining
multiple disk storage devices exported as a single larger disk, and network channel bonding where multiple
network interfaces can be combined to appear as a single faster network interface.
New features can be added to existing systems by interposing and transforming virtual I/O requests,
transparently enhancing unmodified software with new capabilities. For example, a disk write can be
transformed into replicated writes to multiple disks, so that the system can tolerate disk-device failures.
Similarly, by logging and tracking the changes made to a virtual disk, the virtualization layer can offer a time-
travel feature, making it possible to move a VM’s file system backward to an earlier point in time. This
functionality is a key ingredient of the snapshot and undo features found in many desktop virtualization systems.
Many I/O virtualization enhancements are designed to improve system security. A simple example is running
an encryption function over the I/O to and from a disk to implement transparent disk encryption. Interposing on
network traffic allows virtualization layers to implement advanced networking security, such as firewalls and
intrusion-detection systems employing deep packet inspection.
Lecture: 19
14.1 What is Cloud Computing Architecture?
Cloud architecture refers to how various cloud technology components, such as hardware, virtual
resources, software capabilities, and virtual network systems interact and connect to create cloud
computing environments. It acts as a blueprint that defines the best way to strategically combine
resources to build a cloud environment for a specific business need.
14.2 Why is cloud computing architecture important
The cloud computing architecture is designed in such a way that:
It solves latency issues and improves data processing requirements
It reduces IT operating costs and gives good accessibility to access data and digital
tools
It helps businesses to easily scale up and scale down their cloud resources
It has a flexibility feature which gives businesses a competitive advantage
It results in better disaster recovery and provides high security
It automatically updates its services
It encourages remote working and promotes team collaboration
14.3 Where is cloud computing mostly used?
Organizations of every type, size, and industry are using the cloud for a wide variety of use cases,
such as data backup, disaster recovery, email, virtual desktops, software development and testing,
big data analytics, and customer-facing web applications. For example, healthcare companies are
using the cloud to develop more personalized treatments for patients. Financial services companies
are using the cloud to power real-time fraud detection and prevention. And video game makers are
using the cloud to deliver online games to millions of players around the world.
All of the physical manifestations of cloud computing can be arranged into a layered picture
that encompasses anything from software systems to hardware appliances. Utilizing cloud
resources can provide the “computer horsepower” needed to deliver services. This layer is
frequently done utilizing a data center with dozens or even millions of stacked nodes.
Because it can be constructed from a range of resources, including clusters and even
networked PCs, cloud infrastructure can be heterogeneous in character. The infrastructure can
also include database systems and other storage services.
The core middleware, whose goals are to create an optimal runtime environment for
applications and to best utilize resources, manages the physical infrastructure. Virtualization
technologies are employed at the bottom of the stack to ensure runtime environment
modification, application isolation, sandboxing, and service quality. At this level, hardware
virtualization is most frequently utilized. The distributed infrastructure is exposed as a
collection of virtual computers via hypervisors, which control the pool of available resources.
By adopting virtual machine technology, it is feasible to precisely divide up hardware resources
like CPU and memory as well as virtualize particular devices to accommodate user and
application needs.
14.6.4 The infrastructure layer is crucial to cloud computing since virtualization technologies
are the only ones that can provide many vital capabilities, like dynamic resource
assignment.
1. In a cloud environment, this layer is responsible for Managing Physical Resources such
as servers, switches, routers, power supplies, and cooling systems.
2. Providing end users with services requires all resources to be available and managed
in data centers.
3. Physical servers connect through high-speed devices such as routers and switches to
the data center.
4. In software application designs, the division of business logic from the persistent data
it manipulates is well-established. This is due to the fact that the same data cannot be
incorporated into a single application because it can be used in numerous ways to
support numerous use cases. The requirement for this data to become a service has
arisen with the introduction of micro services.
5. A single database used by many micro services creates a very close coupling. As a
result, it is hard to deploy new or emerging services separately if such services need
database modifications that may have an impact on other services. A data layer
containing many databases, each serving a single micro service or perhaps a few closely
related micro services, is needed to break complex service interdependencies.
Lecture: 22
15.1 CLOUD DEPLOYMENT MODELS
The selection of a cloud deployment model will depend on any number of factors and may well
Data Security and Privacy: It’s suitable for storing corporate information to whichonly
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.
Disadvantages of the Private Cloud Model
Less scalable: Private clouds are scaled within a certain range as there is less number of
clients.
Costly: Private clouds are more costly as they provide personalized facilities.
15.4 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.
Cloud Computing (KCS-713) 63 | P a g e
Fig.22 Hybrid Cloud
Cost: Because public clouds provide 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.
Disadvantages of the Hybrid Cloud Model
Difficult to manage: Hybrid clouds are difficult to manage as it is a combination of
both public and private cloud. So, it is complex.
Slow data transmission: Data transmission in the hybrid cloud takes place through the
public cloud so latency occurs.
Community
Factors Public Cloud Private Cloud Cloud Hybrid Cloud
Scalability
and High High Fixed High
Flexibility
Between public
Cost- Distributed cost
Cost-Effective Costly and private
Comparison among members
cloud
Advantages of PaaS
PaaS is simple and very much convenient for the user as it can be accessed via a web
browser.
PaaS has the capabilities to efficiently manage the lifecycle.
Disadvantages of PaaS
PaaS has limited control over infrastructure as they have less control over the
environment and are not able to make some customizations.
PaaS has a high dependence on the provider.
15.7 SOFTWARE AS A SERVICE (SAAS)
Software as a Service (SaaS) is a type of cloud computing model that is the work ofdelivering
services and applications over the Internet. The SaaS applications are called Web- Based
Software or Hosted Software.
SaaS has around 60 percent of cloud solutions and due to this, it is mostly preferred by
companies.
Advantages of SaaS
SaaS can access app data from anywhere on the Internet.
SaaS provides easy access to features and services.
Disadvantages of SaaS
SaaS solutions have limited customization, which means they have some restrictions
within the platform.
SaaS has little control over the data of the user.
SaaS are generally cloud-based, they require a stable internet connection for proper
working.
3. Multi-Cloud Service: Clients use a service to access various clouds. The cloud client hosts a
service either inside or externally. The services include elements for brokers. The inter-cloud
initiatives OPTIMUS, contrail, MOSAIC, STRATOS, and commercial cloud management
solutions leverage multi-cloud services.
4. Multi-Cloud Libraries: Clients use a uniform cloud API as a library to create their own
brokers. Inter clouds that employ libraries make it easier to use clouds consistently. Java library J-
clouds, Python library Apache Lib-Clouds, and Ruby library Apache Delta-Cloud are a few
examples of multiple multi-cloud libraries.
The allocation of resources and services from a cloud provider to a customer is known as resource
provisioning in cloud computing, sometimes called cloud provisioning. Resource provisioning is
the process of choosing, deploying, and managing software (like load balancers and database server
management systems) and hardware resources (including CPU, storage, and networks) to assure
application performance.
To effectively utilize the resources without going against SLA and achieving the QoS requirements,
Static Provisioning/Dynamic Provisioning and Static/Dynamic Allocation of resources must be
established based on the application needs. Resource over and under-provisioning must be
prevented. Power usage is another significant restriction. Care should be taken to reduce power
consumption, dissipation, and VM placement. There should be techniques to avoid excess power
consumption.
Therefore, the ultimate objective of a cloud user is to rent resources at the lowest possible cost,
while the objective of a cloud service provider is to maximize profit by effectively distributing
resources.
Scalability: Being able to actively scale up and down with flux in demand for resources is one
of the major points of cloud computing
Speed: Users can quickly spin up multiple machines as per their usage without the need for an
IT Administrator
Savings: Pay as you go model allows for enormous cost savings for users, it is facilitated by
provisioning or removing resources according to the demand
Static Provisioning or Advance Provisioning: Static provisioning can be used successfully for
applications with known and typically constant demands or workloads. In this instance, the cloud
provider allows the customer with a set number of resources. The client can thereafter utilize these
resources as required.
Dynamic provisioning or On-demand provisioning: With dynamic provisioning, the provider
adds resources as needed and subtracts them as they are no longer required. It follows a pay-per-use
model, i.e. the clients are billed only for the exact resources they use. Consumers must pay for each
use of the resources that the cloud service provider allots to them as needed and when necessary.
Lecture: 27
Brokers
Brokers mediate between consumers and providers by buying capacity from the provider and sub-
leasing these to the consumers. They must select consumers whose apps will provide the most utility.
Brokers may also communicate with resource providers and other brokers to acquire or trade
resource shares. To make decisions, these brokers are equipped with a negotiating module informed
by the present conditions of the resources and the current demand.
The consumer participates in the utility market via a resource management proxy that chooses a set
of brokers based on their offering. SLAs are formed between the consumer and the brokers, which
bind the latter to offer the guaranteed resources. After that, the customer either runs their
environment on the leased resources or uses the provider's interfaces to scale their applications.
Providers
A provider has a price-setting mechanism that determines the current price for their source based on
market conditions, user demand, and the current degree of utilization of the resource.
Based on an initial estimate of utility, an admission-control mechanism at a provider's end selects the
auctions to participate in or to negotiate with the brokers.
Lecture: 28
Lecture: 29
Data Loss is one of the issues faced in Cloud Computing. This is also known as Data
Leakage. As we know that our sensitive data is in the hands of somebody else, and we don’t
have full control over our database. So, if the security of cloud service is to break by hackers
then it may be possible that hackers will get access to our sensitive data or personal files.
5. Lack of Skill –
While working, shifting to another service provider, need an extra feature, how to use a feature,
etc. are the main problems caused in IT Companies who doesn’t have skilled Employees. So it
requires a skilled person to work with Cloud Computing.
Lecture: 30
Detect rogue services and compromised accounts: Organizations can use tools, such as
Cloud Access Security Brokers (CASB) to audit their networks for unauthorized cloud
services and compromised accounts.
Apply identity and access management (IAM): A role-based identity and access
management solution can ensure that end users do not gain access to more resources than
they require for their jobs. IAM solutions use processes and user access policies to determine
what files and applications a particular user can access. An organization can apply role-based
permissions to data so that end users will see only the data they’re authorized to view.
Encrypt cloud data: Data encryption protects both data at rest (in storage) and data in transit
between the end user and the cloud or between cloud applications. Government regulations
usually require encryption of sensitive data. Sensitive data includes financial information,
healthcare data, and personally identifiable information (PII). While a SaaS vendor may
provide some type of encryption, an organization can enhance data security by applying its
own encryption, such as by implementing a CASB.
Enforce data loss prevention (DLP): DLP software monitors for sensitive data within SaaS
applications or outgoing transmissions of sensitive data and blocks the transmission. DLP
software detects and prevents sensitive data from being downloaded to personal devices and
blocks malware or hackers from attempting to access and download data.
Monitor collaborative sharing of data: Collaboration controls can detect granular
permissions on files that are shared with other users, including users outside the organization
who access the file through a web link. Employees may inadvertently or intentionally share
confidential documents through email, team spaces, and cloud storage sites such as Dropbox.
Check provider’s security: An audit of a SaaS provider can include checks on its
compliance with data security and privacy regulations, data encryption policies, employee
security practices, cyber security protection, and data segregation policies.
Cloud Computing (KCS-713) 78 | P a g e
Lecture: 31
The cloud makes it easier than ever for teams within the organization to develop their own systems
and deploy assets with a single click. While this promotes innovation and productivity, it can also
cause issues like:
Poor integration between cloud systems, even within the same organization
Duplication of effort or data between different parts of the organization
Lack of alignment between cloud systems and business goals
New security issues—for example, the risk of deploying cloud systems with weak or lacking access
control
Cloud governance ensures that asset deployment, system integration, data security, and other aspects
of cloud computing are properly planned, considered, and managed. It is highly dynamic, because
cloud systems can be created and maintained by different groups in the organization, involve third-
party vendors, and can change on a daily basis. Cloud governance initiatives ensure this complex
environment meets organizational policies, security best practices and compliance obligations.
Cloud governance can help break down cloud systems into individual accounts that represent
departments, projects or cost centers within the organization. This is a best practice recommended by
many cloud providers. Segregating cloud workloads into separate accounts can improve cost control,
visibility, and limits the business impact of security issues.
The following five principles are a good starting point for building your cloud governance model:
1. Compliance with policies and standards—cloud usage standards must be consistent with
regulations and compliance standards used by your organization and others in your industry.
2. Alignment with business objectives—cloud strategy should be an integral part of the overall
business and IT strategy. All cloud systems and policies should demonstrably support
business goals.
3. Collaboration—there should be clear agreements between owners and users of cloud
infrastructure, and other stakeholders in the relevant organizational units, to ensure they make
appropriate and mutually beneficial use of cloud resources.
Lecture: 32
What is Virtual Machine Security in Cloud?
The term “Virtualized Security,” sometimes known as “security virtualization,” describes security
solutions that are software-based and created to operate in a virtualized IT environment. This is
distinct from conventional hardware-based network security, which is static and is supported by
equipment like conventional switches, routers, and firewalls.
Virtualized security is flexible and adaptive, in contrast to hardware-based security. It can be
deployed anywhere on the network and is frequently cloud-based so it is not bound to a specific
device.
In Cloud Computing, where operators construct workloads and applications on-demand,
virtualized security enables security services and functions to move around with those on -demand-
created workloads. This is crucial for virtual machine security. It’s crucial to protect virtualized
security in cloud computing technologies such as isolating multitenant setups in public cloud
settings. Because data and workloads move around a complex ecosystem including several
providers, virtualized security’s flexibility is useful for securing hybrid and multi-cloud settings.
Types of Hypervisors
Type-1 Hypervisors
Its functions are on unmanaged systems. Type 1 hypervisors include Lynx Secure, RTS
Hypervisor, Oracle VM, Sun xVM Server, and Virtual Logic VLX. Since they are placed on bare
systems, type 1 hypervisor do not have any host operating systems.
Type-2 Hypervisor
It is a software interface that simulates the hardware that a system typically communicates with.
Examples of Type 2 hypervisors include containers, KVM, Microsoft Hyper V, VMWare Fusion,
Virtual Server 2005 R2, Windows Virtual PC, and VMware workstation 6.0.
Type I Virtualization
In this design, the Virtual Machine Monitor (VMM) sits directly above the hardware and
eavesdrops on all interactions between the VMs and the hardware. On top of the VMM is a
management VM that handles other guest VM management and handles the majority of a hardware
connections. The Xen system is a common illustration of this kind of virtualization design.
Type II virtualization
In these architectures, like VMware Player, allow for the operation of the VMM as an application
within the host operating system (OS). I/O drivers and guest VM management are the
responsibilities of the host OS.
Cost-Effectiveness: Cloud computing’s virtual machine security enables businesses to keep their
networks secure without having to significantly raise their expenditures on pricey proprietary
hardware. Usage-based pricing for cloud-based virtualized security services can result in significant
savings for businesses that manage their resources effectively.
Flexibility: It is essential in a virtualized environment that security operations can follow workloads
wherever they go. A company is able to profit fully from virtualization while simultaneously
maintaining data security thanks to the protection it offers across various data centers, in multi-cloud,
and hybrid-cloud environments.
Operational Efficiency: Virtualized security can be deployed more quickly and easily than
hardware-based security because it doesn’t require IT, teams, to set up and configure several
hardware appliances. Instead, they may quickly scale security systems by setting them up using
centralized software. Security-related duties can be automated when security technology is used,
which frees up more time for IT employees.
Regulatory Compliance: Virtual machine security in cloud computing is a requirement for
enterprises that need to maintain regulatory compliance because traditional hardware-based security
is static and unable to keep up with the demands of a virtualized network.
Lecture: 33
Identity and Access Management (IAM) is a combination of policies and technologies that allows
organizations to identify users and provide the right form of access as and when required. There has
been a burst in the market with new applications, and the requirement for an organization to use
these applications has increased drastically. The services and resources you want to access can be
specified in IAM. IAM doesn’t provide any replica or backup. IAM can be used for many purposes
such as, if one want’s to control access of individual and group access for your AWS resources. With
IAM policies, managing permissions to your workforce and systems to ensure least-privilege
permissions becomes easier. The AWS IAM is a global service.
Root User: The root user will automatically be created and granted unrestricted rights. We can
create an admin user with fewer powers to control the entire Amazon account.
IAM Users: We can utilize IAM users to access the AWS Console and their administrative
permissions differ from those of the Root user and if we can keep track of their login information.
Example
With the aid of IAM users, we can accomplish our goal of giving a specific person access to every
service available in the Amazon dashboard with only a limited set of permissions, such as read-only
access. Let’s say user-1 is a user that I want to have read-only access to the EC2 instance and no
additional permissions, such as create, delete, or update. By creating an IAM user and attaching user-
1 to that IAM user, we may allow the user access to the EC2 instance with the required permissions.
Hadoop is an open-source software framework that is used for storing and processing large
amounts of data in a distributed computing environment. It is designed to handle big data and is
based on the MapReduce programming model, which allows for the parallel processing of large
datasets.
Cloud platforms like AWS, Azure, and Google Cloud offer Hadoop-based services (Amazon EMR,
Azure HDInsight, Google Dataproc) allowing users to deploy and manage Hadoop clusters without
dealing with infrastructure setup.
Features of hadoop:
1. It is fault tolerance.
2. It is highly available.
3. Its programming is easy.
4. It have huge flexible storage.
5. It is low cost.
Serverless Hadoop:
Evolution toward serverless computing models (e.g., AWS Lambda, Azure Functions) has
influenced the development of serverless Hadoop services, allowing users to execute Hadoop tasks
without managing underlying infrastructure.
Hadoop and Big Data Integration:
Cloud-based Hadoop solutions integrate with various big data technologies and analytics tools,
facilitating efficient data processing, analysis, and visualization.
Elasticity and Scalability:
Cloud-based Hadoop platforms provide scalability and elasticity, enabling users to dynamically
adjust cluster sizes based on workload demands without provisioning or managing physical
infrastructure.
Security and Compliance:
Advancements in cloud security have led to improved security features and compliance
certifications for Hadoop deployments on cloud platforms, ensuring data protection and regulatory
adherence.
Managed Services and Automation:
Cloud providers offer managed Hadoop services with automated provisioning, monitoring, and
maintenance, simplifying the management of Hadoop clusters and reducing administrative
overhead.
Lecture: 35
What is MapReduce?
A MapReduce is a data processing tool which is used to process the data parallelly in a distributed
form. It was developed in 2004, on the basis of paper titled as "MapReduce: Simplified Data
Processing on Large Clusters," published by Google.
The MapReduce is a paradigm which has two phases, the mapper phase, and the reducer phase. In
the Mapper, the input is given in the form of a key-value pair. The output of the Mapper is fed to the
reducer as input. The reducer runs only after the Mapper is over. The reducer too takes input in key-
value format, and the output of reducer is the final output.
MapReduce Architecture:
Client: The MapReduce client is the one who brings the Job to the MapReduce for processing.
There can be multiple clients available that continuously send jobs for processing to the Hadoop
MapReduce Manager.
Job: The MapReduce Job is the actual work that the client wanted to do which is comprised of so
many smaller tasks that the client wants to process or execute.
Hadoop MapReduce Master: It divides the particular job into subsequent job-parts.
Job-Parts: The task or sub-jobs that are obtained after dividing the main job. The result of all the
job-parts combined to produce the final output.
Input Data: The data set that is fed to the MapReduce for processing.
Output Data: The final result is obtained after the processing.
In MapReduce, we have a client. The client will submit the job of a particular size to the Hadoop
MapReduce Master. Now, the MapReduce master will divide this job into further equivalent job-
parts. These job-parts are then made available for the Map and Reduce Task. This Map and Reduce
task will contain the program as per the requirement of the use-case that the particular company is
solving. The developer writes their logic to fulfill the requirement that the industry requires. The
input data which we are using is then fed to the Map Task and the Map will generate intermediate
key-value pair as its output. The output of Map i.e. these key-value pairs are then fed to the
Reducer and the final output is stored on the HDFS. There can be n number of Map and Reduce
tasks made available for processing the data as per the requirement. The algorithm for Map and
Reduce is made with a much optimized way such that the time complexity or space complexity is
minimum.
Usage of MapReduce
It can be used in various application like document clustering, distributed sorting, and web
link-graph reversal.
It can be used for distributed pattern-based searching.
We can also use MapReduce in machine learning.
It was used by Google to regenerate Google's index of the World Wide Web.
It can be used in multiple computing environments such as multi-cluster, multi-core, and
mobile environment.
Lecture: 36
The App Engine SDK facilitates the testing and professionalization of applications by emulating the
production runtime environment and allowing developers to design and test applications on their
own PCs. When an application is finished being produced, developers can quickly migrate it to App
Engine, put in place quotas to control the cost that is generated, and make the programmer available
to everyone. Python, Java, and Go are among the languages that are currently supported.
Features of App Engine
Runtimes and Languages
To create an application for an app engine, you can use Go, Java, PHP, or Python. You can develop
and test an app locally using the SDK’s deployment toolkit. Each language’s SDK and nun time are
unique. Your program is run in a:
Java Run Time Environment version 7
Python Run Time environment version 2.7
PHP runtime’s PHP 5.4 environment
Go runtime 1.2 environment
Lecture: 37
The standard environment makes it easy to build and deploy an application that runs reliably even
under heavy load and with large amounts of data.
Google App Engine (GAE) supports a number of programming languages for building applications,
including:
Go, Java, PHP, Python, .NET, Node.js, Ruby, and C#.
GAE also supports other languages through custom runtimes. GAE provides four runtime
environments, one for each of the supported programming languages.
GAE is suitable for applications that need to scale quickly in response to traffic spikes, or that are
intended to run for free or at a low cost. GAE offers a secure, sandboxed environment for
applications to run in. It also has the following features:
In the standard environment, applications run in a sandbox using the runtime environment of one
of the languages supported by GAE. The environment is suitable for applications that need to scale
rapidly (up or down) in response to sudden or extreme traffic spikes. It can also be used for
applications that are intended to run for free or at very low cost.
The standard GAE environment offers seconds-level instance startup times and deployment times,
supports background threads and can be scaled to zero. It includes automatic in-place
security patches and allows developers to access many Google Cloud application programming
interfaces (APIs) and services, including Cloud Storage, Cloud SQL and Google Tasks.
The GAE flexible environment automatically scales apps up or down while also balancing the load.
It allows developers to customize the runtimes provided for the supported languages or provide their
own runtime by supplying a custom Docker image or Dockerfile.
The environment is suitable for many kinds of apps, including apps that do the following:
Receive consistent traffic.
Experience regular traffic fluctuations.
Run in a Docker container with a custom runtime or source code written in other
programming languages.
Use frameworks with native code.
Access Google Cloud project resources residing in the Google Compute Engine network.
Lecture: 38
What is OpenStack?
It is a free open standard cloud computing platform that first came into existence on July 21′
2010. It was a joint project of Rackspace Hosting and NASA to make cloud computing more
ubiquitous in nature. It is deployed as Infrastructure-as-a-service(IaaS) in both public and private
clouds where virtual resources are made available to the users. The software platform contains
interrelated components that control multi-vendor hardware pools of processing, storage,
networking resources through a data center. In OpenStack, the tools which are used to build this
platform are referred to as “projects”. These projects handle a large number of services including
computing, networking, and storage services. Unlike virtualization, in which resources such as
RAM, CPU, etc are abstracted from the hardware using hypervisors, OpenStack uses a number of
APIs to abstract those resources so that users and the administrators are able to directly interact
with the cloud services.
OpenStack components
Apart from various projects which constitute the OpenStack platform, there are nine major services
namely Nova, Neutron, Swift, Cinder, Keystone, Horizon, Ceilometer, and Heat. Here is the basic
definition of all the components which will give us a basic idea about these components.
Features of OpenStack
Modular architecture: OpenStack is designed with a modular architecture that enables
users to deploy only the components they need. This makes it easier to customize and scale
the platform to meet specific business requirements.
Multi-tenancy support: OpenStack provides multi-tenancy support, which enables multiple
users to access the same cloud infrastructure while maintaining security and isolation
between them. This is particularly important for cloud service providers who need to offer
services to multiple customers.
Open-source software: OpenStack is an open-source software platform that is free to use
and modify. This enables users to customize the platform to meet their specific requirements,
without the need for expensive proprietary software licenses.
Distributed architecture: OpenStack is designed with a distributed architecture that enables
users to scale their cloud infrastructure horizontally across multiple physical servers. This
makes it easier to handle large workloads and improve system performance.
API-driven: OpenStack is API-driven, which means that all components can be accessed
and controlled through a set of APIs. This makes it easier to automate and integrate with
other tools and services.
Comprehensive dashboard: OpenStack provides a comprehensive dashboard that enables
users to manage their cloud infrastructure and resources through a user-friendly web
interface. This makes it easier to monitor and manage cloud resources without the need for
specialized technical skills.
Resource pooling: OpenStack enables users to pool computing, storage, and networking
resources, which can be dynamically allocated and de-allocated based on demand. This
enables users to optimize resource utilization and reduce waste.
The technologies that aid the cloud federation and cloud services are:
1. OpenNebula
It is a cloud computing platform for managing heterogeneous distributed data center
infrastructures. It can use the resources of its interoperability, leveraging existing informa tion
technology assets, protecting the deals, and adding the application programming interface (API).
2. Aneka coordinator
The Aneka coordinator is a proposition of the Aneka services and Aneka peer components
(network architectures) which give the cloud ability and performance to interact with other cloud
services.
Cloud Computing (KCS-713) 92 | P a g e
3. Eucalyptus
Eucalyptus defines the pooling computational, storage, and network resources that can be
measured scaled up or down as application workloads change in the utilization of the soft ware. It is
an open-source framework that performs the storage, network, and many other computational
resources to access the cloud environment.
Levels of Cloud Federation
Cloud Federation stack
Each level of the cloud federation poses unique problems and functions at a different level of the IT
stack. Then, several strategies and technologies are needed. The answers to the problems
encountered at each of these levels when combined form a reference model for a cloud federation.
Conceptual Level
The difficulties in presenting a cloud federation as an advantageous option for using services rented
from a single cloud provider are addressed at the conceptual level. At this level, it’s crucial to define
the new opportunities that a federated environment brings in comparison to a single-provider
solution and to explicitly describe the benefits of joining a federation for service providers or service
users.
At this level, MOCC is put into precise and becomes a reality. At this stage, it’s crucial to deal with
the following difficulties:
How ought a federation to should be portrayed?
How should a cloud service, a cloud provider, or an agreement be modeled and represented?
How should the regulations and standards that permit providers to join a federation be
defined?
What procedures are in place to resolve disputes between providers?
What obligations does each supplier have to the other?
When should consumers and providers utilize the federation?
What categories of services are more likely to be rented than purchased?
Which percentage of the resources should be leased, and how should we value the resources
that are leased?
Cloud Computing (KCS-713) 93 | P a g e
Infrastructure Level
The technological difficulties in making it possible for various cloud computing systems to work
together seamlessly are dealt with at the infrastructure level. It addresses the technical obstacles
keeping distinct cloud computing systems from existing inside various administrative domains.
These obstacles can be removed by using standardized protocols and interfaces.
Lecture: 40
Are you ready to unleash the power of DevOps to streamline your Software Development and
Deployment? Learn about our DevOps Live Course at GeeksforGeeks, created for all professionals
in practice with continuous integration, delivery, and deployment. Learn about leading tools,
industry best practices, and techniques for automation through an interactive session with hands-
on live projects. Whether you are new to DevOps or looking to improve your skills, this course
equips you with everything needed to streamline workflows and deliver excellent quality software in
the least amount of time. Learn to take your skills in DevOps to the next level now, and harness the
power of streamlined software development!
Future of Federation.
Federated cloud computing is expected to be a major part of the future of cloud computing, with the
potential to improve performance, reduce costs, and increase flexibility:
Democratization: Federated cloud computing can help businesses connect with customers,
partners, and employees worldwide.
Performance: Federated cloud computing can improve performance by sharing computing
assets, servers, and facilities between multiple cloud service providers.
Cost: Federated cloud computing can reduce costs by partial subcontracting computing
resources and facilities from nearby cost-efficient provinces.
Flexibility: Federated cloud computing can increase flexibility by allowing organizations to
use and move between different cloud services as needed.
Sustainability: Federated cloud computing can help with sustainability by considering the
CO2 emission factor when choosing a location for resources
Enhanced Interoperability: As organizations increasingly adopt multi-cloud strategies,
there will be a stronger push for interoperability standards. This will allow seamless
integration and communication between different cloud services, making it easier to
manage resources across diverse environments.
Data Sovereignty and Compliance: With stricter regulations around data privacy and
sovereignty, cloud federation will enable organizations to distribute data across regions
while complying with local laws. This will help organizations maintain control over their
data while benefiting from global cloud resources.
Hybrid and Multi-Cloud Architectures: Businesses are increasingly adopting hybrid and
multi-cloud models to avoid vendor lock-in and optimize costs. Federation will be crucial
in managing resources, workloads, and data across these diverse environments, facilitating
better resource allocation and redundancy.
Automation and Orchestration: Automation tools will play a vital role in managing
federated environments. Orchestration platforms will enable dynamic resource allocation
and workload management across multiple clouds, improving efficiency and reducing
operational overhead.
Edge Computing Integration: The rise of edge computing will necessitate federated cloud
solutions that can manage resources and workloads across both centralized and edge
environments. This will enhance the performance and scalability of applications that
require real-time processing.
Overall, the future of federation in cloud computing will be characterized by greater flexibility,
enhanced collaboration, and a stronger focus on security and compliance, enabling organizations to
harness the full potential of cloud technologies.
(CO3)
Question 1: Explain Cloud Computing reference model with diagram.
Question 2: What are the different security challenges in cloud computing? Discuss
each inbrief.
Question 3: List the Layer used in layered cloud architecture.
Question 4: What do you mean by cloud Storage? Describe its types.
Question 5: Illustrate NIST cloud computing reference architecture in details.
(CO4)
Question 1: What is load balancing? What are the advantages of load balancing?
Question 2: Explain the following challenges in cloud. i) Security. ii) Data lock-in and
Question 3: Standardization. iii) Fault tolerance and Disaster recovery.
Question 4: Why is cloud management important?
(CO5)
Question 1: Take a suitable example and explain the concept of MapReduce.
Question 2: Give a suitable definition of cloud federation stack and explain it in detail.
Question 3: What do you mean by Google App Engine (GAE) and Open stack?
Question 4: Give a suitable definition of cloud federation stack and explain it in detail
Question 5: What do you mean by Hadoop and its History? Why is it important? Illustrate
Hadoop architecture.