37
Cloud Computing and Virtualization- Newest Trends Srinath Perera, Ph.D. Senior Software Architect, WSO2 Research Scientist, Lanka Software Foundation Member, Apache Software Foundation Visiting Faculty, University of Moratuwa

Cloud Computing: An Introduction

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Cloud Computing: An Introduction

Cloud Computing and Virtualization-

Newest TrendsSrinath Perera, Ph.D.

Senior Software Architect, WSO2Research Scientist, Lanka Software Foundation

Member, Apache Software FoundationVisiting Faculty, University of Moratuwa

Page 2: Cloud Computing: An Introduction

Next 1 hour: Goal What is Cloud? More on Why and

When and less about How?

Take home is some idea of when to and when not to use the Cloud

Page 3: Cloud Computing: An Introduction

Men, it has been well said, think in herds; it will be seen that they go mad in herds, while they only recover their senses slowly, and one by

one. ~ Charles Mackay

Copied from http://www.flickr.com/photos/54555810@N00/2848637190/, by Rambling Traveler

Page 4: Cloud Computing: An Introduction

Gold Rush

Very good example of a hype Only few actually made money But associated services (merchants

and transportations) made lot of money

Page 5: Cloud Computing: An Introduction

The Cloud Bandwagon Is Cloud a hype? Of course

it is! Is it Just hype? may be not,

thats what we will discuss.

But don’t get me wrong, even if it is a hype, that

doesn’t mean we should not be talking about it.

Image from http://www.flickr.com/photos/88929764@N00/4436978855/

Page 6: Cloud Computing: An Introduction

Some Hypes Deliver: Hype Cycle

We have to understand what it is and what drives it? That would tell us how to navigate.

Page 7: Cloud Computing: An Introduction

Selling Shovels In the Gold Rush

Hype change the demand and supply dynamics.

Page 8: Cloud Computing: An Introduction

Fire Open up the space for new Trees

Hypes often change the dynamics, and give a chance for new comers to climb to the top

Image from http://www.flickr.com/photos/leppre/485528374/

Page 9: Cloud Computing: An Introduction

So What is Cloud?

Based on the idea that computation and storage can be rented as a utility from data centers that runs somewhere (in the cloud) on demand.

− Remote resources that are rented− On demand and in elastic manner− Pay as you go

Page 10: Cloud Computing: An Introduction

Electricity as a Utility as an Example

Now, no one run generators themselves Use electricity that is remotely generated Can draw when need it Only pay for what you use

Page 11: Cloud Computing: An Introduction

Electricity as a Utility: Benefits

Small startup cost (do not have to buy a generator)

No operational cost Do not need to do capacity planning Overall cheaper electricity due to

economics of scale Making it parts of the everyday life,

commodity (accessibility)

Image from http://www.flickr.com/photos/infomofo/3220498521

Page 12: Cloud Computing: An Introduction

Benefits of the Cloud Avoid/reduce operational

costs by outsourcing Can scale up and down as

needed Pay as you go Making it parts of the

everyday life, commodity (accessibility)

Cheaper computing power due to economy of scale

Page 13: Cloud Computing: An Introduction

Drivers of Cloud

Unused computing power at Google, Amazon Max load >> average load High operational cost, need for outsourcing Availability of large scale solutions and

infrastructure as side efforts of high tech company operations

Page 14: Cloud Computing: An Introduction

Cloud Classification

For end-users

For developers, integrators, architects

For infrastructure specialists

Page 15: Cloud Computing: An Introduction

IaaS Example: Amazon Two services

− S3 Storage− EC2 computing cloud

Based on Virtualization, where each user is given a virtual machine and charged by the hour

Need least amount of changes to move apps to the Cloud. They in a way replace hosting services

Least amount of out of the box services (e.g. DOS attack prevention) and advanced services like scaling etc., are a responsibility of the user.

Often the best choice for ad-hoc computer users.

Page 16: Cloud Computing: An Introduction

PaaS Example: Google App Engine

Support Java and Python Support web requests and run user written web

applications in an isolated environment− Java version based on servlets

Support storage based on Big table, memcache based cache, and auto scaling

Can write apps locally, test it, and then upload to the Cloud

Page 17: Cloud Computing: An Introduction

SaaS Example: Salesforce

Provide support for CRM (Customer Relationship Management) software as a Service

The application available out of the box users just configure and use it.

Salesforce handles all the details, and a ideal choice for outsourcing IT functions

However, applications are very specific and customizations are limited.

Page 18: Cloud Computing: An Introduction

Virtualization

IaaS uses Virtualization to provide infrastructure as a service

Virtualization can add significant overhead (each instruction become 2 instructions)

− new CPUs have hardware support for virtualization, which make things better

− Still I/O is a challenge

Mimic the hardware layer using software, and provide a “virtual” machine to the next layers

− Used to mimic multiple machines within the same machine

− easier manageability and migration (move machines based on load)

− e.g. Vmware, Xen, KVM

