ieee cloud 2012: clouds hands-on tutorial

59
Clouds Hands On Tutorial Srinath Perera Ph.D. Senior Software Architect, WSO2 Inc. Member, Apache Software Foundation Visiting Faculty, University of Moratuwa Research Scientist, Lanka Software Foundation

Upload: srinath-perera

Post on 18-Nov-2014

24.606 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: IEEE Cloud 2012: Clouds Hands-On Tutorial

Clouds Hands On Tutorial

Srinath Perera Ph.D. Senior Software Architect, WSO2 Inc.

Member, Apache Software Foundation Visiting Faculty, University of Moratuwa

Research Scientist, Lanka Software Foundation

Page 2: IEEE Cloud 2012: Clouds Hands-On Tutorial

Outline• What is Cloud

Computing?• What can I do with

the Cloud?• How to do it?• Conclusion

photo by John Trainoron Flickr http://www.flickr.com/photos/trainor/2902023575/, Licensed under CC

Page 3: IEEE Cloud 2012: Clouds Hands-On Tutorial

Quick EC2 Demo

• Lets us start our own Virtual machines in the cloud.

• We call the virtual machines, AMIs (Amazon machine images)

• You can reuse other’s AMIs or create your own.

Page 4: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 5: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 6: IEEE Cloud 2012: Clouds Hands-On Tutorial

Gold Rush

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

made lot of money

Page 7: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 8: IEEE Cloud 2012: Clouds Hands-On Tutorial

Is Cloud Hype?

• We have to understand what it is and what drives it? That would tell us how to navigation

Page 9: IEEE Cloud 2012: Clouds Hands-On Tutorial

Electricity as a Utility as anExample

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

Page 10: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 11: IEEE Cloud 2012: Clouds Hands-On Tutorial

Benefits of Cloud Computing

• 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 12: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 13: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Classification

Page 14: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Platform Tradeoffs

Page 15: IEEE Cloud 2012: Clouds Hands-On Tutorial

Private Cloud

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

• Idea is optimizing resource sharing, utilizations, and operations– e.g. testing environments

• Connection to public Cloud is possible (e.g. Amazon VPC uses VPN)

• Run a Cloud within the organization (mainly due to security concerns).

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

Page 16: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Computing Models

Public Hybrid Private

Software as a Service

Platform as a Service

Infrastructure as a Service

Control

Economy

Flexibility of PurposeLe

vel o

f Abs

trac

tion

Page 17: IEEE Cloud 2012: Clouds Hands-On Tutorial

What can we do with the Cloud?

Page 18: IEEE Cloud 2012: Clouds Hands-On Tutorial

What Can We do with the Cloud?

• If I am a developer, now it is – Easy to get access to a machine– Easy to host something

• If I am a startup – Easy run my new business – Easy to run my app

• If I am a Enterprise – Outsource functionalities – On demand H/W

• If I am a researcher – Easy access computing power

Page 19: IEEE Cloud 2012: Clouds Hands-On Tutorial

More Room to Outsource NonKey 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 20: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 21: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 22: IEEE Cloud 2012: Clouds Hands-On Tutorial

Increased Accessibility• 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 23: IEEE Cloud 2012: Clouds Hands-On Tutorial

Creating and Deploying my Sample App in the Cloud

Page 24: IEEE Cloud 2012: Clouds Hands-On Tutorial

Explain the Scenario

• Web App• A Web Service • Web App call the Web Service and show a hello

world message got from Web Service.

Page 25: IEEE Cloud 2012: Clouds Hands-On Tutorial

Demo It Locally

• Install WSAS• Show consoles • Install the Service• Try the Service• Install the Web App• Try the Web app• Show SOAP traces

Page 26: IEEE Cloud 2012: Clouds Hands-On Tutorial

IaaS (Infrastructure As a Service)

• Let users allocate and use a computer on-demand, and can be returned when not needed.

• Once allocated, node behaves as a normal node.

• None or minimal add-on services

Page 27: IEEE Cloud 2012: Clouds Hands-On Tutorial

E.g. Amazon Web Services

• Several 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 28: IEEE Cloud 2012: Clouds Hands-On Tutorial

Demo 1

• Login to the AMI• Download WSAS and install• Login and show the console • Upload the Service• Tryout the service• Upload the Webapp• Tryout the Web App• Show SOAP traces

Page 29: IEEE Cloud 2012: Clouds Hands-On Tutorial

Demo 2

• However, if we shutdown the Instance, all is lost

• Create and save the AMI• Restart and show

Page 30: IEEE Cloud 2012: Clouds Hands-On Tutorial

Enabling Technology: 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

Page 31: IEEE Cloud 2012: Clouds Hands-On Tutorial

Pros & Cons

• Very easy to start• Minimal changes to the App• But not many add on features • Lack of persistence make life tricky

Page 32: IEEE Cloud 2012: Clouds Hands-On Tutorial

PaaS (Platform as a Service)

• It provide servers (middleware platforms) as a service

• Can deploy your application artifacts in the cloud

• Unlike IaaS, it can give you add on services. But it will only support specific application types.

Page 33: IEEE Cloud 2012: Clouds Hands-On Tutorial

Why PaaS?• IaaS only provides limited saving to someone

who needs to outsource their IT functions• SaaS is great when they can be used • They are usually very specific (e.g. email, CRM ..)• If they match, then great, but if they are not, not

much choice for the user. • PaaS stays in the middle ground • Framework to host your apps• Hopefully you can move your apps as it is (well not

the case with Azure or App Engine, but it is possible with WSO2 Stratos !!!).

