Please enable JavaScript.
Coggle requires JavaScript to display documents.
DST Lecture 4 (Design for Elasticity (Design for handling failures…
DST Lecture 4
Design for Elasticity
Design for handling failures
Resource failures
problems with CPU, network, etc.
scopes
within enterprise
within data center
across multiple sites
across multiple infrastructures
Throttling (prevent too many access, disable unessential services)
Queue-based load leveling
Multiple instances
Circuit breaker (prevent unneccessary requests to failed service)
Virtualisation
abstract low-level resources and create virtualised version
virtual resources isolated from physical ones
Types
Compute resource virtualisation
Storage virtualisation
Resources
storage devices
harddisk
optimise usage and management of data storage
low-level (e.g. RAID)
high-level (e.g. databses)
Network Function virtualisation
dynamically provision
consolidate network equipment
Compute resource virtualisiation
Resources
CPU
Memory
I/O
provide resources for virtual machines
HyperVisor (Virtual Machines)
run on own virtual hardware with own kernel
communicate through network
performance overhead
VMs need to bootup
higher storage consumption
Containerization (Containers)
all containers share the same OS and kernel
communicate via IPC
native performance
almost no startup time
Reasons
server consolidation
infrastructure
human resources
utilized resources
security and fault tolerance (dynamic provisioning)
cost optimization (elasticity)
compatibility issues
devops (closing gab between real and development environment)
Elasticity
material returns to its original shape after the stress
Stress (causes the elasticity)
Strain (measures what has been changed)
use of computer resources which vary dynamically to meet a variable workload
resource requirements should scale up and down
Types
Demand (elastic demands from consumer)
Output (multiple outputs with different price and quality)
Input (deal with opportunistic data)
Pricing and Quality models
Resources and their impact
Types of distributed applications
layer based
workflow/process style
data-centric pipline style