Professional Documents
Culture Documents
Dilan Gallage
Associate Lead Systems Engineer - DevOps, WSO2 Inc
dilang@wso2.com
2019 - SLIIT - Cloud Computing
What is Cloud Computing?
The Evolution of Software – Standalone
*
The Evolution of Software – Standalone
● Software installed on a local machine
○ e.g. most PC software that need installation access
on the same machine only
● Local access to software
● Problems:
○ limited availability
○ limited reliability
○ limited capacity
○ high maintenance cost
■ e.g. software updates /hardware upgrades
○ high scaling cost
*
Software Evolution - Client-Server
*
Software Evolution - Client-Server
● Software installed on a (remote) machine (server)
● Client(s) access(es) server via network
○ communicate using a protocol
● Problems solved:
○ increased availability
■ if you have the proper client, you can use
● Problems remaining:
○ availability (still limited by server capacity)
○ reliability (depends on server)
■ need redundant server(s) & storage as back-up
*
Software Evolution - Web Applications
*
Software Evolution - Web Applications
● Still client-server applications
● Use web technologies (e.g. HTTP) to:
○ access application
○ connect components
● Problems solved:
○ thin client
■ limited processing on the client side
■ most processing are done on the server
○ use the “standardised” web interface and protocol
■ further increase availability & accessibility
● Problems remaining:
○ inherits client-server problems
*
Software Evolution - SuperComputing
*
Software Evolution - SuperComputing
http://www.top500.org/
*
Cluster Computing
*
Cluster Computing
*
Cluster Computing
*
Grid Computing
*
What is Grid Computing?
Grid computing is a network based computational model that has the ability to
process large volumes of data with the help of a group of networked computers that
coordinate to solve a problem together.
Basically, it’s a vast network of interconnected computers working towards a common
problem by dividing it into several small units called grids. It’s based on a distributed
architecture which means tasks are managed and scheduled in a distributed way with
no time dependency.
The group of computers acts as a virtual supercomputer to provide scalable and
seamless access to wide-area computing resources which are geographically
distributed and present them as a single, unified resource to perform large-scale
applications such as analyzing huge sets of data.
Read more: Difference between Grid Computing and Cloud Computing | Difference Between
http://www.differencebetween.net/technology/difference-between-grid-computing-and-cloud-computing/#ixzz5ssZEIGnF
*
Grid Computing
*
Grid Computing - Use case
● BOINC - Berkeley Open Infrastructure for Network Computing
● Folding@home - Simulates protein folding, drug design and molecular
dynamics
● Einstein@home - Searches for signals from rotating neutron stars in the
data generated from telescopes
● SETI@home - Analyze radio signals, searching for signs of
extraterrestrial intelligence
CGI of a Black Hole
Source : https://www.jpl.nasa.gov/edu/news/2019/4/19/how-scientists-captured-the-first-image-of-a-black-hole/
What is Cloud Computing?
*
What is Cloud Computing?
*
Cloud Computing….
Source - Wikipedia
*
Cloud Computing….
*
Cloud Computing….
*
Common ground - Cloud Computing..
● Self-service interface
*
Progress to Cloud Computing
*
Enabling Technologies
● Virtual Machines / Containers
● Virtualized Storage
● Load Balancing
● AutoScaling
● Virtualized Network
● Monitoring
● Metering
● Multi Tenancy
● Self-healing
*
Virtualization
*
Hypervisors
*
The need to Scale
● Demand to services fluctuates
○ fluctuation occurs in different time scales
■ year-long cycle/pattern: Christmas shopping,
summer travelling
■ fluctuation within 90 min: demands on Google
during world cup final
● Fixed resource provisioning results in
under/over-provisioning
○ under-provisioning: slow systemLakmalresponse, unable to
Warusawithana
serve clients
○ over-provisioning: waste of resources
Auto Scaling
Vertical Scaling
● Vertical scaling means that you scale by adding more
power (CPU, RAM) to an existing machine
● Scale up : more powerful server
● Scale down : less powerful server
Lakmal Warusawithana
Auto Scaling
Horizontal Scaling
● Horizontal scaling means that you scale by adding
more machines into your pool of resources
● Scale out : more instances
● Scale in : few instances
Lakmal Warusawithana
Auto Scaling
Combine scaling
Lakmal Warusawithana
Auto Scaling
Handling variable Demands
Lakmal Warusawithana
Auto Scaling
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Load Balancing / Autoscaling
*
Type of Clouds
*
Service Types
*
Service Model