Compiled Note On Cloud Computing - 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Compiled Note on Cloud Computing

Cloud Computing
Credit: 4
Course Objectives:
The main objectives of this course is focus on the real world goals for services provided by cloud
computing, the constrains on cloud computing infrastructure, specification of cloud system
structure and implementation of specifications, theevolution of cloud computing over time and
across computing arena and also concerned with the processes, methods, and tools for
development of cloud infrastructure.
1. Introduction to cloud computing (8 Hrs)
History of Cloud Computing, features of cloud computing, cloud services requirements, cloud
and dynamic infrastructure, challenges of cloud computing
2. Cloud Computing Architecture (12 Hrs)
Cloud computing Characteristics, Cloud reference model -platform as service, software as a
service, infrastructure as service, Cloud deployment models -Public clouds, private clouds,
Community cloud, hybrid clouds, Cloud design and implementation using SOA, security, trust
and privacy
3. Cloud management (6 Hrs)
Resiliency, Provisioning, asset Management, cloud governance, disaster recovery
4. Cloud Virtualization technology (10 Hrs)
Virtualization defined, virtualization benefits, server virtualization, hypervisor management
software, virtual infrastructure requirements
5. Cloud Programming Models (12 Hrs)
Thread programming, Task programming, Map-reduce programming
6. Cloud platforms, applications and case studies ( 12Hrs)
Web services, appEngine, azure Platform, Aneka, open challenges, scientific applications,
business, consumer applications.

Yogendra Tamang 070-MSCS-670


Chapter 1 Introduction to Cloud Computing and Chapter 2: Cloud Computing Architecture
The National Institute of Standards and Technology (NIST) provides a concise and specific
definition:
“Cloud computing is a model for enabling convenient, on-demand network access to a shared
pool of configurable computing resources (e.g., networks, servers, storage, applications, and
services) that can be rapidly provisioned and released with minimal management effort or
service provider interaction.”
 Cloud Computing is a general term used to describe a new class of network based
computing that takes place over the Internet,
 basically a step on from Utility Computing
 A collection/group of integrated and networked hardware, software and Internet
infrastructure (called a platform).
 Using the Internet for communication and transport provides hardware, software
and networking services to clients
 These platforms hide the complexity and details of the underlying infrastructure from
users and applications by providing very simple graphical interface or API (Applications
Programming Interface).
 In addition, the platform provides on demand services that are always on anywhere,
anytime and anyplace.
 Pay for use and as needed, elastic
 scale up and down in capacity and functionalities
 The hardware and software services are available to
 general public, enterprises, corporations and businesses markets

How it Works?
 Utilizes the network as a means to connect user end point to resources that are
centralized in a data-center.
 The data center may be accessed via the internet or a company network, or both.

Yogendra Tamang 070-MSCS-670


 Allows access from a variety of end points such as a mobile phone, a PC or a tablet.
 Cloud services may be designed to be vendor agnostic, working equally well with Linux,
Mac and PC platforms.
 Allows access from any internet connected location, allowing Telecommuting, and
Outsourcing.
 A user endpoint with minimal software requirements may submit a task for processing.
The service provider may pool the processing power of multiple remote computers in
"the cloud" to achieve the task, such as data warehousing of hundreds of terabytes,
managing and synchronizing multiple documents online, or computationally intensive
work.
Comparison
 Cloud computing shares characteristics with:
 Autonomic computing
 Client–server model
 Grid computing
 Mainframe computer
 Utility computing
 Peer-to-peer
 Service-oriented computing
1.0 History of Cloud Computing
The idea of cloud computing has been around for long time. In tracking historical evolution, we can see five
different technologies that played an important role in realization of cloud computing. These are
 Distributed Systems
 Virtualization
 Web 2.0
 Service-Oriented Computing
 Utility-Oriented Computing
Distributed Systems
“A distributed system is a collection of independent computers that appears to its users as a single coherent
system”
-Tanenbaum
Distributed system has multiple independent components and these components are perceived as single entity
by users. The primary purpose of cloud computing is to share resources and utilize them better. This concept is

Yogendra Tamang 070-MSCS-670


