Benefits of Cloud Computing Flashcards
Describe the benefit of high availability in the cloud
- availability = uptime
- ## ability of a system to temain operational to users during planned or unplanned outages
What are the benefits of working with the cloud? (7)
- high availability
- high scalability
- reliability
- predictability
- security
- governane
- managebility
What are planned or unplanned outtages?
Planned:
- operating system security patches
- application updates
- hardware replacement
- migrating to a new hosting provider
Unplanned:
- Hardware failure
- Network disruptions
- power outages
- Natural disasters
- Cyber attacks
- Software bugs
- Poor scaling / architecture design
How can you mitigate planned Outtages?
- gradual deployment strategy
- testing and monitoring deployment
- easy rollback plan
- small deployment
- frequent deployments
- automation
How can you mitigate unplanned outages?
- every single core component has redundancy
- use Azures build-in feature for availability (Availability Sets, Availability Zones, Cross-Region Loadbalancing / Front Door)
- Constant health monitoring / probes
- automation
- strong security practices
- be geographically distributed
- have a disaster recovery plan
- test the disaster recovery plan / fire drills
- Load Testing
Abstractly speaking what is High Availability
- conscious effort to avoid obvious sources of downtime
What is scalability?
- ability of a system to accomodate increasing demand by adding or removing resources as needed
Why is scalability needed?
- allows a system to adapt to changing usage patterns and handle increased traffic without requiring changes to the application code or system design
What is vertical scaling?
- also called “scaling up/down”
- adding more resources to a single service
- increase amount of memory, number of cpus
- there is an upper limit to this (96 vCPUs, 384 GB memory)
- does not improve availability
What is horizontal scaling?
- also “scaling in/out”
- adding more servers to a system
- no limits to scaling
- additional complexities for load balancing
Impact of Scaling on System Cost
- adding more resources to a system adds to cost
- reducing resources can reduce cost
- having scalable system allows for a system to be perfectly sized
- optimizes the cost by reducing wasted computing resources
What is Elasticity?
- ability of a system to quickly and easily scale up or down the amount of resources that a system uses in response to changing demand
What is important about easy and quick elasticity?
- has to involve some kind of automation
- often called “autoscaling” in cloud computing
- system monitors some metric (such as CPU utilization) to determine how busy a system is
- adds resources when it exceeds a limit for being busy
- remove resources when it falls below a limit for not being busy
Why is elasiticity needed?
- more efficient and cost-effective use of resources
- minimizes computing “waste” - resources paid for and not used
- self-hostes systems tend to have a large percentage of “over-provisioned” resources for anticipated future growth
- have the potential to have a maximum capacity higher than you could afford if you had a static provisioning of resources
What is connected to delivery high quality services to your customer?
Several, interacting concepts:
- reliability
- predictability
- availability