AN INTRODUCTION TO CLOUD COMPUTING
Web, as a Platform…
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Web 2.0
A transformation of web contents from static to dynamic.
Self Publishing / Blogger.com(1999), YouTube(2005)
Feeds / RSS(1999), Atom(2003)
Feeds / RSS(1999), Atom(2003)
Tagging / del.icio.us(2003), flickr(2004)
Ajax / Gmail(2004), Google Map(2005)
Long Tail / Amazon(1994), AdSense(2005)
Collaboration / Wikipedia(2001), Google docs(2006)
Social / MySpace(2003), Facebook(2004)
MicroBlogging / Twitter(2006), Plurk(2008)
Web 2.0
The Importance is…
Nowadays, PEOPLE DO
Nowadays, PEOPLE DO
SPEND MORE TIME ON THE
WEB.
Web as Application
Searching
Authoring
Interaction
Social
Social
……
And any mix of above
So…?
What do folks care about?
Availability?
Scalability?
Efficiency?
Efficiency?
Consistency?
Reliability?
More Insight in SCALABILITY
Why is scalability important?
Server may be down because of overloading.
Server may be down because of overloading.
In ordinary viewpoint, NOT SERVING = USELESS !!!
Heroku, An Example
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Cloud?
Cloud Computing
The International Workshop on Cloud Computing(2009)
Cloud Computing is defined as a pool of virtualized computer resources. Based on this virtualization the Cloud Computing
paradigm allows workloads to be deployed and scaled-out quickly through the rapid provisioning of virtual machines. A Cloud Computing platform supports redundant, self-recovering, highly scalable programming models that allow workloads to highly scalable programming models that allow workloads to recover from many inevitable hardware/software failures and monitoring resource use in real time for providing physical and virtual servers on which the applications can run. A Cloud
Computing platform is more than a collection of computer
resources because it provides a mechanism to manage those resources. In a Cloud Computing platform software is migrating from the desktop into the "clouds" of the Internet, promising users anytime, anywhere access to their programs and data.
Cloud Computing(cont.)
Wikipedia
Cloud computing is the provision of dynamically scalable and often virtualized resources as a service over the
Internet on a utility basis.[1][2] Users need not have
knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them. Cloud
infrastructure in the "cloud" that supports them. Cloud computing services often provide common business
applications online that are accessed from a web browser, while the software and data are stored on the servers.
The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network
diagrams and is an abstraction of the underlying infrastructure it conceals.
Cloud Computing(cont.)
SearchCloudComputing.com
Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-
Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a- Service (SaaS). The name cloud computing was inspired by the Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often used to represent the Internet in flow charts and diagrams. A cloud service has three distinct
characteristics that differentiate it from traditional hosting. It is sold on demand, typically by the minute or the hour; it is elastic -- a user can have as much or as little of a service as they want at any given time; and the service is fully managed by the provider (the consumer needs nothing but a personal computer and Internet access).
Cloud Computing(cont.)
1. Accessible with any device with a browser
2. Focusing on scaling
3. Easy to use
4. Elastic (use on demand)
4. Elastic (use on demand)
5. Virtualization
SaaS, IaaS, PaaS
Software as a Service
Search, Amazon, Facebook…
Infrastructure as a Service
Infrastructure as a Service
Amazon EC2, GoGrid, 3tera…
Platform as a Service
Google AppEngine, Heroku, Aptana
To User
Data can be stored in the cloud
Accessible anywhere
Collaboration
More powerful and efficient
More powerful and efficient
To Developer
More reliable (distributed) data center
More reliable serving
Dynamic scalability
PaaS
PaaS
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Issues
Scalability
Reliability
Data Consistency
Efficiency
Efficiency
Scalability
Scalability
One cannot predict the number of user correctly
Use on demand
Reliability
The service must be persistent and robust.
Load Balancing
Fault-Tolerant
Fault-Tolerant
Crash Detection
Self-Recovering Ability
Consistency
Data must be consistent anytime.
No corruption, volatility
Error Checking Mechanism
Error Checking Mechanism
Redundancy
Locking Mechanism
Efficiency
Cloud leverages computing power to obtain low latency.
Commodity Hardware
Commodity Hardware
Parallelism
Efficient Memory Caching
Bandwidth
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Applications
Google Application
MapReduce : Processing
BigTable : Database Management
GFS : Storage
GFS : Storage
Chubby : Locking service
App Engine : Serving (Now opened !)
Hadoop
Open-source Implementation of MapReduce & GFS
MapReduce
Automatic & efficient parallelization and distribution
Fault-tolerable and robust processing
BigTable
Distributed multi-level sparse map
Reliable database management
Fault-tolerant and Persistent
Highly scalable
Highly scalable
Self-load-balancing
Google File System(GFS)
Reliable and efficient data storage.
High performance to mutation.
File chunks are replicated for backup.
Master/Chunk-server mechanism
Master/Chunk-server mechanism
Chubby
Coarse-grained Locking Service
Fault-tolerance file management
Paxos consensus Algorithm
AppEngine
IaaS + PaaS
Purchase additional resources if needed.
High scalability, efficiency, and reliability.
Cloud Computing To Smart Home?
1. A robust and efficient statistic center and processing center.
2. A stronger monitoring ability.
3. More service availability.
3. More service availability.
4. Fault-tolerance mechanism.
5.
And more!
Outline
Web2.0 – The Trends
Cloud Computing
Issues
Applications
Applications
Q&A
Q & A
Any feedback or problems?