used extremely in cloud. Three major milestones have led to cloud computing. They are: mainframe computing,
cluster computing and grid computing.
Virtualization
Virtualization is a technology that allows creation of different computing environments. The most common
example of virtualization is hardware virtualization. This technology allows simulating the hardware interface
expected by an operating system. They provide isolated and customizable environments with minor impact on
the performance.
Web 2.0
The web 2.0 facilitates interactivity and flexibility into web pages. Technologies such as XML, AJAX, and Web
Services etc. are used. Example of Web 2.0 applications are Google Documents, Google Maps, Flickr, Facebook
etc.
Services Oriented Computing
It is core reference model for cloud computing systems. It applies concept of services as main building blocks of
application and System Development. SOC supports development of rapid, low cost, flexible, interoperable and
evolvable applications and systems.
SOC introduces and diffused two important concepts which are also fundamental for cloud computing: Quality
of Service and Software as a Service.
Utility Oriented Computing
Utility computing is vision of computing as model
in which resources like storage, compute power,
applications, and infrastructures are packaged
and offered as pay per use basis. This is idea in
which computing is provided as utility as Water,
Electricity, Natural gas etc.

Yogendra Tamang 070-MSCS-670


Architecture:
 Involves multiple components communicating with each other over application
programming interfaces, usually web services and 3-tier architecture.
 Multiple programs each doing one thing well and working together over universal
interfaces.
 Complexity is controlled and the resulting systems are more manageable than their
monolithic counterparts.
The two most significant components of cloud computing architecture are known as the front
end and the back end.

The front end is the part seen by the


client, i.e. the computer user. This
includes the client’s network and
applications used to access the cloud
via a user interface such as a web
browser.
The back end of the cloud computing
architecture is the ‘cloud’ itself,
comprising various computers,
servers and data storage devices.

Key Characteristics
 Agility improves with users' ability to rapidly and inexpensively re-provision technological
infrastructure resources.
 Application Programming Interface (API) accessibility to software that enables machines
to interact with cloud software in the same way the user interface facilitates interaction
between humans and computers.

Yogendra Tamang 070-MSCS-670


 Cost is claimed to be greatly reduced and in a public cloud delivery model capital
expenditure is converted to operational expenditure.
 Device and location independence enable users to access systems using a web browser
regardless of their location or what device they are using
 Multi-tenancy enables sharing of resources and costs across a large pool of users thus
allowing for:
 Centralization of infrastructure in locations with lower costs
 Peak-load capacity increases
 Utilization and efficiency improvements for systems that are often only 10–20%
utilized.
 Reliability is improved if multiple redundant sites are used, which makes cloud computing
suitable for business continuity and disaster recovery.
 Scalability via dynamic "on-demand" provisioning of resources on a fine-grained, self-
service basis near real-time.
 Performance is monitored, and consistent and loosely coupled architectures are
constructed using web services as the system interface.
 Security could improve due to centralization of data.
Common Characteristics

Massive Scale Resilient Computing

Homogeneity Geographic Distribution

Virtualization Service Orientation

Low Cost Software Advanced Security

Essential Characteristics

On Demand Self-Service

Broad Network Access Rapid Elasticity

Resource Pooling Measured Service


Yogendra Tamang 070-MSCS-670
Service Models or Cloud Reference Models
There are three types of Cloud
 Infrastructure as a Service(IaaS)
 Platform as a Service(PaaS)
 Software as a Service(SaaS)

Layers:
 Client
 Application
 Platform
 Infrastructure
Figure:- Layers in Cloud Computing
 Server

Software as a Platform as a Infrastructure as


Service (SaaS) Service (PaaS) a Service (IaaS)

SalesForce CRM
LotusLive

Google Apps
Engine
Windows Azure

Yogendra Tamang 070-MSCS-670


Different Cloud Computing Layers

Application Service MS Live/ExchangeLabs, IBM,


(SaaS) Google Apps; Salesforce.com
Quicken Online, Zoho, Cisco
Google App Engine, Mosso,
Application Platform
Force.com, Engine Yard,
Facebook, Heroku, AWS
Server Platform 3Tera, EC2, SliceHost,
GoGrid, RightScale, Linode
Storage Platform
Amazon S3, Dell, Apple, ...

Services Description

Services – Complete business services such as


Services PayPal, OpenID, OAuth, Google Maps, Alexa
Application – Cloud based software that
eliminates the need for local installation such
Application Application as Google Apps, Microsoft Online
Focused
Development – Software development platforms
used to build custom cloud based applications
Development
(PAAS & SAAS) such as SalesForce

Platform – Cloud based platforms, typically


Platform provided using virtualization, such as Amazon
ECC, Sun Grid
Storage – Data storage or cloud based NAS
Infrastructure Storage such as CTERA, iDisk, CloudNAS
Focused
Hosting – Physical data centers such as those
Hosting run by IBM, HP, NaviSite, etc.

