Web Systems and Algorithms
Cloud Computing
Chris Brooks Department of Computer Science
University of San Francisco
Department of Computer Science — University of San Francisco – p.1/??
Cloud computing
What is cloud computing? What separates it from:
grid computing distributed computing data centers
Department of Computer Science — University of San Francisco – p.2/??
Cloud computing
“The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do.... I don’t understand what we would do differently in the light of cloud computing other than change the wording of some of our ads.” Larry Ellison, CEO, Oracle.
Department of Computer Science — University of San Francisco
Characteristics of Cloud Computing
Appearance of infinite computing resources on demand. Web-based interface or public API
No specialized client software needed. No up-front commitment
Fine-grained ability to pay for resources as needed.
Examples
What are some examples of cloud computing?
Examples
AppEngine, GMail, Google Apps Amazon
EC2, S3, AWS, Simple Queue Service, etc Microsoft Azure
Salesforce.com Dropzone GoGrid
Software as a service
One tenet of cloud computing is the idea of Software as a Service (SaaS).
Although you can have SaaS without cloud computing
SaaS refers to a model in which you rent software and pay for usage, rather than purchasing the software upfront.
Example: Google Docs, Banner
Department of Computer Science — University of San Francisco – p.7/??
Software as a service
Assets and data are stored on a server, rather than on a local client
Pricing is done in a one-to-many fashion, akin to site licenses
Intergrated into software suites
Department of Computer Science — University of San Francisco – p.8/??
Software as a service
What are some advantages of the Software as a Service approach?
Department of Computer Science — University of San Francisco
Software as a service
What are some advantages of the Software as a Service approach?
No need to install on each client License easily moves with user Updates easily pushed out Potential cost savings for customer Reduced infrastructure costs for organization
Software as a service
What are some potential concerns of the Software as a Service approach?
Software as a service
Unable to easily work without network access Data security and privacy
Potential integration problems with third-party software Unable to modify or extend applications
Infrastructure as a Service
Slightly more nebulous is the idea of Infrastructure as a Service
This is the idea of directly renting access to servers Typically done in a virtualized way
The most well-known example of this is Amazon’s EC2. You are provided with a pre-configured, templated image that you can completely control.
Department of Computer Science — University of San Francisco – p.13/??
Virtualization
Virtualization is what makes this possible. What is virtualization?
Department of Computer Science — University of San Francisco – p.14/??
Virtualization
Virtualization is the process of running an operating system as a program within another operating system
e.g. VMWare, Parallels
Typically, some support is provided by the hardware to allow heterogenous instances of an OS to run within a container.
Allows for many virtual instances to share the same hardware instance, resucing costs and infrastructure overhead.
Department of Computer Science — University of San Francisco
Platform as a Service
Another term that is sometimes used in conjunction with cloud computing is Platform as a Service.
In this model, an entire programming platform is provided in a scalable, transparent way. AppEngine is a nice example of this
Storage, web server, interface to Google’s APIs and services all provided within a single wrapper.
Utility Computing
The second characteristic of cloud computing is the ability to “pay as you go”
This is often referred to as utility computing. The service is being sold as a utility (like electricity) rather than as a commodity (like corn)
Typically, fine-grained pricing models are used A client can pay on a per-hour or per-day basis.
Utility Computing
Why might a company want to use a utility-based approach, as opposed to the more traditional model of either setting up a data center or purchasing rack space from an ISP?
Advantages of utility computing
Greatly reduced upfront cost.
This is very attractive for startups and small firms. Possibly a disincentive for firms that already have a data center.
Provisioning
Many apps have a very bursty load
Bursts may be periodic or seasonal or hard to predict Users can either overprovision and waste money, or underprovision and provide poor service.
It taskes time to add capacity to a data center.
Department of Computer Science — University of San Francisco – p.19/??
Varying loads
Server loads can vary for a number of reasons: Periodic over time of day
Servers underused in slow periods Seasonal usage
e-commerce in December, photo sharing after holidays.
Surges due to sudden popularity Popularity on Facebook, Slashdot
Department of Computer Science — University of San Francisco – p.20/??
Advantages of utility computing
The ability to reprovision quickly leads to reduced risk. This can make it more attractive even if it is more expensive than traditional approaches.
Utility computing can also allow users to finish large jobs more quickly by provisioning a large amount of resources for a limited time.
Department of Computer Science — University of San Francisco
Criteria
To recap, a cloud computing system requires: Web-based API or application
Appearance of infinite resources Fine-grained pricing
No up-front commitment
Clouds vs Data Centers
So why is a standard data center not a cloud? What about a company with a web-based app that can add more resources in a few hours?
What about MMORPGs? Do they use a cloud model?
Economics
So what makes cloud computing possible from the providers’ point of view?
Economics
So what makes cloud computing possible from the providers’ point of view?
Cheap hardware
Economies of scale in providing power, bandwidth, operations, and software
Factor of 5-7 Virtualization
Cloud computing centers can offer services more cheaply than medium-sized data centers and still turn a profit.
Department of Computer Science — University of San Francisco – p.25/??
Challenges for Cloud Computing
What sorts of challenges exist for cloud computing providers?
Department of Computer Science — University of San Francisco – p.26/??
Reliability
Organizations worry that a service will be unavailable at a critical time.
Cloud services have actually been quite reliable, but the perception is there.
High-reliability often implies no single point of failure, so organizations want explicit redundancy.
Department of Computer Science — University of San Francisco
Data lock-in
It is not necessarily easy to extract programs or data from one cloud provider and import it to another. A standardized API that allowed users to easily deploy data across multiple services would help here.
Data Confidentiality
Users want to know that their data is both confidential and auditable.
Cloud users also need to worry about application-level security
Cloud centers have to worry about data and network-level security.
Also need to worry about malicious users Virtualization is a big help here
Data transfer bottlenecks
For large-scale data-intensive applications, transfer between points in the cloud can be slow and costly. It can be cheaper to physically ship disks.
Upload to S3 is less than 20 MB/sec. To transfer 10 terabytes would take 45 days.
We could also just ship 10 1 TB disks to Seattle overnight.
Performance Unpredictability
Virtual machines can have problems with disk and network contention.
This is an opportunity for research - how to virtualize inpterrupts and access to I/O channels.
Scheduling is also challenging in virtual machines. Hard to ensure that all threads of a program are running at once
Department of Computer Science — University of San Francisco – p.31/??
Reputation Sharing
Bad behavior by some users of a cloud service can afect other users.
For example, spammers getting a set of IPs blocked. Who is liable for customer misbehavior?
Department of Computer Science — University of San Francisco – p.32/??
Third-party licensing
Cloud providers need to figure out how to deal with licenses or third-party software, such as Oracle DB. Currently open-source is very popular in the cloud for this reason.
Commercial vendors need to figure out what a “cloud license” looks like.
Department of Computer Science — University of San Francisco
Summary
Cloud computing uses economies of scale to provide the appearance of unlimited resources, available with high-granularity ricing.
Extension of the idea of software as a service Easy for users to get up and running Helps deal with demand fluctuations
Challenging to deal with data locality, trust, and true transparency.