Page 34: IEEE Cloud 2012: Clouds Hands-On Tutorial

Google App Engine

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

web applications in an isolated environment• Java version is 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 35: IEEE Cloud 2012: Clouds Hands-On Tutorial

WSO2 Stratos

• Support Java based SOA artifacts (services, workflows, mediation) , messaging, CEP, Rules, etc

• Support running user written web applications in an isolated environment

• Built on Open source projects like Axis2, ODE etc• Support storage based on MySQL, Cassandra, and

HDFS• Can write apps locally, test it, and then upload to

the Cloud

Page 36: IEEE Cloud 2012: Clouds Hands-On Tutorial

Show Stratos

• Create an Account • Compare with Local Server

Page 37: IEEE Cloud 2012: Clouds Hands-On Tutorial

Stratos Demo

• Upload the Service• Try out the Service• Show with SOAP Tracer • Upload the Web App• Try out the Web App• Enable Security

Page 38: IEEE Cloud 2012: Clouds Hands-On Tutorial

Add-On the Features

• Edit Web app security• Mediate requests • Add Throttling • Add Caching • Create and use Data sources

Page 39: IEEE Cloud 2012: Clouds Hands-On Tutorial

Driving Technology: Multi-tenancy

Many Parties share the same set of resources, while giving each one his own space

Page 40: IEEE Cloud 2012: Clouds Hands-On Tutorial

Why Multi-tenancy? 1. Increased sharing

• Cloud shares resources across a large pool of users.

• Now sharing happens in the application level as oppose to sharing at OS level for multiple processes and sharing at HW level with VMs.

• That can bring greater savings

photo by Ben Gray on Flickr, http://www.flickr.com/photos/ben_grey/4582294721/, Licensed under CC

“There is no delight in owning anything unshared.”

Seneca (Roman philosopher, mid-1st century AD)

Page 41: IEEE Cloud 2012: Clouds Hands-On Tutorial

Why Multi-tenancy? 2. Provide “pay for what you use”

• Often there will be many accounts in a PaaS or a SaaS, but only a fraction of them will be in use.

• We cannot allocate runtime resource per account (disk may be ok, as it is cheap). For example, we cannot run a VM per account.

• By sharing the same server with many users, Multi-tenancy provides much reduced runtime cost per server.

Flexibility

Page 42: IEEE Cloud 2012: Clouds Hands-On Tutorial

Multi-tenancy vs. Virtual Machines• Multi-tenancy provides much fine

grained sharing by many applications sharing the same server.

• Say there are 100k accounts, but 10k active users at a time. VM based model needs 100k VMs, which means there is a cost incurred per account.

photo by hans s on Flickr, http://www.flickr.com/photos/archeon/2359334908/

• With Multi-tenancy one server can handle many accounts, and by mixing and matching heavy and light users, Multi-tenancy can operate with much less number of servers.

Page 43: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Native• Elastic (Uses the cloud efficiently)

• Scales up and down as needed• Works with the underlying IaaS

• Self-service (in the hands of users)• De-centralized creation and management of tenants• Automated Governance across tenants

• Multi-tenant (Only costs when you use it)• Virtual isolated instances with near zero incremental cost • Implies you have a proper identity model

• Granularly Billed and Metered (pay for just what you use)• Allocate costs to exactly who uses them

• Distributed/Dynamically Wired (works properly in the cloud)• Supports deploying in a dynamically sized cluster• Finds services across applications even when they move

• Incrementally Deployed and Tested (seamless live upgrades)• Supports continuous update, side-by-side operation, in-place testing and

incremental production

Page 44: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Native Middleware

Page 45: IEEE Cloud 2012: Clouds Hands-On Tutorial

Auto scaling by Tenant Aware Load Balancing

Page 46: IEEE Cloud 2012: Clouds Hands-On Tutorial

Software as a Service

• Provide a complete package as a service • Very easy to get started • Generally only provide limited customizability • Might provide higher level domain specific

abstractions and functionality

Page 47: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 48: IEEE Cloud 2012: Clouds Hands-On Tutorial

SaaS App Market

• Mobile apps, Browser Apps etc often depends on backend, that need to be hosted and running.

• Also, there is the old user case of service market place (e.g. Map Service, targeted advertising suggestions)

• PaaS could provide an ideal environment to develop and run them.

Page 49: IEEE Cloud 2012: Clouds Hands-On Tutorial

Cloud Platform Tradeoffs

Page 50: IEEE Cloud 2012: Clouds Hands-On Tutorial

Wrapping Up

Page 51: IEEE Cloud 2012: Clouds Hands-On Tutorial

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– 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 52: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 53: IEEE Cloud 2012: Clouds Hands-On Tutorial

Performance

• In the Cloud, your software will run on an another layer of abstractions

• 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

Page 54: IEEE Cloud 2012: Clouds Hands-On Tutorial

Service Performance

Page 55: IEEE Cloud 2012: Clouds Hands-On Tutorial

Security

• With cloud you will run your apps and put your data in an outsider's administrative domain, 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.

Page 56: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 CloudCopyright Kirsty Smith and licensed for reuse under this Creative Commons License

Page 57: IEEE Cloud 2012: Clouds Hands-On Tutorial

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 58: IEEE Cloud 2012: Clouds Hands-On Tutorial

Overall Recommendations

Page 59: IEEE Cloud 2012: Clouds Hands-On Tutorial

Questions?

Copyright by romainguy, and licensed for reuse under CC License http://www.flickr.com/photos/romainguy/249370084