Yogendra Tamang 070-MSCS-670


Cloud Deployment
Models
 Public Cloud
 Community Cloud
 Hybrid Cloud and
Hybrid IT Delivery
 Combined Cloud
 Private Cloud

Public Cloud

A public cloud (also called External Cloud) is one based on the standard cloud
computing model, in which a service provider makes resources, such as applications
and storage, available to the general public over the Internet. Public cloud services may
be free or offered on a pay-per-usage model.

Main Benefits of Public Cloud are:

• Easy and inexpensive set-up


because hardware, application
and bandwidth costs are
covered by the provider.
• Scalability to meet needs.
• No wasted resources because
you pay for what you use.

Yogendra Tamang 070-MSCS-670


Figure:- Public Cloud
Private Cloud

Private cloud (also called internal cloud or


corporate cloud) is a marketing term for a
proprietary computing architecture that
provides hosted services to a limited
number of people behind a firewall.
Advances in virtualization and distributed
computing have allowed corporate
network and datacenter administrators to
effectively become service providers that
meet the needs of their "customers" Figure:- Private Cloud
within the corporation.

Hybrid Cloud

A hybrid cloud is a composition of at least


one private cloud and at least one public
cloud. A hybrid cloud is typically offered in
one of two ways: a vendor has a private
cloud and forms a partnership with a
public cloud provider, or a public cloud
provider forms a partnership with a
vendor that provides private cloud
platforms
Figure:- Hybrid Cloud
Community Clouds
Community clouds are a deployment pattern suggested by NIST, where semi-private clouds will
be formed to meet the needs of a set of related stakeholders or constituents that have
common requirements or interests.
Communities of Interest (COI) constructs typical of the federal government may be enabled
by community clouds to augment their wiki-centric collaboration processes with cloud enabled
Capabilities as well.

Yogendra Tamang 070-MSCS-670


Why use Cloud Computing?
 Website traffic fluctuates.
 Visitors expect steady, fast performance regardless.
 An infrastructure able to handle peak traffic requires capital investment.
 No matter how big you build it, it still may not be enough.
 Having to choose between overspending or under-provisioning is a classic dilemma.
By deploying your web application in the cloud, you can avoid this dilemma. You can
eliminate the upfront
fixed investment, and still
gain access to compute
resources to meet peak
loads with on demand
scalability, while still
paying only for the
compute time you
actually use.

Yogendra Tamang 070-MSCS-670


Pros and Cons:

Selection factors for cloud

Yogendra Tamang 070-MSCS-670


Opportunities and Challenges
The use of the cloud provides a number of opportunities:
 It enables services to be used without any understanding of their infrastructure.
 Cloud computing works using economies of scale:
 It potentially lowers the outlay expense for start-up companies, as they
would no longer need to buy their own software or servers.
 Cost would be by on-demand pricing.
 Vendors and Service providers claim costs by establishing an ongoing revenue
stream.
 Data and services are stored remotely but accessible from “anywhere”.
In parallel there has been backlash against cloud computing:
 Use of cloud computing means dependence on others and that could possibly limit
flexibility and innovation:
 The others are likely become the bigger Internet companies like Google and
IBM, who may monopolise the market.

Yogendra Tamang 070-MSCS-670


 Some argue that this use of supercomputers is a return to the time of
mainframe computing that the PC was a reaction against.
 Security could prove to be a big issue:
 It is still unclear how safe out-sourced data is and when using these services
ownership of data is not always clear.
 There are also issues relating to policy and access:
 If your data is stored abroad whose policy do you adhere to?
 What happens if the remote server goes down?
 How will you then access files?
 There have been cases of users being locked out of accounts and losing
access to data.
Advantages of Cloud Computing
 Lower computer costs:
 You do not need a high-powered and high-priced computer to run cloud
computing's web-based applications.
 Since applications run in the cloud, not on the desktop PC, your desktop PC
does not need the processing power or hard disk space demanded by
traditional desktop software.
 When you are using web-based applications, your PC can be less expensive,
with a smaller hard disk, less memory, more efficient processor...
 In fact, your PC in this scenario does not even need a CD or DVD drive, as no
software programs have to be loaded and no document files need to be
saved.
 Improved performance:
 With few large programs hogging your computer's memory, you will see
better performance from your PC.
 Computers in a cloud computing system boot and run faster because they
have fewer programs and processes loaded into memory…

