|
UNIT 1 |
||||||||||||||||||||||||||||||||
|
Introduction/Historical
Development |
||||||||||||||||||||||||||||||||
|
Unit-01/Lecture-01 |
||||||||||||||||||||||||||||||||
|
I dont care where my
servers are, who manages them, where my documents are stored, or where my
applications are hosted. I just want them always available and access them
from any device connected through Internet. And I am willing to pay for this
service for as a long as I need it. Figure : Cloud
Computing Historical
development Concept
originated from telecommunication companies changing to VPN 1999:
Salesforce.com ‐ delivery of applications via web 2002: Amazon
launches Amazon Web Services (AWS) 2006 :
Google Docs, Amazon Elastic Compute Cloud (EC2) 2008:
Eucalyptus
2009: Microsoft Azure The idea of renting computing services by leveraging large
distributed computing facilities has been around for long time. It dates back
to the days of the mainframes in the early 1950s. From there on, technology
has evolved and been refined. This process has created a series of favourable
conditions for the realization of cloud computing. In tracking
the historical evolution, we briefly review five core technologies that
played an important role in the realization of cloud computing. These
technologies are distributed systems, virtualization, Web 2.0, service orientation,
and utility computing. 1) Distributed systems: Clouds are essentially large distributed computing
facilities that make available their services to third parties on demand. A distributed system is a collection of independent
computers that appears to its users as a single coherent system. Ψ This is a general
definition that includes a variety of computer systems, but it evidences two
very important elements characterizing a distributed system: the fact that it
is composed of multiple independent components and that these components are
perceived as a single entity by users. Ψ This is
particularly true in the case of cloud computing, in which clouds hide the
complex architecture they rely on and provide a single interface to users.
The primary purpose of distributed systems is to share resources and utilize
them better. This is true in the case of cloud computing, where this concept
is taken to the extreme and resources (infrastructure, runtime environments,
and services) are rented to users. In fact, one of the driving factors of
cloud computing has been the availability of the large computing facilities
of IT giants (Amazon, Google) that found that offering their computing
capabilities as a service provided opportunities to better utilize their
infrastructure. Ψ Distributed systems
often exhibit other properties such as heterogeneity, openness, scalability, transparency,
concurrency, continuous availability, and independent failures. Ψ Three major
milestones have led to cloud computing:
mainframe computing, cluster computing, and grid computing. Mainframes:
These were the first examples of large computational
facilities leveraging multiple processing units. Mainframes were powerful,
highly reliable computers specialized for large data movement and massive
input/output (I/O) operations. They were mostly used by large organizations
for bulk data processing tasks such as online transactions, enterprise
resource planning, and other operations involving the processing of
significant amounts of data. Even though mainframes cannot be considered distributed
systems, they offered large computational power by using multiple processors,
which were presented as a single entity to users. One of the most attractive
features of mainframes was the ability to be highly reliable computers that
were always on and capable of tolerating failures transparently. No system
shutdown was required to replace failed components, and the system could work
without interruption. Batch processing was the main application of mainframes.
Now their popularity and deployments have reduced, but evolved versions of
such systems are still in use for transaction processing (such as online
banking, airline ticket booking, supermarket and telcos, and government
services). Cluster
computing: Started as a low-cost alternative to the use of mainframes
and supercomputers. The technology advancement that created faster and more
powerful mainframes and supercomputers eventually generated an increased
availability of cheap commodity machines as a side effect. These machines
could then be connected by a high-bandwidth network and controlled by
specific software tools that manage them as a single system.
A computer cluster is a group of linked computers, working
together closely thus in many respects forming a single computer.
The components of a cluster are connected to each other
through fast local area networks
Types of Cluster § High Availability
Cluster § Load Balancing
Cluster HPC Cluster Starting in the 1980s, clusters become the standard
technology for parallel and high-performance computing. Built by commodity
machines, they were cheaper than mainframes and made high-performance
computing available to a large number of groups, including universities and
small research labs. Cluster technology contributed considerably to the
evolution of tools and frameworks for distributed computing, including Condor
, Parallel Virtual Machine (PVM) , and Message Passing Interface (MPI) One of the attractive features of clusters was that the
computational power of commodity machines could be leveraged to solve problems
that were previously manageable only on expensive supercomputers. Moreover,
clusters could be easily extended if more computational power was required. Grids: Grid computing appeared in the early 1990s as an evolution
of cluster computing. In an analogy to the power grid, grid computing
proposed a new approach to access large computational power, huge storage
facilities, and a variety of services. Users can consume resources in the
same way as they use other utilities such as power, gas, and water. Grids
initially developed as aggregations of geographically dispersed clusters by
means of Internet connections. These clusters belonged to different organizations, and
arrangements were made among them to share the computational power. Different
from a large cluster, a computing grid was a dynamic aggregation of
heterogeneous computing nodes, and its scale was nationwide or even
worldwide. Grid computing is a term referring to the
combination of computer resources from multiple administrative domains to reach
a common goal.
2) Virtualization: Virtualization is another core technology for cloud
computing. It encompasses a collection of solutions allowing the abstraction
of some of the fundamental elements for computing, such as hardware, runtime
environments, storage, and networking. Virtualization has been around for
more than 40 years, but its application has always been limited by
technologies that did not allow an efficient use of virtualization solutions.
Today these limitations have been substantially overcome, and virtualization
has become a fundamental element of cloud computing. This is particularly
true for solutions that provide IT infrastructure on demand. Virtualization
confers that degree of customization and control that makes cloud computing
appealing for users and, at the same time, sustainable for cloud services
providers. 3) Web 2.0 The Web is the primary interface through which cloud
computing delivers its services. At present, the Web encompasses a set of
technologies and services that facilitate interactive information sharing,
collaboration, user-cantered design, and application composition. This
evolution has transformed the Web into a rich platform for application
development and is known as Web 2.0. This term captures a new way in which
developers architect applications and deliver services through the Internet and
provides new experience for users of these applications and services. Web 2.0 brings interactivity and flexibility into Web
pages, providing enhanced user experience by gaining Web-based access to all
the functions that are normally found in desktop applications. These
capabilities are obtained by integrating a collection of standards and
technologies such as XML, Asynchronous JavaScript and XML (AJAX), Web
Services, and others. 4)
Service-oriented computing Service orientation is the core reference model for cloud
computing systems. This approach adopts the concept of services as the main
building blocks of application and system development. Service-oriented computing (SOC) supports the development
of rapid, low-cost, flexible, interoperable, and evolvable applications and
systems. A service is an abstraction representing a self-describing
and platform-agnostic component that can perform any functionanything from a
simple function to a complex business process. Virtually any piece of code that performs a task can be
turned into a service and expose its functionalities through a
network-accessible protocol. 5) Utility-oriented computing Utility computing is a vision of computing that defines a
service-provisioning model for compute services in which resources such as
storage, compute power, applications, and infrastructure are packaged and
offered on a pay-per-use basis. The idea of providing computing as a utility
like natural gas, water, power, and telephone connection has a long history
but has become a reality today with the advent of cloud computing. Among the earliest forerunners of this vision we can
include the American scientist John McCarthy, who, in a speech for the
Massachusetts Institute of Technology (MIT) centennial in 1961, observed: If
computers of the kind I have advocated become the computers of the future,
then computing may someday be organized as a public utility, just as the
telephone system is a public utility... The
computer utility could become the basis of a new and important industry. -----------------REFERENCE
{book: Mastering cloud computing, author: Buyya, page number: 15-21} Video Link: http://nptel.ac.in/courses/106106129/21
Unit-01/Lecture-02 Pros and Cons of Cloud Computing Advantages of Cloud Computing Cloud computing offers numerous advantages both to end users and
businesses of all sizes. The obvious huge advantage is that you no more have
to support the infrastructure or have the knowledge necessary to develop and
maintain the infrastructure, development environment or application, as were
things up until recently. The burden has been lifted and someone else is
taking care of all that. Businesses are now able to focus on their core
business by outsourcing all the hassle of IT infrastructure. Cost Efficiency This is the biggest advantage of cloud computing, achieved by the
elimination of the investment in stand-alone software or servers. By
leveraging clouds capabilities, companies can save on licensing fees and at
the same time eliminate overhead charges such as the cost of data storage,
software updates, management etc. The cloud is in general available at much cheaper rates than
traditional approaches and can significantly lower the overall IT expenses.
At the same time, convenient and scalable charging models have emerged (such
as one-time-payment and pay-as-you-go), making the cloud even more
attractive. Convenience and continuous
availability Public clouds offer services that are available wherever the end user
might be located. This approach enables easy access to information and
accommodates the needs of users in different time zones and geographic
locations. As a side benefit, collaboration booms since it is now easier than
ever to access, view and modify shared documents and files. Moreover, service uptime is in most cases guaranteed, providing in
that way continuous availability of resources. The various cloud vendors
typically use multiple servers for maximum redundancy. In case of system
failure, alternative instances are automatically spawned on other machines. Backup and Recovery The process of backing up and recovering data is simplified since
those now reside on the cloud and not on a physical device. The various cloud
providers offer reliable and flexible backup/recovery solutions. In some
cases, the cloud itself is used solely as a backup repository of the data
located in local computers. Cloud is environmentally friendly The cloud is in general more efficient than the typical IT
infrastructure and It takes fewer resources to compute, thus saving energy.
For example, when servers are not used, the infrastructure normally scales
down, freeing up resources and consuming less power. At any moment, only the
resources that are truly needed are consumed by the system. Resiliency and Redundancy A cloud deployment is usually built on a robust architecture thus
providing resiliency and redundancy to its users. The cloud offers automatic
failover between hardware platforms out of the box, while disaster recovery
services are also often included. Scalability and Performance Scalability is a built-in feature for cloud deployments. Cloud
instances are deployed automatically only when needed and as a result, you
pay only for the applications and data storage you need. Hand in hand, also
comes elasticity, since clouds can be scaled to meet your changing IT system
demands. Regarding performance, the systems utilize distributed architectures
which offer excellent speed of computations. Again, it is the providers
responsibility to ensure that your services run on cutting edge machinery.
Instances can be added instantly for improved performance and customers have
access to the total resources of the clouds core hardware via their
dashboards. Quick deployment and ease of
integration A cloud system can be up and running in a very short period, making
quick deployment a key benefit. On the same aspect, the introduction of a new
user in the system happens instantaneously, eliminating waiting periods. Furthermore, software integration occurs automatically and organically
in cloud installations. A business is allowed to choose the services and applications
that best suit their preferences, while there is minimum effort in
customizing and integrating those applications. Increased Storage Capacity The cloud can accommodate and store much more data compared to a
personal computer and in a way offers almost unlimited storage capacity. It
eliminates worries about running out of storage space and at the same time It
spares businesses the need to upgrade their computer hardware, further
reducing the overall IT cost. Device Diversity and Location
Independence Cloud computing services can be accessed via a plethora of electronic
devices that are able to have access to the internet. These devices include
not only the traditional PCs, but also smart phones, tablets etc. With the
cloud, the Bring your own device (BYOD) policy can be easily adopted;
permitting employees to bring personally owned mobile devices to their
workplace. An end-user might decide not only which device to use, but also where
to access the service from. There is no limitation of place and medium. We
can access our applications and data anywhere in the world, making this
method very attractive to people. Cloud computing is in that way especially
appealing to international companies as it offers the flexibility for its
employees to access company files wherever they are. Disadvantages of Cloud Computing: As made clear from the above, cloud computing is a tool that offers
enormous benefits to its adopters. However, being a tool, it also comes with
its set of problems and inefficiencies. Lets address the most significant
ones. Security and privacy in the Cloud Security is the biggest concern when it comes to cloud computing. By
leveraging a remote cloud based infrastructure, a company essentially gives
away private data and information, things that might be sensitive and
confidential. It is then up to the cloud service provider to manage, protect
and retain them, thus the providers reliability is very critical. A
companys existence might be put in jeopardy, so all possible alternatives
should be explored before a decision. On the same note, even end users might
feel uncomfortable surrendering their data to a third party. Similarly, privacy in the cloud is another huge issue. Companies and
users have to trust their cloud service vendors that they will protect their
data from unauthorized users. The various stories of data loss and password
leakage in the media do not help to reassure some of the most concerned
users. Dependency and vendor lock-in One of the major disadvantages of cloud computing is the implicit
dependency on the provider. This is what the industry calls vendor lock-in
since it is difficult, and sometimes impossible, to migrate from a provider
once you have rolled with him. If a user wishes to switch to some other
provider, then it can be really painful and cumbersome to transfer huge data
from the old provider to the new one. This is another reason why you should
carefully and thoroughly contemplate all options when picking a vendor. Technical Difficulties and Downtime Certainly the smaller business will enjoy not having to deal with the
daily technical issues and will prefer handing those to an established IT
company, however you should keep in mind that all systems might face
dysfunctions from time to time. Outage and downtime is possible even to the
best cloud service providers, as the past has shown. Additionally, you should remember that the whole setup is dependent on
internet access, thus any network or connectivity problems will render the
setup useless. As a minor detail, also keep in mind that it might take
several minutes for the cloud to detect a server fault and launch a new
instance from an image snapshot. Limited control and flexibility Since the applications and services run on remote, third party virtual
environments, companies and users have limited control over the function and
execution of the hardware and software. Moreover, since remote software is
being used, it usually lacks the features of an application running locally. Increased Vulnerability Related to the security and privacy mentioned before, note that cloud
based solutions are exposed on the public internet and are thus a more
vulnerable target for malicious users and hackers. Nothing on the Internet is
completely secure and even the biggest players suffer from serious attacks
and security breaches. Due to the interdependency of the system, If there is
a compromise one one of the machines that data is stored, there might be a
leakage of personal information to the world. -----------------------REFERENCE {Internet link: http://www.javacodegeeks.com/2013/04/advantages-and-disadvantages-of-cloud-computing-cloud-computing-pros-and-cons.html
Unit-01/Lecture-03 Characteristics and Vision of Cloud
Computing Characteristics
of cloud computing as per NIST[RGPV/ Dec 2013(7)] Figure: Characteristics of cloud computing. On-demand
self-service: A consumer can unilaterally provision computing
capabilities, such as server time and network storage, as needed
automatically without requiring human interaction with each services
provider. Broad network
access: Capabilities are available over the network and accessed
through standard mechanisms that promote use by heterogeneous thin or thick
client platforms (e.g., mobile phones, laptops, and PDAs). Resource pooling: The providers
computing resources are pooled to serve multiple consumers using a
multi-tenant model, with different physical and virtual resources dynamically
assigned and reassigned according to consumer demand. There is a sense of
location independence in that the customer generally has no control or
knowledge over the exact location of the provided resources but may be able
to specify location at a higher level of abstraction (e.g., country, state,
or data centre). Examples of resources include storage, processing, memory,
network bandwidth, and virtual machines. Rapid elasticity: Capabilities can
be rapidly and elastically provisioned, in some cases automatically, to
quickly scale out and rapidly released to quickly scale in. To the consumer,
the capabilities available for provisioning often appear to be unlimited and
can be purchased in any quantity at any time. Measured Service: Cloud systems
automatically control and optimize resource use by leveraging a metering
capability at some level of abstraction appropriate to the type of service
(e.g., storage, processing, bandwidth, and active user accounts). Resource
usage can be monitored, controlled, and reported providing transparency for
both the provider and consumer of the utilized service. Vision of Cloud Computing: ·
Cloud
computing allows anyone with a credit card to provision virtual hardware,
runtime environments, and services. These are used for as long as needed,
with no up-front commitments required. The entire stack of a computing system
is transformed into a collection of utilities, which can be provisioned and
composed together to deploy systems in hours rather than days and with
virtually no maintenance costs. ·
This
opportunity, initially met with scepticism, has now become a practice across
several application domains and business sectors (see Figure 3). The demand
has fast-tracked technical development and enriched the set of services
offered, which have also become more sophisticated and cheaper. ·
Despite
its evolution, the use of cloud computing is often limited to a single
service at a time or, more commonly, a set of related services offered by the
same vendor. Previously, the lack of effective standardization efforts made
it difficult to move hosted services from one vendor to another. The
long-term vision of cloud computing is that IT services are traded as
utilities in an open market, without technological and legal barriers. ·
In
this cloud marketplace, cloud service providers and consumers, trading cloud
services as utilities, play a central role. Many of the technological
elements contributing to this vision already exist. Different stake-holders
leverage clouds for a variety of services. The need for ubiquitous storage
and compute power on demand is the most common reason to consider cloud
computing. A scalable runtime for applications is an attractive option for
application and system developers that do not have infrastructure or cannot
afford any further expansion of existing infrastructure. The capability for
Web-based access to documents and their processing using sophisticated
applications is one of the appealing factors for end users. Figure : Cloud Computing Vision ·
In all
these cases, the discovery of such services is mostly done by human
intervention: a person (or a team of people) looks over the Internet to identify
offerings that meet his or her needs. We imagine that in the near future it
will be possible to find the solution that matches our needs by simply
entering our request in a global digital market that trades cloud computing
services. ·
The
existence of such a market will enable the automation of the discovery
process and its integration into existing software systems, thus allowing
users to transparently leverage cloud resources in their applications and
systems. The existence of a global platform for trading cloud services will
also help service providers become more visible and therefore potentially
increase their revenue. A global cloud market also reduces the barriers
between service consumers and providers: it is no longer necessary to belong
to only one of these two categories. ·
For
example, a cloud provider might become a consumer of a competitor service in
order to fulfil its own promises to customers. These are all possibilities
that are introduced with the establishment of a global cloud computing
marketplace and by defining effective standards for the unified
representation of cloud services as well as the interaction among different
cloud technologies. A considerable shift toward cloud computing has already
been registered, and its rapid adoption facilitates its consolidation. ·
Moreover,
by concentrating the core capabilities of cloud computing into large data
centres, it is possible to reduce or remove the need for any technical
infrastructure on the service consumer side. This approach provides
opportunities for optimizing data centre facilities and fully utilizing their
capabilities to serve multiple users. This consolidation model will reduce
the waste of energy and carbon emissions, thus contributing to a greener IT
on one end and increasing revenue on the other end. ------------------REFERENCE {book: Mastering cloud computing,
author: Buyya, page number: 5-7} Video Link: http://nptel.ac.in/courses/106106129/22
|
|
Unit-01/Lecture-04 Cloud Reference Model and Environment Cloud computing Reference Model ·
A fundamental
characteristic of cloud computing is the capability to deliver, on demand, a
variety of IT services that are quite diverse from each other. This variety
creates different perceptions of what cloud computing is among users. Despite
this lack of uniformity, it is possible to classify cloud computing services
offerings into three major categories: Infrastructure-as-a-Service (IaaS),
Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). Figure - Cloud
computing Reference Model ·
These categories are
related to each other as described in Figure above, which provides an organic
view of cloud computing. We refer to this diagram as the Cloud Computing
Reference Model. The model organizes the wide range of cloud computing services
in to a layered view that walks the computing stack from bottom to top. ·
At the base of the stack,
Infrastructure-as-a-Service
solutions deliver infrastructure on demand in the form of virtual
hardware, storage, and networking. Virtual hardware is utilized to provide
compute on demand in the form of virtual machine instances. These are created
at users request on the providers infrastructure, and users are given tools
and interfaces to configure the software stack in stalled in the virtual machine.
The pricing model is usually defined in terms of dollars per hour, where the hourly
cost is influenced by the characteristics of the virtual hardware. Virtual storage is delivered in the form of raw disk space or object store.
The former complements a virtual hardware offering that requires persistent storage.
The latter is a more high-level abstraction for storing entities rather than files.
Virtual networking identifies the collection of services that manage the net-
working among virtual instances and their connectivity to the Internet or private
networks. ·
Platform-as-a-Service solutions are the next step in the stack. They deliver scalable and
elastic runtime environments on demand and host the execution of applications.
These services are backed by a core middleware platform that is responsible for
creating the abstract environment where applications are deployed and executed.
It is the responsibility of the service provider to provide scalability and to
manage fault tolerance, while users are requested to focus on the logic of
the application developed by leveraging the providers APIs and libraries. ·
At the top of the stack, Software-as-a-Service
solutions provide applications and services on demand. Most of the common
functionalities of desktop applicationssuch as office automation, document
management, photo editing, and customer relationship management (CRM)
softwareare replicated on the providers infrastructure and made more
scalable and accessible through a browser on demand. These applications are shared across multiple users whose interaction
is isolated from the other users. The SaaS layer is also the area of social
networking Websites, which leverage cloud-based infrastructures to sustain
the load generated by their popularity. ·
Each layer provides a
different service to users. IaaS solutions
are sought by users who want to leverage cloud computing from building
dynamically scalable computing systems requiring a specific software stack.
IaaS services are therefore used to develop scalable Websites or for
background processing. PaaS
solutions provide scalable programming platforms for developing applications
and are more appropriate when new systems have to be developed. SaaS solutions target mostly end
users who want to benefit from the elastic scalability of the cloud without
doing any software development, installation, configuration, and maintenance. Figure :The Cloud Computing Reference
Model -----------------------REFERENCE {book: Mastering cloud computing, author: Buyya, page number:
11-13} |
|
Cloud
computing environments The
creation of Cloud-computing environments encompasses both the development of
applications and systems that leverage Cloud-computing solutions and the
creation of frameworks, platforms, and infrastructures delivering
Cloud-computing services. Application
Development ·
Applications that leverage
cloud computing benefit from its capability to dynamically scale on demand.
One class of applications that takes the biggest advantage of this feature is
that of Web applications. Their performance is mostly influenced by the work
load generated by varying user demands. ·
With the diffusion of
Web2.0 technologies, the Web has become a platform for developing rich and
complex applications, including enterprise applications that now leverage the
Internet as the preferred channel for service delivery and user interaction.
These applications are characterized by complex processes that are triggered
by the interaction with users and develop through the interaction between
several tiers behind the Web front end. ·
These are the applications
that are mostly sensible to inappropriate sizing of infrastructure and
service deployment or variability in workload. Another class of applications that
can potentially gain considerable advantage by leveraging cloud computing is
represented by resource-intensive applications. ·
These can be either
data-intensive or compute-intensive applications. In both cases, considerable
amounts of resources are required to complete execution in a reasonable
timeframe. It is worth noticing that these large amounts of resources are not
needed constantly or for a long duration. For example, scientific
applications can require huge computing capacity to perform large-scale
experiments once in a while, so it is not feasible to buy the infrastructure
supporting them. In this case, cloud computing can be the solution.
Resource-intensive applications are not interactive and they are mostly
characterized by batch processing. Infrastructure
and System Development ·
Distributed computing, virtualization, service
orientation, and Web 2.0 form the core technologies enabling the provisioning
of cloud services from anywhere on the globe. Developing applications and
systems that leverage the cloud requires knowledge across all these
technologies. Moreover, new challenges need to be addressed from design and
development standpoints. ·
Distributed computing is a foundational model for
cloud computing because cloud systems are distributed systems. Besides
administrative tasks mostly connected to the accessibility of resources in
the cloud, the extreme dynamism of cloud systemswhere new nodes and services
are provisioned on demandconstitutes the major challenge for engineers and
developers. ·
This characteristic is pretty peculiar to cloud
computing solutions and is mostly addressed at the middleware layer of
computing system. Infrastructure-as-a-Service solutions provide the
capabilities to add and remove resources, but it is up to those who deploy
systems on this scalable infrastructure to make use of such opportunities
with wisdom and effectiveness. Platform-as-a-Service solutions embed into
their core offering algorithms and rules that control the provisioning
process and the lease of resources. These can be either completely
transparent to developers or subject to fine control. Computing platforms and technologies: ·
Development
of a cloud computing application happens by leveraging platforms and
frameworks that provide different types of services, from the bare metal
infrastructure to customizable applications serving specific purposes. v Amazon web services (AWS) v Google App Engine v Microsoft Azure v Hadoop Ψ Force.com and
Salesforce.com Ψ Manjrasoft Aneka Figure:
Cloud Computing Environments ---------------------REFERENCE {book: Mastering cloud computing,
author: Buyya, page number: 22-26}
Unit-01/Lecture-05 Cloud Services Requirements Cloud
Services Requirements: There are 6 basic cloud service requirements for
enterprises to adapt cloud services 1. Availability - with loss less DR Customers want their IT services be up and
available at all times. But in reality, computers sometimes fail. This
implies that the service provider should have implemented a reliable disaster
recovery (DR) mechanism - where in the service provider can move the customer
from one data center to another seamlessly and the customer does not even have
to know about it. 2.
Portability of Data & Applications Ideally a cloud offering must be able to allow
customers to move out their data & applications from one service provider
to another - just like customers can switch from one telephone service provider
to another. As applications are being written on standard platforms - Java,
PHP, Python, etc. It should be possible to move the customer owned
applications from one service provider to another. 3. Data Security Security is the key concern for all customers -
since the applications and the data is residing in the public cloud; it is
the responsibility of the service provider for providing adequate security. The service provider must have a robust
Information Security Risk Management process - which is well understood by
the customer, and customer must clearly know his responsibilities as well. As
there are several types of cloud offerings (SaaS, PaaS, IaaS etc), there will
be different sets of responsibility for the customer and the service provider
depending on the cloud service offering. 4. Manageability Managing the cloud infrastructure from the
customer perspective must be under the control of the customer admin.
Customers of Cloud services must be able to create new accounts, must be able
to provision various services, do all the user account monitoring -
monitoring for end user usage, data usage monitoring etc. The end users would
like to see the availability, performance and configuration/provisioning data
for the set of infrastructure they are using in the cloud. 5. Elasticity Customer on Cloud computing have a dynamic
computing loads. At times of high load, they need greater amount of computing
resources available to them on demand, and when the work loads are low, the
computing resources are released back to the cloud pool. Customer expects the
service provider to charge them for what they have actually used in the
process. To provide an elastic computing resource, the service provider must
be able to dynamically provision resources as needed and have adequate charge
back systems to bill the customer. 6. Federated System There are several reasons as to why customers
will need a Federated cloud system. Customers may have to buy services from
several cloud service providers for various services - email from Google,
online sales transaction services from Amazon and ERP from another vendor
etc. In such cases customer want their cloud applications to interact with
other services from several vendors to provide a seamless end to end IT services.
This implies that each of the cloud services must have an interface with
other cloud services for load sharing & application interoperability. In a federated environment there is potentially
an infinite pool of resources. To build such a system, there should be
inter-cloud framework agreements between multiple service providers, and
adequate chargeback systems in place. ------------------------REFERENCE {book: cloud computing, author: kumar saurabh, page number:
1.7-1.8} |
|
Unit-01/Lecture-06 Cloud and Dynamic Infrastructure Cloud And Dynamic Infrastructure Cloud computing
represents not a revolution but an evolution of existing enterprise computing
architectures dating back to the first instance of networked computing. The
difference is that today there are vast advances in virtualization in nearly
every aspect of the data center. There has also been an emergence of a
dynamic understanding and need to control what, how, and when the cloud
provides services to the consumers of those services. This cloud dynamic
paradigm must be able to intercept application and data traffic, interpret
the current context, and instruct the cloud infrastructure on how to most
efficiently deliver the request. These requirements include scalability,
adaptability, extensibility, and manageability. Now the question that remains however what is does this new
dynamic computing architecture look like and what is required above and
beyond the standard tools we have today to qualify as a cloud? Figure: Cloud Architecture An important strategic consideration is the integration of
all the pieces of the infrastructure to create the cloud. This includes
everything from the bare metal to the users to all of the elements in
between. In addition there are different ways to view the interaction of
various operations within the architecture depending on your role. The cloud
computing architecture is built upon several functional component blocks. For
example compute resources or deployment environments which are organized into
specific layers of a pyramid as shown in the Fig. above. The width of these
layers represents the depth of technical expertise required to build or
deploy that layer. The pyramid layers are in the notions of Infrastructure as
a Service (IaaS), Platform as a Service (PaaS), and Software as a Service
(SaaS). At the apex of the pyramid are users accessing the applications in
the center is a dynamic control plane that traverses all others and provides
real-time connectivity, information coordination, and flow control between
the layers. In order to maximize the value of cloud architecture each
component must exist in some state or another. For example dynamic control
plane elements are a requirement at every layer of the cloud architecture in
order for cloud environments to be operationally efficient and on demand. Designing the Cloud Designing for
cloud is really talks about effectively utilizing computing resources through
Internet. In cloud computing all computing resources that we get are
services, such as Infrastructure as a Service (IaaS), Platform as a Service
(PaaS), Software as a Service (SaaS) etc. Design for cloud can also be
defined as breaking the application related components in such a way that it
can be delivered as service, that is what we see in the Fig.1.15. Before architecting an application we should analyze the
term Service Oriented Architecture (SOA). Figure: Designing
the cloud If we do not know how to use SOA effectively we end up in
loss wasting more money for the computing resources which are not effectively
used, also we face problems in scaling up and down. If we design your
application architecture, more relied on SOA then it proves to be the good
design for cloud, but also we should consider about good coding techniques,
otherwise we screw up all things. Dynamic Control
Plane Traditional traffic and computing systems often break
processing into two components: the data plane and the control plane. 1. Data plane. The data plane is concerned with the basic process of
getting data be it input from a system requests from users and returning data
output, files, or responses. The data plane is the basic connectivity that
handles traffic flow to and from destinations. 2. Control plane. The control plane is more concerned with managing that data
in response to context and policy. It changes the how of the data plane. The core idea of cloud architecture is to connect users who
might be mobile and moving between LANs, WLANs, Internet connections and
services to the applications they consume. Which can also move between cloud
centers based on different needs of the business? As hardware resources and
servers are decommissioned, as applications are moved from development to
production, as entire applications are moved from the internal data center to
a cloud provider the cloud architecture requires a dynamic control plane that
monitors the data and ensures that it is constantly connected in the best
possible manner. The dynamic control pane must be able to Intercept traffic
as it traverses the cloud, Interpret the data, and instruct the cloud
architecture on how to efficiently connect the user to the appropriate
application instance. (a) Intercept traffic. The dynamic control
plane must be in a position to have visibility to all traffic between the
user and the application and across the entire cloud platform. Without the
ability to intercept traffic and data requests, the dynamic control plane
cannot appropriately do any of the other things it needs to do. Not only must
it be able to see the actual flow it must also be able to intercept the
metadata or context of the traffic. The dynamic control plane must have the
visibility into the data plane and all components that operate within the
data plane. (b) Interpret the data. The information
about data and application flow is not enough. The dynamic control plane must
have the ability to understand the elements of context in relation to the
individual request, business policy, and other application and cloud traffic.
The dynamic control plane must constantly evaluate the context and policy to
make intelligent decisions at any given movement. (c) Instruct the cloud architecture. Once the dynamic
control plane has all the available information and analyzed the context it
must instruct the architecture on how best to connect the two endpoints. The
dynamic control plane must also communicate with the infrastructure the data
plane to change the current delivery model to meet the needs identified. This might require sending requests to the a new instance
of the application or to a new data center, changing compression and
encryption settings, or even instructing other components in the architecture
to create or destroy resources necessary to delivering that application or
data. It might also be necessary for the dynamic control plane to simply deny
access based on the policies and context at any given movement. ---------------------REFERENCE {book: cloud computing, author: kumar saurabh, page number:
1.10} Video Link: http://nptel.ac.in/courses/106106129/23
|
||||||||
|
UNIT 1/ LECTURE 7 |
||||||||
|
Cloud Adoption and Rudiments |
||||||||
|
·
Adoption
term states that accepting the services of new Technology. ·
Adoption
means following some kind of new trend or existing trend or a technology. The Cloud Adoption Model Cloud
Adoption is a strategic move by organisations of reducing cost, mitigating
risk and achieving scalability of data base capabilities. Cloud adoption may
be up to various degrees in an organisation, depending on the depth of
adoption. In fact the depth of adoption yields insight into the maturity of
best practices, enterprise-ready cloud services availability. Organisations
that go ahead with the strategic decision of adopting cloud based
technologies have to identify potential security thefts and controls,
required to keep the data and applications in the cloud secured. Hence there
is a need for compliance assessment during cloud adoption. The
following measures are taken for compliance assessment to ensure security and
accountability of data and applications in the cloud services: §
Matching the security requirements
of the organisation with the security capabilities of the cloud service
provider §
Analysing the security policies of
the cloud service provider along with history of transparency and security
related practices §
Proper understanding of the
technical aspects of data and traffic flow §
Proper understanding and documentation
of the roles and responsibilities of the cloud service provider §
Understanding of the
certifications and compliances that can be leveraged from the cloud service
provider Cloud
Adoption is useful when the recovery management, backup recovery based implementations
are required. Cloud
Adoption Barriers to Cloud
Computing Adoption in the Enterprise Although there are many benefits to adopting cloud
computing, there are also some significant barriers to adoption. ·
Security and
Privacy
Because cloud computing represents a new computing model, there is a great
deal of uncertainty about how security at all levels (e.g., network, host,
application, and data levels) can be achieved. That uncertainty has
consistently led information executives to state that security is their
number one concern with cloud computing. The ability of cloud computing to
adequately address privacy regulations has been called into question. Organizations
today face numerous different requirements attempting to protect the privacy
of individuals information, and it is not clear (i.e., not yet established)
whether the cloud computing model provides adequate protection of such
information, or whether organizations will be found in violation of
regulations because of this new model. ·
Connectivity and
Open Access The full potential of cloud computing depends on the
availability of high-speed access to all. Such connectivity, rather like
electricity availability, globally opens the possibility for industry and a
new range of consumer products. Connectivity and open access to computing
power and information availability through the cloud promotes another era of
industrialization and the need for more sophisticated consumer products. ·
Reliability Enterprise
applications are now so critical that they must be reliable and available to
support 24/7 operations. In the event of failure or outages, contingency
plans must take effect smoothly, and for disastrous or catastrophic failure,
recovery plans must begin with minimum disruption. Each aspect of reliability
should be carefully considered when engaging with a CSP, negotiated as part
of the SLA, and tested in failover drills. Additional costs may be associated
with the required levels of reliability; however, the business can do only so
much to mitigate risks and the cost of a failure. Establishing a track record
of reliability will be a prerequisite for widespread adoption. ·
Interoperability The
interoperability and portability of information between private clouds and
public clouds are critical enablers for broad adoption of cloud computing by
the enterprise. Many companies have made considerable progress toward
standardizing their processes, data, and systems through implementation of
ERPs. This process has been enabled by scalable infrastructures to create
single instances, or highly integrated connections between instances, to
manage the consistency of master and transaction data and produce reliable
consolidated information. Even with these improved platforms, the speed at
which businesses change may still outpace the ability of IT organizations to
respond to these changes. SaaS applications delivered through the cloud
provide a low-capital, fast-deployment option. Depending on the application,
it is critical to integrate with traditional applications that may be
resident in a separate cloud or on traditional technology. The standard for
interoperability is either an enabler or a barrier to interoperability, and
permits maintenance of the integrity and consistency of a companys
information and processes. ·
Economic Value The growth of
cloud computing is predicated on the return on investment that accrues. It
seems intuitive that by sharing resources to smooth out peaks, paying only
for what is used, and cutting upfront capital investment in deploying IT
solutions, the economic value will be there. There will be a need to
carefully balance all costs and benefits associated with cloud computingin
both the short and long terms. Hidden costs could include support, disaster
recovery, application modification, and data loss insurance. There will be
threshold values whereby consolidating investments or combining cloud
services makes sense; for example, it might not be efficient or cost
effective to utilize multiple autonomous SaaS applications. Each may
contract for disaster recovery program services. There is a point where
economies of scale mean these functions should be combined in a similar
service. Application usage may begin with a low volume of transactions that
can be supported with semi-automated master data management. As usage expands
and interoperability requirements for the business process become more
onerous, a new approach is needed. This evolution may be the most
cost-effective approach; however, there is a risk that the business transition
costs from one solution to another may change the cost and benefit equation,
and hence the solution that should be employed. ·
Changes in the IT
Organization The IT organization will be affected by cloud computing,
as has been the case with other technology shifts. There are two dimensions
to shifts in technology. The first is acquiring the new skill sets to deploy
the technology in the context of solving a business problem, and the second
is how the technology changes the IT role. During the COBOL era, users rarely
programmed, the expectations of the user interface varied, and the
adaptability of the solution was low. Training
was delivered in separate manuals and the user used the computer to solve
problems only down predefined paths. With the advent of fourth-generation
languages, roles within IT, such as system analyst and programmer, became
merged into analyst/programmer, users started to write their own reports, and
new applications, including operational data stores, data entry, and query
programs, could be rapidly deployed in weeks. ITs role will change once
again: the speed of change will impact the adoption of cloud technologies and
the ability to decompose mature solutions from hype to deliver real value
from cloud technology; and the need to maintain the controls to manage IT
risk in the business will increase. -------------------------REFERENCE {book: cloud computing, author: kumar saurabh, page number:
1.11} CLOUD RUDIMENTS In this topic we will discuss the essentials or rudiments of
cloud computing Here the higher
level capabilities of the cloud are as follows:- ·
Resource
Aggregation and integration: Cloud
solution Integrates or aggregates the information of these 3 resources which
are shown in the fig of previous slide. After that the integrated information
will be sent into a central logical view.
Application Services Here app services states that the
services related to a particular s/w .The Application instances represents
the agreement between service provider and the consumer to use services on-
Demand basis. Cloud also provides the facility of reservation of resources.
It means that it is guaranteed that at a given point of time the resources or
the services will surely available for consumer.
Self-Service portal Self-service is facility provided by
cloud to consumers. This supports the account owners signing up and being
able to use the purchased capacity. Users can request machine or entire
multi-machine environments and monitor and control them using a web based self-service
portal. ·
Allocation Engine The DRM provides the automated
allocation and reallocations of resources. The DRM is key component of any
cloud solutions that maximize the efficiency the IAAS. The DRM is a Dynamic
resource management. ·
Reporting and accounting The actual
resource allocation and the actual cloud usage will be get recorded or
collected in an accounting database. The data will be available centrally to
create reports of usage .For example:-capacity allocated vs. capacity used by
the consumer.
Self-service We have
discussed earlier that this a self service portal provided by the cloud.
Dynamic Workload management Here Cloud
virtual machines are enabled with automated softwares that controls the
workflow requests. Also the virtual machines are enabled with a lifecycle
that increase the effective utilization of resources.
Resource Automation It clearly shows that the resources will automatically
plus effectively utilize as and when they are required by the service
consumers.
Metering of resources With the help of
the metering of resources in any cloud user organization would bring the
transparency to the business and environment for the management to see the
usage of resources. ---------------------REFERENCE {book: cloud computing, author: kumar saurabh, page number:
1.11}
|
|
Unit-01/Lecture-08 Cloud
Applications Overview
of cloud applications: Cloud
computing has gained huge popularity in industry due to its ability to host
applications for which the services can be delivered to consumers rapidly at
minimal cost. Applications from a range of domains, from scientific to
engineering, gaming, and social networking, are considered. 1).
ECG analysis in the cloud: ·
An important application is the use of cloud
technologies to support doctors in providing more effective diagnostic
processes. In particular, here we discuss electrocardiogram (ECG) data
analysis on the cloud. ·
ECG is the electrical manifestation of the
contractile activity of the hearts myocardium. This activity produces a
specific waveform that is repeated over time and that represents the
heartbeat. The analysis of the shape of the ECG waveform is used to identify
arrhythmias and is the most common way to detect heart disease. ·
Cloud computing technologies allow the remote
monitoring of a patients heartbeat data, data analysis in minimal time, and
the notification of first-aid personnel and doctors should these data reveal
potentially dangerous conditions. This way a patient at risk can be
constantly monitored without going to a hospital for ECG analysis. ·
At the same time, doctors and first-aid personnel
can instantly be notified of cases that require their attention. An
illustration of the infrastructure and model for supporting remote ECG monitoring
is shown in Figure. Wearable computing devices equipped with ECG sensors
constantly monitor the patients heartbeat. ·
Such information is transmitted to the patients
mobile device, which will eventually forward it to the cloud-hosted Web
service for analysis. The Web service forms the front-end of a platform that
is entirely hosted in the cloud and that leverages the three layers of the
cloud computing stack: SaaS, PaaS, and IaaS. ·
The Web service constitute the SaaS application that
will store ECG data in the Amazon S3 service and issue a processing request
to the scalable cloud plat- form. The runtime platform is composed of a
dynamically sizable number of instances running the workflow engine and
Aneka. The number of workflow engine instances is controlled according to the
number of requests in the queue of each instance, while Aneka controls the
number of EC2 instances used to execute the single tasks defined by the
workflow engine for a single ECG proces- sing job. Each of these jobs
consists of a set of operations involving the extraction of the waveform from
the heartbeat data and the comparison of the waveform with a reference
waveform to detect anomalies. If anomalies are found, doctors and first-aid
personnel can be notified to act on a specific patient.
Figure: An online health monitoring system hosted in the cloud. 2). Protein
structure prediction: ·
Applications in biology often require high computing
capabilities and often operate on large datasets that cause extensive I/O
operations. Because of these requirements, biology applications have often
made extensive use of supercomputing and cluster computing infrastructures.
Similar capabilities can be leveraged on demand using cloud computing
technologies in a more dynamic fashion, thus opening new opportunities for
bioinformatics applications. ·
Protein structure prediction is a computationally
intensive task that is fundamental to different types of research in the life
sciences. Among these is the design of new drugs for the treatment of
diseases. The geometric structure of a protein cannot be directly inferred
from the sequence of genes that compose its structure, but it is the result
of complex computations aimed at identifying the structure that minimizes the
required energy. ·
This task requires the investigation of a space with
a massive number of states, consequently creating a large number of
computations for each of these states. The computational power required for
protein structure prediction can now be acquired on demand, without owning a
cluster or navigating the bureaucracy to get access to parallel and distributed
computing facilities. ·
Cloud computing grants access to such capacity on a
pay-per-use basis. One
projectthatinvestigatestheuseofcloudtechnologiesforproteinstructurepredictionis
Jeeva an integrated Web portal that enables scientists to off load the prediction
task to a computing cloud based on Aneka. 3). Gene
expression data analysis for cancer diagnosis: ·
Gene expression profiling is the measurement of the
expression levels of thousands of genes at once. It is used to understand the
biological processes that are triggered by medical treatment at a cellular
level. ·
Together with protein structure prediction, this
activity is a fundamental component of drug design, since it allows
scientists to identify the effects of a specific treatment. Another important
application of gene expression profiling is cancer diagnosis and treatment.
Cancer is a disease characterized by uncontrolled cell growth and
proliferation. ·
This behavior occurs because genes regulating the
cell growth mutate. This means that all the cancerous cells contain mutated
genes. In this context, gene expression profiling is utilized to provide a
more accurate classification of tumors. ·
The classification of gene expression data samples
into distinct classes is a challenging task. The dimensionality of typical
gene expression datasets ranges from several thousands to over tens of
thousands of genes. However, only small sample sizes are typically avail-able
for analysis. This problem is often approached with learning classifiers,
which generate a population of condition-action rules that guide the
classification process. Figure: Gene
expression data analysis for cancer diagnosis 4). Satellite
image processing: ·
Geo-science applications collect, produce, and analyze
massive amounts of geospatial and non spatial-data. ·
As the technology progresses and our planet becomes more
instrumented (i.e., through the deployment of sensors and satellites for monitoring),
the volume of data that needs to be processed increases significantly. In particular,
the geographic information system (GIS) is a major element of geosciences applications.
GIS applications capture, store, manipulate, analyze, manage, and present all
types of geographically referenced data. This type of information is now becoming
increasingly relevant to a wide variety of application domains: from advanced
farming to civil security and natural resources management. ·
As a result, a considerable amount of geo-referenced
data is ingested into computer systems for further processing and analysis. Cloud
computing is an attractive option for executing these demanding tasks and extracting
meaningful information to support decision makers.
5). Social
networking : ·
Social networking applications have grown
considerably in the last few years to become the most active sites on the
Web. To sustain their traffic and serve millions of users seamlessly,
services such as Twitter and Face book have leveraged cloud computing
technologies. The possibility of continuously adding capacity while systems
are running is the most attractive feature for social networks, which
constantly increase their user base.
·
Facebook: Facebook is
probably the most evident and interesting environment in social networking.
With more than 800 million users, it has become one of the largest Websites
in the world. To sustain this incredible growth, it has been fundamental that
Facebook be capable of continuously adding capacity and developing new
scalable technologies and software systems while maintaining high performance
to ensure a smooth user experience. 6). CRM & ERP CRM
and ERP are two important technology acronyms that businesses need to know
about. Both are valuable business software solutions but they are used to
manage and achieve very different business goals. What exactly is
CRM? CRM is an
abbreviation for customer relationship management and is a phrase used to
describe all aspects of interaction that a company has with its customer,
whether it is sales or service-related. It's a business strategy that helps
your business to better understand your customer, retain customers, provide
excellent customer service, win new clients and increase profitably. Many aspects
of CRM rely heavily on technology. CRM software will collect, manage and link
information about the customer. You can use CRM software to create marketing
campaigns, view a customer's entire of history of interactions with your
business and use it to streamline daily business and sales tasks. The
cloud CRM applications has given a large contribution for the small scale
companies to have a fully-functional CRM s/w without receiving large amount
of money and in a simple pay per use manner.
What is ERP? ERP is an
abbreviation for enterprise resource planning. ERP software is used to manage
the business. It integrates all facets of an operation, including product
planning, development, manufacturing processes, human resources, financials
and sales and marketing. Today's ERP
solutions are designed to help you to improve the operational efficiency of
business resources. Businesses use ERP systems to integrate all its business
processes into a single system to efficiently and effectively manage business
goals. Cloud
ERP is an approach to enterprise resource planning (ERP) that makes use of
cloud computing platforms and services to provide a business with more
flexible business process transformation. ---------------REFERENCE {book: Mastering cloud computing, author: buyya, page number:
353-360} Video Link: http://nptel.ac.in/courses/106106129/25
|
|
||||||||||||||||||||||||