Chapter 3: Platform as a Service (PaaS) Flashcards

1
Q

What are the three PaaS Value Propositions?

A
  1. Maintenance
    - Hardware maintenance
    - OS patches
    - Middleware updates
  2. Availability
    - Application/service will be available despite maintenance/outages
  3. Scalability
    - Application/service will scale to thousands of concurrent users
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Name and describe the two principle methods to scale.

A

Vertical Scalability (Scaling Up)
Idea: Increase performance of a single node (more CPUs, memory, …)
Pro: Good speed-up up to a particular point
Con: Beyond that point, speed-up becomes very expensive
Horizontal Scalability (Scaling Out)
Idea: Increase number of nodes
Pro: Cheap to grow total amount of resources
Con: Standard software is often not able to leverage resources, special software needed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the Difference between Stateless and Stateful components?

A

a stateless component maintains no internal state beyond a request e.g DNS server, web server with static pages, …
a stateful component maintains state beyond request required to process next request
e.g SMTP server, stateful WS, DBMS, …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Name three possible Levels of Stateless Load Balancing.

A

Load balancing on IP level
Load balancing on DNS
Load balancing by distinct load balancer
(Load balancing on different levels can be combined)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How does Load balancing on IP level work?

A

Balancing is implemented by IP routers
- Multiple devices share one IP address (IP anycast)
- Routers route packet to different locations
Requirements for applicability
- Request must fit in one IP packet
- Control over routers
Examples: DNS root server (mostly for reliability)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does Load balancing on DNS level work?

A

Balancing is implemented by DNS servers
- DNS servers resolve DNS name to different IP addresses
Requirements for applicability
- Control over DNS server
- Stable load characteristics (think of DNS caching)
Examples: Various big websites, e.g. www.google.com

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How does Load balancing by distinct load balancer work?

A

Explicitly distributes request among available machines
- Clients send requests to load balancer
Requirements for applicability
- No network bottleneck
Examples: Various websites, Amazon Elastic LB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the three Different strategies for the actual load balancing?

A
  1. Round robin LB
    - Simple, good if all request cause roughly the same load
  2. Feedback-based LB
    - Servers report actual load back to load balancer
  3. Client-based LB
    - Choose server with smallest network latency for client
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explain the Idea of Partitioning.

A

Divide data into distinct independent parts
- Each server is responsible of one or more parts
Pure partitioning improve scalability but not availability
- Each data item is only stored in one partition!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Name and explain three Popular Partitioning Schemes.

A

Partitioning per tenant
- Put different tenant on different machines
- Pro: In PaaS clouds, tenants are expected to be isolated No network traffic between machines, good scalability Con: Tenant cannot scale beyond one machine
Horizontal partitioning (relational databases)
- Split table by rows
- Put different rows on different machines
- Reduced number of rows, reduced indices
- Done by Google BigTable, MongoDB
Vertical partitioning (relational databases)
- Split table by columns
- Not very common to improve scalability
-> Just mentioned here for the sake of completeness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Which two Classes of Partition Functions exist and what are the pro and cons?

A

Hash partitioning

  • Desired property: Uniform distribution
  • Pro: Good load balancing characteristics
  • Con: Inefficient for range queries, typically requires data reorganization when number of partitions changes

Range partitioning

  • Pro: Efficient for range queries and partition scaling
  • Con: Poor load balancing properties
How well did you know this?
1
Not at all
2
3
4
5
Perfectly