Yogendra Tamang 070-MSCS-670


 Reduced software costs:
 Instead of purchasing expensive software applications, you can get most of
what you need for free-ish!
 most cloud computing applications today, such as the Google Docs
suite.
 better than paying for similar commercial software
 which alone may be justification for switching to cloud applications.
 Instant software updates:
 Another advantage to cloud computing is that you are no longer faced with
choosing between obsolete software and high upgrade costs.
 When the application is web-based, updates happen automatically
 available the next time you log into the cloud.
 When you access a web-based application, you get the latest version
 without needing to pay for or download an upgrade.
 Improved document format compatibility.
 You do not have to worry about the documents you create on your machine
being compatible with other users' applications or OSes
 There are potentially no format incompatibilities when everyone is sharing
documents and applications in the cloud.
 Unlimited storage capacity:
 Cloud computing offers virtually limitless storage.
 Your computer's current 1 Tbyte hard drive is small compared to the
hundreds of Pbytes available in the cloud.
 Increased data reliability:
 Unlike desktop computing, in which if a hard disk crashes and destroy all
your valuable data, a computer crashing in the cloud should not affect the
storage of your data.

Yogendra Tamang 070-MSCS-670


 if your personal computer crashes, all your data is still out there in the
cloud, still accessible
 In a world where few individual desktop PC users back up their data on a
regular basis, cloud computing is a data-safe computing platform!
 Universal document access:
 That is not a problem with cloud computing, because you do not take your
documents with you.
 Instead, they stay in the cloud, and you can access them whenever you have
a computer and an Internet connection
 Documents are instantly available from wherever you are
 Latest version availability:
 When you edit a document at home, that edited version is what you see
when you access the document at work.
 The cloud always hosts the latest version of your documents
 as long as you are connected, you are not in danger of having an
outdated version
 Easier group collaboration:
 Sharing documents leads directly to better collaboration.
 Many users do this as it is an important advantages of cloud computing
 multiple users can collaborate easily on documents and projects
 Device independence.
 You are no longer tethered to a single computer or network.
 Changes to computers, applications and documents follow you through the
cloud.
 Move to a portable device, and your applications and documents are still
available.
Disadvantages of Cloud Computing

Yogendra Tamang 070-MSCS-670


 Requires a constant Internet connection:
 Cloud computing is impossible if you cannot connect to the Internet.
 Since you use the Internet to connect to both your applications and
documents, if you do not have an Internet connection you cannot access
anything, even your own documents.
 A dead Internet connection means no work and in areas where Internet
connections are few or inherently unreliable, this could be a deal-breaker.
 Does not work well with low-speed connections:
 Similarly, a low-speed Internet connection, such as that found with dial-up
services, makes cloud computing painful at best and often impossible.
 Web-based applications require a lot of bandwidth to download, as do large
documents.
 Features might be limited:
 This situation is bound to change, but today many web-based applications
simply are not as full-featured as their desktop-based applications.
 For example, you can do a lot more with Microsoft PowerPoint than
with Google Presentation's web-based offering
 Can be slow:
 Even with a fast connection, web-based applications can sometimes be
slower than accessing a similar software program on your desktop PC.
 Everything about the program, from the interface to the current document,
has to be sent back and forth from your computer to the computers in the
cloud.
 If the cloud servers happen to be backed up at that moment, or if the
Internet is having a slow day, you would not get the instantaneous access
you might expect from desktop applications.
 Stored data might not be secure:
 With cloud computing, all your data is stored on the cloud.

Yogendra Tamang 070-MSCS-670


 The questions is How secure is the cloud?
 Can unauthorized users gain access to your confidential data?
 Stored data can be lost:
 Theoretically, data stored in the cloud is safe, replicated across multiple
machines.
 But on the off chance that your data goes missing, you have no physical or
local backup.
 Put simply, relying on the cloud puts you at risk if the cloud lets you
down.
 HPC(High Performance Computing) Systems:
 Not clear that you can run compute-intensive HPC applications that use
MPI/OpenMP!
 Scheduling is important with this type of application
 As you want all the VM to be co-located to minimize communication
latency!
 General Concerns:
 Each cloud systems uses different protocols and different APIs
 may not be possible to run applications between cloud based systems
 Amazon has created its own DB system (not SQL 92), and workflow system
(many popular workflow systems out there)
 So your normal applications will have to be adapted to execute on
these platforms.

Yogendra Tamang 070-MSCS-670