Page 19: Cloud Computing: An Introduction

Cloud Platform Tradeoffs

Page 20: Cloud Computing: An Introduction

Private Cloud

Idea is optimizing resource sharing, utilizations, and operations

− e.g. testing environments Connection to public Cloud is possible

− Amazon VPC uses VPN, WSO2 Cloud Service Gateway

Image http://www.flickr.com/photos/glasgows/536185797/, Some rights reserved by M Glasgow

Run a Cloud within the organization (mainly due

to security concerns).

e.g. Amazon Virtual Private Cloud (VPC), IBM private cloud, WSO2 Stratos private Cloud

Page 21: Cloud Computing: An Introduction

Potential Impact

Page 22: Cloud Computing: An Introduction

More Room to Outsource Non Key Functions of a Organization

Organizations outsource their non-competitive areas to reduce costs and focus on their own expertise.

IT departments are a major cost in most organizations

Cloud enables Organizations to outsource some of the IT functions

Page 23: Cloud Computing: An Introduction

Small Start Up Cost Small start up cost

− Reducing the gap between visionaries and dreamers

− New organization has better chance for outsourcing operations through the Cloud

− Cloud competition likely to drive down hosting prizes

Page 24: Cloud Computing: An Introduction

1 computer for 100days = 100 computers for 1 day

Great tool for occasional computations

− Research labs − Reporting collecting data

for a story− New york Times tiff to pdf

conversion Rise of analytics

− great tool for offline analysis

− Business Intelligence (BI) − Audits

Page 25: Cloud Computing: An Introduction

Large Scale Computation and Storage Resources becoming a

Commodity

Computer intensive desktop apps (e.g. Excel, 3D Max)

Normal people, not just organizations

can have access to computing power

and storage

Page 26: Cloud Computing: An Introduction

Autoscaling and Cloud Bursting

Max load >> average load Allocate based on the load Running internal machines in an average load

(because cloud is still expensive than hardware ) and scale out to cloud when there is high load

− Mimic the Hybrid car

Page 27: Cloud Computing: An Introduction

Dangers and Concerns

Page 28: Cloud Computing: An Introduction

Privacy/ Security/ Trust

− Can we trust the outsiders to not look at our data? Well it depends. But concern is normal for any out sourcing

− Can we trust their security measures? Does the isolations are good enough?

− If we are keeping data owned by others, what are the legal implications etc.

With cloud you will run your apps and put your data in an outsider's administrative domain

Page 29: Cloud Computing: An Introduction

Latency/ Bandwidth Why does electricity as a Utility was so

successful? One key aspect was almost unlimited speed and capacity

Is that the same for Cloud? − Not really, specially for countries like

Sri Lanka− Most people dismiss this, and does

not even want to discuss− But for some apps (e.g. interactive

apps like games) this can be a issue

Possibilities− support for offline operation − Fedex your data

Page 30: Cloud Computing: An Introduction

Performance

It will inevitably slower (3-4 times if unlucky) − Often the overhead comes from I/O− Some hit on CPU power− Expect the bottlenecks to shift

Remember performance ≠ scalability − Cloud likely to let you scale out, but performance

on individual nodes likely to go down

In the Cloud, your software will run on an

another layer of abstractions

Page 31: Cloud Computing: An Introduction

Challenges Cloud Middleware

− Long running, large scale, fault Tolerant Computations

− Scalable service and resource scheduling

− Scalable, secure, self-managing, fault-tolerant data storage for long running processors

− Multi-tenancy and Isolation− Delegation across organizations

Cloud Operations− Metering and Billing− Provisioning and Monitoring− Data Confidentiality and auditability − Supporting SLA and QOS

Page 32: Cloud Computing: An Introduction

Challenges (Contd.) Programming Model

− Parallel Programming (Map Reduce)

− Better App programming models – Web, Jason, APIs

− Supporting Mobile devices

Page 33: Cloud Computing: An Introduction

Overall Recommendations

Page 34: Cloud Computing: An Introduction

Cloud Platform Tradeoffs

Page 35: Cloud Computing: An Introduction

Look back: Recommendations

How can we benefits from the Cloud? My list of benefits were by no means exhaustive.

− If you are small startup? Doing something part time (writing Apps for App Store), then cloud is for you definitely.

− If you have a small data center, need to efficiently manage that and increase utilization, you should think Private Cloud

© Copyright Kirsty Smith and licensed for reuse under this Creative Commons

License

Page 36: Cloud Computing: An Introduction

Look back: Recommendations (Contd.)

If your services have a Max load >> Average load, you should think about crowd bursting

If you do heavy computations once in a while (analytics, audits), then use IaaS there.

If you want to outsource some of your IT functions, think SaaS

Before leap think about 3 major concerns of Cloud? − Security/ Privacy, Latency and Performance

How much sharing and savings I need?− IaaS, PaaS, SaaS

Page 37: Cloud Computing: An Introduction

Questions?