P4L4: Datacenter Technologies Flashcards
What are the pros and cons of homogenous designs for large-scale distributed systems?
PROS
- Frontend load-balancing component can be simple. It simply needs to send requests to each of the nodes in a round-robin manner.
- So is scaling! Just add more/less nodes because they all do the same thing
CONS
- No benefit from caching. The frontend component doesn’t keep enough state in this design to understand the locality of tasks on a node-by-node basis.
What are the pros and cons of heterogenous designs for large-scale distributed systems?
PROS
- Caching can be leveraged more effectively. With similar computations being performed on similar data, the possibility of actionable data being present in the cache increases. Our system has more locality.
CONS
- The frontend becomes more complex, as it now needs to know more about the system in order to route requests.
- Scaling opportunities become more complex. It’s not enough to add or remove nodes in response to fluctuating traffic. In heterogenous systems, you’ll need to understand which components of the system need to be scaled up or scaled down.
Describe the history and motivation behind cloud computing
The earliest history of cloud computing begins in the 1960s with the idea that computing could be a public utility, like telephone services. This wasn’t realizable at the time because stable cloud computing models didn’t exist yet.
The more recent history begins in 2006. Amazon realized that the bulk of its hardware was being utilized only during the relatively short holiday season. For the rest of the year, a lot of their resources were underutilized. Amazon found that it could utilize that computing power in the offseason by renting out that power to third party workloads. This led to Amazon Web Services.
What are the basic models of cloud computing?
- Software as a service (SaaS)
- Platform as a service (PaaS)
- Infrastructure as a service (IaaS)
Describe Software as a Service (SaaS)
In software as a service (SaaS) platforms, the provider owns everything in the cloud service stack, from application down to physical hardware.
Gmail is an example of a SaaS platform.
Describe Platform as a Service (PaaS)
In platform as a service (PaaS) systems, the provider owns the infrastructure and the physical hardware (everything in the cloud stack up through Runtime).
The developer is responsible for bringing the application and the data.
For example, the Google App Engine is a platform for developing android apps. The platform provides an environment for executing these applications, but the developer must bring their own application.
Describe Infrastructure as a Service (IaaS)
In infrastructure as a service (IaaS) systems, the providers owns the physical hardware and virtualization.
The developer brings the applications, the data, and is responsible for configuring the infrastructure, such as the middleware and the operating system.
Amazon EC2 is an example of an IaaS platform.
What are some of the enabling technologies that make cloud offerings broadly useful?
- Virtualization
- Resource provisioning
- Big data
- Monitoring
What makes cloud computing practical (from the service provider’s perspective)?
- The law of large numbers. With a large number of computing clients (with randomly timed needs), the amount of resources needed will be constant on average. As a result, the provider can purchase some fixed amount of hardware without worrying about fluctuations in individual client’s peak consuming all of the resources.
- Economies of scale. The fixed cost of hardware can be amortized across multiple clients sharing that hardware. Naturally, the best scenario is having many, many clients.
What makes cloud computing practical (from the client’s perspective)?
- Elasticity of resources: Consider Animoto, which went viral when added to Facebook and had to scale up its resources by two orders of magnitude over one week. With a traditional, on-premises setup, this type of scale would not have been possible. But data centers allow for seamless scaling.
- Elasticity of cost: Because of elastic resources, the cost incurred by computational consumption can better mirror potential revenue influx. If we assume that higher computational consumption is correlated with higher traffic, which is correlated with higher revenue, then cloud computing platforms allow us to only pay more when we are making more. Traditionally, we would buy a fixed amount of computing resources, and they would be either underutilized or maxed out.
What about cloud services make failures unavoidable?
Failures are unavoidable in a complex cloud computing environment because the probability of failure of a system is the product of the probabilities of failure of any component. With more components, the probability of overall failure increases.
For example, suppose one link in system has a probability of failure of 5%. The overall system has a 95% change of success. With 30 links that each have a probability of failure of 5%, the overall system has a (0.95)^30, or 21% chance of success.
What is a homogenous design for a large scale distributed system?
In a homogenous design, all of the nodes in the system are able to fulfill any request that enters the system.
What is a heterogenous design for large scale distributed systems?
In a heterogenous design, each node is specialized to fulfill some subset of requests that enter the system.
How do virtualization technologies enable cloud offerings?
- Virtualization technologies help to make physical hardware into fungible resources that can be repurposed for different workloads.
How do resource provisioning/scheduling technologies enable cloud offerings?
- Resource provisioning/scheduling technologies enable the DYNAMIC provisioning and scheduling of resources