Chapter 3 Cloud Management
Cloud Management
Cloud Management involves managing cloud virtualized infrastructure through understanding
significant challenges in areas related to implementation and service management. For this, we
have to understand the relationship between physical and virtualized IT assets. There is Service
Level Agreement (SLA) between Customers and Service providers
To provide cloud business with a clear understanding of value the receive from IT, the cost model
must be
 Equitable:
 Controllable
 Repeatable and predictable
 Simple
 Comprehensive
Resiliency
Resiliency is capacity to quickly respond and adapt to risks, as well as opportunities. It maintains
continuous business operations even at adverse conditions. Risks may be business driven, data-
driven, event driven.
Resiliency Capabilities
Different perspective to implement resiliency are as follows:
 Facility: Power Protection
 Security: Biometric, Mirroring, Remote Backup, identity Management, email- filtering,
email-archiving
 Process: identification and documentations of critical business processes, government
regulations and standards
 Organizational: addressing geographical diversity, backup of workstation data
 Strategy and Vision: Crisis management
Provisioning
It is what we need for solution realization. It begins with Request for Solution (RFS) to build full
provisioned environment for purpose of hosting application, database etc. Provisioned
environments include development, test, Quality Assurance, Production, Disaster Recovery (DR)
Benefits of Provisioning
 Ability to measure progress of all work related to one RFCs
Yogendra Tamang 070-MSCS-670
 Continuous improvement Activities based on process measurements
 Isolation build install, configure and customize tasks from requirements, design, and h/w
setup activities
 An assembly line approach to provisioning
 Role players performing a finite set of repeatable activities
Asset Management
There is close interaction between Asset management and Change in the cloud. Asset
management deals with managing your assets that may be physical or virtualized.
Factors for supporting Asset management are as follows:
Incident Management, Software Management, Pool Management, Configuration Management,
Release Management, System Management, Operation Readiness Management, Back up
Management
Cloud Governance
There should be proper definition of roles and responsibilities within appropriate organization
structure. It deals with proper functioning of different units of the cloud. All aspects of service life
cycle need to be properly handled i.e. Model, Assemble, Deploy and Manage
Cloud governance and Compliance
Cloud compliance includes what cloud must have and governance makes them proper function-
able.

Yogendra Tamang 070-MSCS-670


Disaster Recovery
Nowadays DR and High Availability (HA) are converging but conventionally HA refers to avoiding
or recovering from non-catastrophic destructions like server failure, software failures, power
failures, network disruptions, denial of service attacks, viruses, worms etc. and usually for short
duration. DR refers to planning for recovering from business operation following catastrophic
operations like site destruction, tornados, earthquake usually for long durations. It often
involves shifting work and people to alternate facilities.
 HA and DR should follow strategy:
 Align the IT strategy with business strategy and requirement
 Justify investment in HA and DR initiatives
 Ingrain HA in the IT culture
 Define robust IT structure and invest in building HA into the design of the infrastructure.

Yogendra Tamang 070-MSCS-670


Yogendra Tamang 070-MSCS-670
Yogendra Tamang 070-MSCS-670
Chapter 4 Virtualization

Need for Virtualization


 Increased performance and computing capacity
 Underutilized hardware and software resources
 Lack of space
 Greening Initiatives

Yogendra Tamang 070-MSCS-670


 Rise in Administrative costs

Yogendra Tamang 070-MSCS-670


Characteristics of Virtualized Environment
 Increased Security
 Managed Execution
 Sharing
 Aggregation
 Emulation
 Isolation
 Portability

Figure:- Taxonomy of Execution Virtualization

Yogendra Tamang 070-MSCS-670


Execution Virtualization

Figure:- Execution Virtualization


Hardware Level Virtualization

Figure:- Hardware Level Virtualization

Yogendra Tamang 070-MSCS-670


Hypervisors
 Also called Virtual Machine Manager (VMM)
 Recreates a hardware environment where guest operating systems are installed
 Type I hypervisor
 Runs directly on top of the hardware
 Take place of the operating system
 Native virtual machine
 Type II hypervisor
 Require the support of an operating system
 Managed by the operating system
 Hosted virtual machine
Type I and Type II Hypervisors

Figure- Type I and Type II Hypervisors

Hypervisor Reference Architecture:

 Dispatcher
 Entry point of instructions
Yogendra Tamang 070-MSCS-670
 Interpreter Routines
 Executed whenever a VM executes a privileged instruction
