INTRODUCTION TO CLOUD COMPUTING. “Computation may someday be organized as a public utility.” -...
-
Upload
penelope-small -
Category
Documents
-
view
247 -
download
3
Transcript of INTRODUCTION TO CLOUD COMPUTING. “Computation may someday be organized as a public utility.” -...
INTRODUCTION TO CLOUD COMPUTING
“Computation may someday be organized as a public utility.”
- John McCarthy, 1961
2
CLOUD COMPUTING
• No longer the next big thing – the current big thing
• Began in 2007 – IBM and Google “Blue Cloud”
• Name cloud inspired by cloud symbol representing internet in diagrams
• Amazon popularized idea of the cloud
QUESTIONS TO ANSWER
• What is a cloud?
• What clouds have you used today (yesterday)?
INTRODUCTIONCLOUD DEFINITION
Cloud computing is a set of service-oriented architectures, which allow users to access a number of resources in a way
that is elastic, cost-efficient, and on-demand.
5
INTRODUCTIONCLOUD DEFINITION
The U.S. National Institute of Standards and Technology (NIST) defines cloud computing as:
• Cloud computing is a model for enabling ubiquitous, 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.
Bahga & Madisetti, © 2014Book website: www.cloudcomputingbook.info
INTRODUCTIONCLOUD DEFINITION
Cloud Definition
•Scalable resource allocation
•Tailored services• Software as a Service (SaaS)
• Platform as a Service (PaaS)
• Infrastructure as a Service (IaaS)
•Billed like a utility• public clouds
7
CLOUD COMPUTING• Everyone has an opinion on what to use a cloud
for
• Applications on the internet – email, tax prep
• Storage for business, personal data
• Web services for photos, maps, GPS
• Rent a virtual server, load software on it, turn it on /off, clone it if sudden workload demand
• Store, secure data for authorized access (really?)
• Use a platform including OS, Apache, MySQL, Python, PHP
CLOUD COMPUTING CHARACTERISTICS
• So what are its characteristics?• Described as: On-demand computing, pay as you go, software as a service,
utility computing
• Usually costs, but cost-effective
• Emphasizes availability
• Virtualization
• Scalable (expand on current hardware)
• Elastic (dynamically add hardware as needed)
• Distributed and highly parallel approach
• Replication, replication, replication …
INTRODUCTIONCLIENT/SERVER VS. CLOUD ARCHITECTURE
Network
Client Client Client
Server
Network
Client Client
Cloud Interface
Compute Node
Compute Node
Switch/Router
Storage Node
Client/Server Architecture
Cloud Architecture
Storage
Client
CloudAdmin
10
INTRODUCTIONTYPES OF CLOUDS
• Public Cloud
• Marketed based on
• Resources offered, availability, security, price
• Local/Private Cloud
• Cloud architectures tailored to an organization’s needs.
• Hybrid Cloud
• Combination of public and local cloud resources.
11
INTRODUCTIONSUPER CLOUDS
12
INITIAL MOTIVATION: WEB-SCALE PROBLEMS
• Characteristics:• Definitely data-intensive
• May also be processing intensive
• Examples:• Crawling, indexing, searching, mining the Web
• “Post-genomics” life sciences research
• Other scientific data (physics, astronomers, etc.)
• Sensor networks
• Web 2.0 applications
• …
HOW MUCH DATA?• Google processes over 24 PB a day (24k terabytes)
• CERN’s LHC generates 25 PB a year
• “all words ever spoken by human beings” ~ 5 EB (5m terabytes)
• Amount of data that exists in the digital universe – 3+ ZB (3b terabytes)
• Brain Research through Advancing Innovative Neurotechnologies (BRAIN) project – est: multiple yottabyes (trillions of terabytes)
• LARGE data is the next frontier
• How do we store this amount of data?• HDD density
• SDD density
• How do we filter/access useful information?
APPLICATIONS
• What does cloud computing actually do?
• Consider applications you may currently be running on laptop, desktop, phone, server
• Cloud has them also, or can potentially bring them to you
• Brings applications, views, manipulates, shares data
CLOUDS
• Allow access to applications other than on local computer or internet connected device
• Instead, company hosts your application - Advantages?
• No more licenses, service packs, etc.
• Less hardware, etc.
• Can access anywhere
CLOUDS
• Allow access to applications other than on local computer or internet connected device
But
Only as long as have internet connection
POTENTIAL PROBLEMS
• Internet connection• Completely dependent on network
• Cloud site failure• Back-end server/network failure may
Result in inaccessible data
• Sensitive information• How much do you trust the public cloud vendor?
• Application integration – (exchange info when local and on cloud)
CLOUD COMPONENTS
• 3 components
• Clients
• Datacenter
• Distributed servers
CLOUD COMPONENTS• Clients
• Mobile
• Phones, PDAs
• Thin
• no internal hard drives, lets servers do all work, displays info
• Thick
• Laptops, desktop computers
• Which is the best?
• Thin - lower costs, security, power consumption, easy to replace, less noise
DATA CENTER
• Data Center
• Collection of servers
• In large room in your building
• Servers distributed across the world
IMPROVEMENTS SINCE ‘80S
• Disk capacity
• From 10s MB to several TB – orders of magnitude
• IBM built 120PB storage array
• Bandwidth
• 50X
Maximilien Brice, © CERN
DATA CENTERS
• Distributed Servers
• Distributed data centers
• geographically separated
• Robust if failure
• Dynamic datacenter so can increase as needed
LARGE DATA CENTERS
• Although Google is famous for innovating web searching, Google’s architecture as much a revolution
• Instead of few expensive servers, use many cheap servers ($5000 instead of $100,000)
• 1/2M servers in ~ 12 locations)
DATA CENTERS• Redundancy
• Redundancy is the key to the success of clouds
• Google approach – cheap components that fail, so replicate all processing and storage
• Efficiency
• Utilization
• Management
• Virtualization
These public clouds are great, but what if an organization wants to build their own local cloud?
27
LOCAL CLOUD ARCHITECTURESIAAS
• Local Cloud?• Small to medium sized
• What resources would we need to do this?• Compute Servers
• Persistent Storage Servers
• VM Image Server(s)
• Cloud Administrative Server(s)
• Network Infrastructure• Copper
28
LOCAL CLOUD ARCHITECTURESIAAS
• Compute Servers• CPU, RAM, Local disk (magnetic, SSD) resources given to the user.
• In the form of virtual machines.
• Hosts virtual machines using a hypervisor• Software that creates and run virtual machines
• Xen, KVM, ESXi
• Grid VGX
• Hybrid approach to hypervisor selection is common.• Windows
• Linux
• Mac OS X
29
LOCAL CLOUD ARCHITECTURESIAAS
• Persistent Storage Servers• What they are:
• VMs hosted on the compute servers are stateless.
• What they do:
• Used for long term storage of data.
• Virtual Machine Image Server• Modified Persistent Storage Server.
• Repository of available VM images.
30
LOCAL CLOUD ARCHITECTUREIAAS ARCHITECTURE
31
QUESTIONS TO ANSWER THIS SEMESTER
1.IS CLOUD COMPUTING JUST A BUSINESS MODEL AND NOT A COMPUTING MODEL?
2.IS THERE ANYTHING NEW IN CLOUD COMPUTING OR IS IT JUST DISTRIBUATED COMPUTING WITH A DIFFERENT NAME?
3.IS IT REALLY ALL ABOUT MONEY??
CLOUD COMPUTING CHARACTERISTICS
• So what are its characteristics?• Described as: On-demand computing, pay as you go,
software as a service, utility computing• Usually costs, but cost-effective• Virtualization• Scalable (expand on current hardware)• Elastic (dynamically add hardware as needed)• Distributed and highly parallel approach• Emphasizes availability • Replication, replication, replication …
VIRTUALIZATION• What is virtualization? Rea
• Software implementation of a computer that executes programs like a physical machine
• Installation of one machine runs on another
• All software runs on a server within virtual machine
• AMD-Virtualization and Intel Virtualization Technologies (IVT) extensions made it possible
• Why is it useful?
• Abstracts hardware so software stacks can be deployed without tied to specific physical server
VIRTUALIZATION• Can
• Share computer among multiple users
• Run applications and different operating systems on same machine
• Isolate users from each other and control program
• Emulate software and/or hardware for the guest os
• Full virtualization
• First appeared in 1967 with IBM CP-40 system
• Complete installation of one machine runs on another
• emulate entire system
VIRTUALIZATION
• Virtual Machine VM
• isolated guest OS installation within a normal host OS
• Runs on top of the OS of the server machine
• Object of deployment
• Virtual Machine Image –
• Static data containing software (OS, apps, data files) the VM will run once started
• Used to create VM instance
• Typically stored on disk
• Virtual Machine Instance –
• Running virtual machine
• Started from image, runs OS and processes, computes, etc.
• dynamic object you can interact with
• snapshot of a VM at a given time
VIRTUALIZATION• Hypervisor – Virtual Machine Manager VMM
• One level higher than supervisory program
• Installed directly on server hardware or run within an OS
• Easily create copies of existing environments
• Can exist on same servers or different machines
• Single server multiple OS instances, minimize CPU idle time
Hardware
Operating System
App App App
Traditional Stack
Hardware
OS
App App App
Hypervisor
OS OS
Virtualized Stack
VIRTUALIZATION
• Application needs a VM on which to run in a cloud
• Application will be associated with that VM
• Entire user interface resides in single window
• Provide all facilities of OS inside a browser
• Program must continue running even as number of users grows
• Communication model is many-to-many
CLOUD COMPUTING CHARACTERISTICS
• So what are its characteristics?• Described as: On-demand computing, pay as you go, software as a service,
utility computing
• Usually costs, but cost-effective
• Virtualization
• Scalable (expand on current hardware)
• Elastic (dynamically add hardware as needed)
• Distributed and highly parallel approach
• Emphasizes availability
• Replication, replication, replication …
CLOUD COMPUTING CHARACTERISTICS
• So what are its characteristics?• Described as: On-demand computing, pay as you go, software as a service,
utility computing
• Usually costs, but cost-effective
• Virtualization
• Scalable (expand on current hardware)
• Elastic (dynamically add hardware as needed)
• Distributed and highly parallel approach
• Emphasizes availability
• Replication, replication, replication …
THE RESULT OF CLOUDS:DIFFERENT COMPUTING MODEL
Software-as-a-Service (SaaS)
Infrastructure-as-a-Service (IaaS)
Platform-as-a-Service (PaaS)
CLOUD SERVICE MODELS
• Software as a Service (SaaS)
• Applications, management and user interfaces provided over a network
• Platform as a Service (PaaS)
• Application development frameworks, operating systems and deployment frameworks
• Infrastructure as a Service (IaaS)
• Virtual computing, storage and network resource that can be provisioned on demand
IAAS• Infrastructure as a Service (IaaS) – aka
Hardware as a Service (HaaS) and Utility computing
• Why buy machines when you can rent resources?
• Utility computing billing – based on what used
• Provides basic storage and compute capabilities as server
• Servers, storage systems, CPU cycles, switches, routers, etc.
IAAS• Does not provide applications to customers (SaaS
and PaaS do)
• Saves cost of purchasing
• Infrastructure can be scaled up or down
• Multiple tenants can use equipment at the same time – called multitenant
• Device independence – access systems on different hardware
• Low barriers to entry
IAAS COMPONENTS
• Computer hardware – rented out, provider set up as a grid for scalability
• Network – hardware for firewalls, routers, etc.
• Internet connectivity so user can access hardware
• Allows clients to run the VM they want
INFRASTRUCTURE-AS-A-SERVICE (IAAS)
IAAS EXAMPLES
•Ex: Amazon’s EC2, e.g. Samba - Connecting to Cloud Storage as a Network Share
•Google Compute Engine
•Windows Azure VMs
PAAS
• Customer interacts with platform through API
• Runtime services – allows application to leverage infrastructure
• Platform manages and scales
• Team collaboration, web service integration, database integration, security, scalability, storage, state management, versioning
PAAS PROVIDES
• Development teams across world to work together
• Merge web services from multiple sources
• Cost savings from using built-in security, scalability and failover
• Cost-savings from using higher-level programming abstractions
PROBLEMS WITH PAAS
• Vendors used proprietary services or languages – developer may be locked in
• Lack of portability and interoperability – if develop on one cloud, can’t move to another (unless pay …) – Lock-in
• What if provider goes out of business?
• PaaS examples:
• Google App Engine
• Heroku
• RightScale
• Salesforce.com
SAAS
•Software as a Service (SaaS) – web based applications
• Just run it for me!
• Software available on cloud for use
• Application hosted as a service to customers who access via the internet
• Single instance runs and services multiple end users
SAAS
• Pros/Cons
• Customer doesn’t have to maintain or support SW
• Out of customer’s hands when hosting service changes it
• Use software out of box
• Instead of just paying for its once, billed
• Don’t have to pay as much up front, cheaper more reliable
•SaaS examples:
• Gmail
• Dropbox
• Microsoft Office 365
FUTURE OF SAAS
• Move all processing power to the cloud and carry ultralight input device
• Already happening?
• Google Docs
• OnLive*
• Implications for Microsoft, software as purchasable local application
• Windows Live (Microsoft’s cloud)
• Adobe web based photoshop
*Bought by Sony
IAAS, PAAS, SAAS
IN SUMMARY - IAAS, PAAS, SAAS
• With IaaS
• Provider doesn’t know what you are going to do with HW
• Just ask for resources, including OS (VMs)
• So you can specify how many machines, how many VMs per machine, etc.
• Can create your own PaaS, or SaaS on IaaS
IAAS, PAAS, SAAS
• With PaaS
• Ask for specific web services, DBs, etc.
• Restricted to using only those, can modify only within constraints of platform
• System decides what hardware and how many VMs you get, e.g. scaling
• With SaaS
• Just say which software and you use it