Figure:- Hypervisor Reference Architecture
Hardware Virtualization Techniques
1. Hardware-assisted Virtualization
2. Full Virtualization
3. Para-virtualization
4. Partial Virtualization
1. Hardware-assisted Virtualization
 Hardware provides architectural support for building a virtual machine manager able to
run a guest operating system in complete isolation
 Present examples are extensions to x86-64 bit architecture introduced with Intel VT
(Vanderpool) and AMD V (Pacifica)
 Before hardware-assisted virtualization, emulation of x86 architecture was significantly
costly from performance point of view (Because x86 architecture did not meet the formal
requirements of Popek and Goldberg)
 Early products use binary translation in order to trap some sensitive instruction and
provide an emulated version
 Eg, VMware Virtual Platform (introduced by VMware in 1999)
 After 2006, Intel and AMD introduced processor extensions
Yogendra Tamang 070-MSCS-670
o Eg, Kernel-based Virtual Machine (KVM), VirtualBox, Xen, VMware, Hyper-V,
Sun xVM, Parallels
2. Full Virtualization
 Ability of running a program on top of a virtual machine directly and without any
modification, as if it were run on the raw hardware
 Complete emulation of the underlying hardware
 Advantages
 Complete isolation, enhanced security, ease of emulation of different architectures,
coexistence of different systems on the same platform
 Challenges
 Interception of privileged instructions such as I/O instructions (have to be
contained within the VMM)
 Virtual environment for all the instructions, poses some limits to the performance
 Successful and efficient implementation obtained with a combination of both hardware
and software
 accomplished through hardware-assisted virtualization
3. Paravirtualization
 Not a transparent virtualization solution
 Capability of execution of performance critical operations directly on the host
 Exposes a software interface to the virtual machine that is slightly modified from the host
 Allows implementation of thin virtual machine managers
 However, guest operating systems need to be modified and explicitly ported by
remapping performance critical operations through the virtual machine software
interface
 Possible when the source code of the operating system is available
 Or ad-hoc drivers that remap critical instructions to paravirtualization APIs
 Initially applied in the IBM VM OS families
 Xen hypervisors for Linux-based operating systems
Yogendra Tamang 070-MSCS-670
 Other solutions – VMware, Parallels, TRANGO, Wind River, and XtratuM
 Partial emulation of the underlying hardware
 Not allowing complete execution of the guest operating systems in complete isolation
 Not all features of the operating system can be supported as with full virtualization
 Eg – address space virtualization used in time-sharing systems
 Historically, important milestone for achieving full virtualization
 Implemented on the experimental IBM M44/44X
Operating System Level Virtualization
 Virtualization is done within a single operating system
 OS kernel allows for multiple isolated user space instances
 OS Kernel is responsible for sharing the system resources among instances and for
limiting the impact of instances on each other
 A user space instance contains
 A view of the file system which is completely isolated
 Separate IP addresses, software configurations, and access to devices
 General purpose, time-shared operating systems with the capability to provide stronger
name space and resource isolation
 Evolution of the chroot mechanism in Unix systems
 Compared to hardware virtualization, imposes a little or no overhead because
applications directly use OS systems calls and there is no need for emulation
 No need to modify applications, neither any specific hardware needed
 However, OS level virtualization does not expose the same flexibility of hardware
virtualization – all users share same OS
 Efficient solution for server consolidation
 By aggregating different servers into one physical server, each server is run in a different
user space

Yogendra Tamang 070-MSCS-670


 Eg – FreeBSD Jails, IBM Logical Partition (LPAR), SolarisZones and Containers, Parallels
Virtuozzo Containers, OpenVZ, iCore Virtual Accounts, Free Virtual Private Server
(FreeVPS)
Programming Language-Level Virtualization
 Mostly used for ease of deployment of applications, managed execution, and portability
across different platforms and OS
 Virtual machine executes the byte code of a program (result of compilation)
 At run time, the byte code can either be interpreted or compiled on the fly
 Basic Combined Programming Language (BCPL) – 1966
 Java Platform by Sun – 1996
 Java Virtual Machine (JVM) originally designed for Java language programs
 But other languages as Python, Pascal, Groovy, and Ruby were made available
 Common Language Infrastructure (CLI)
 Ability of supporting multiple programming languages
 Specification behind the .NET framework
 Java platform and .NET framework currently most popular for enterprise application
development
 Both Java and CLI are stack-based virtual machines
 Based on an execution stack that is used to perform operations (load operands on the
stack, perform some operations with them, put the result on the stack)
 Register-based virtual machine
 Eg – Parrot, originally designed for PERL
 Advantages – uniform execution environment across different platforms, easy
deployment, security
 Price – performance (however, this is getting smaller with high computing power
available)
 Implementations of this model are also called High-level Virtual Machines
Yogendra Tamang 070-MSCS-670
Application Level Virtualization
 Allows applications to be run on runtime environments which do not natively support all
the features required by such applications
 Emulation is performed by a thin layer – a program or an operating system component
 Emulation can also be used to execute program binaries compiled for different hardware
architectures
a) Interpretation and b) Binary translation
Interpretation
 Every source instruction is interpreted by emulator for executing native ISA
instruction
 Minimal startup cost but huge performance overhead
Binary translation
 Every source instruction is converted to native instructions with equivalent
functions
 After a block of instructions is translated, it is cached and reused
 Large initial overhead but better performance over time
Application Level Virtualization
 Good solution in case of missing libraries in the host operating system
 Virtual machine manager is much lighter as it provides only a partial emulation of
the required run-time environment
 Examples
 Wine – execute Windows programs in Unix-like OS
 Sun WABI (Windows Application Binary Interface) – implements Win 16 API
on Solaris
 CrossOver – run Windows applications on Mac OS X
 VMware ThinApp – capture the setup of an installed application, and package
into an executable image
Yogendra Tamang 070-MSCS-670
Other Types of Virtualization
 Storage Virtualization
 Harnessing wide range of storage facilities and representing under a single
logical file system
 Storage Area Network (SAN) – a popular network-based virtualization
 Network Virtualization
 External network virtualization – VLAN
 Internal network virtualization – guest obtains a virtual network interface to
communicate with
 Desktop Virtualization
 Abstracts desktop environment available on a personal computer
 Remote access to a different system stored on a different host accessed
through a network connection
 Multiple desktop environments hosted on the same server – multiple virtual
machine images
 Eg - Windows Remote Services, VNC, and X Server
 Sun Virtual Desktop Infrastructure (VDI), Parallels Virtual Desktop
Infrastructure (VDI), Citrix XenDesktop, etc.
 Application-Server Virtualization
 Abstracts a collection of application servers that provide the same services as
a single virtual application server by using load balancing strategies
 Provides High availability infrastructure for services hosted in the application
server
Virtualization and Computing
 Virtualization allows appropriate degree of customization, security, isolation, and
manageability
 Simplifies leasing of services and their accountability on the vendor side

Yogendra Tamang 070-MSCS-670


 Hardware Virtualization
o Infrastructure-as-a-Service (IaaS)
 Programming Language Virtualization
o Platform-as-a-Service (PaaS)
 Server Consolidation/Sharing transparent to the cloud computing service users
Advantages of Virtualization
 Managed execution
 Isolation
 Secure and controllable computing environments
 Portability
 Efficient use of resources
Disadvantages of Virtualization
 Performance degradation
 Inefficiency and degraded user experience
 Security holes and new threats

Yogendra Tamang 070-MSCS-670


Chapter 5 Cloud Programming Models
Thread Programming Model
Thread is a single control flow, a logical sequence of instructions, within a process. Each process
contains at least a single thread. A process may also be composed of many threads having
variable lifetime. Threads within the same process share the memory space and the execution
context. Multithreading minimizes the latency imposed by context switches between processes
execution of multiple tasks in a lighter fashion.
Implicit and Explicit Threading
Implicit threading happens when the underlying APIs use internal threads to perform specific
tasks supporting the execution of applications such as graphical user interface (GUI) rendering,
or garbage collection in the case of virtual machine-based languages.
Explicit threading is characterized by the use of threads within a program by application
developers, who use this abstraction to introduce parallelism.
Common cases in which threads are explicitly used are:
 I/O from devices and network connections
 Long computations
 Execution of background operations for which the outcome does not have specific time
bounds
With the advent of parallel architectures the use of multithreading has become a useful
technique to increase the throughput of the system and a viable option for throughput
computing. To this purpose, the use of threads strongly impacts the design of algorithms that
need to be refactored in order to leverage threads.
POSIX Threads
Portable Operating System Interface for UNIX defines set of standards related to API for
portable application development for UNIX-flavor OSs. POSIX provides following operations:
1. Creation of threads
2. Termination of threads and
3. Waiting for thread completion(join operation)
The model defined by POSIX are taken as reference model for implementation.

Yogendra Tamang 070-MSCS-670


Both Java and .NET express the thread abstraction with the class Thread exposing the common
Operations performed on threads: start, stop, suspend, resume, abort, sleep, join, and interrupt.
Techniques for Parallel Thread Computing
Decomposition is understanding whether a problem is divided into components (or tasks) that
can be executed concurrently. It can be of following types:
1. Domain Decomposition
It involves identifying functionally repetitive but independent computation on data. They
are also called Embarrassingly Parallel Applications.

Yogendra Tamang 070-MSCS-670


2. Functional Decomposition
Identifying functionally distinct but
independent computations. Example:
f(x) = sin(x) + cos(x) + tan(x)
Realizing this functions involves
execution of different functions, sine,
cosine and tangent on separate units.
This type of decomposing is known as
functional decomposition.

Figure:- Functional Decomposition

Task Computing
Task is a distinct unit of code, or a program, that can be separated and executed in a remote
runtime environment. Multithreading is mainly concerned with providing a support for
parallelism within a single machine while task computing: provides distribution by
harnessing the computer power of several computing nodes
Yogendra Tamang 070-MSCS-670
Figure:- Task Computing Scenario

Yogendra Tamang 070-MSCS-670


Task Computing Categories
 High-Performance Computing (HPC): Solving problems that need large computing
power Needs to be processed in short period of time eg, using supercomputers and
clusters
 High-Throughput Computing (HTC): Applications requiring large computing
power over a long period of time eg, using Grids composed of heterogeneous systems
 Many Tasks Computing (MTC): Similar to HTC, but concentrates on the use of
many computing resources over a short period of time to accomplish many
computational tasks using any distributed facility
There are different frameworks for task computing.
Condor, Globus Toolkit, Sun Grid Engine (SGE), Berkley Open Infrastructure for Network,
Computing (BOINC), Nimrod/G, Aneka
Different Task based programming models
 Embarrassingly Parallel Applications: Collection of tasks independent of each other Eg.
Globus Toolkit, BOINC, Aneka
 Parameter Sweep Applications: Identical tasks, differ only by parameters used to execute
the task. Eg. Nimrod/G, Aneka
 MPI Applications Message Passing Interface (MPI) specification for developing parallel
programs which communicate by exchanging messages. Defined for C/C++ and FORTRAN
 Workflow Applications with Task Dependencies: Automation of business process
(represented using DAG) Eg, Kepler, DAGMan, Cloudbus Workflow Management System,
Offspring
MapReduce Programming
MapReduce is introduced by Google for processing large quantities of data. It consists of two
simple functions: Map and Reduce. Here data is handled as a collection of key-value pairs.
Developers have only to specify how the map and reduce functions operate on the key-value
pairs. The workflow of map and reduce operations is entirely controlled by the run-time system.
The data transfer and management is handled by distributed storage infrastructure (eg, Google
File System).
• Map Phase:
– Processes input key/value pair
– Produces set of intermediate pairs
map (in_key, in_value)  list(out_key, interm_value)
Yogendra Tamang 070-MSCS-670
• Reduce Phase:
– Combines all intermediate values for a given key
– Produces a set of merged output values
reduce(out_key, list(interm_value))  list(out_value)
Examples of MapReduce Application
Distributed Grep, Count of URL Access Frequency, Reverse Web-Link Graph, Term-Vector per
Host, Distributed Sort, Inverted indices, Page ranking, Machine learning algorithms…. etc.

Yogendra Tamang 070-MSCS-670


Chapter 6 Cloud Platforms, Applications and Case Studies
Scientific Applications:
1. Online Health Monitoring

2. Protein Structure
Prediction

Yogendra Tamang 070-MSCS-670


3. Gene Expression Data Analysis for Cancer Diagnosis

4. Satellite Image Processing

Business and Consumer Applications

1. CRM and ERP


Cloud computing has successfully established itself in the field of Business. It may provide Customer
Relationship Management and Enterprise Resource Planning platform.
Some popular examples are:
i. Salesforce.com
It is most popular CRM and is based on Force.com Cloud development Platform
Yogendra Tamang 070-MSCS-670
ii. Microsoft Dynamic CRM
iii. NetSuite: NetSuite Global ERP, NetSuite CRM +

Productivity Applications

i. Online Storage:
Dropbox, iCloud etc.

ii. Google Docs


iii. Cloud OS : EyeOS, XIOS/3, Based On AJAX like technologies.

Yogendra Tamang 070-MSCS-670

You might also like