1 of 39

1

2 of 39

Scalability

Basics, application to systems, teams and processes

3 of 39

Hello!

I am Fran Ortiz

@fortiz2305

I am Edu Ferro

@eferro

https://www.eferro.net

3

4 of 39

What is scalability?

  • Wikipedia’s definition
    • Scalability: Capability of a system to handle a growing amount of work by adding resources to the system.�
  • Mathematical definition
    • Function, with size or load on the X axis, and throughput on the Y axis.

4

5 of 39

Scalability vs. Performance

5

Performance measures the speed/latency of a single request.

Scalability measures the ability of a system to handle a growing amount of work.

6 of 39

6

7 of 39

Linear Scalability

Ideal case

7

1

8 of 39

Linear Scalability

  • Ideal case: throughput increases linearly with load.
  • Examples:
    • 100 operations/s with 1 node -> 400 operations/s with 4 nodes.
    • Adding people to an organisation, the organisational capacity to do work increases linearly with the number of people.

8

9 of 39

Linear Scalability: ideal case

9

Throughput increases linearly with load.

10 of 39

10

11 of 39

Amdahl’s Law

Contention factor

11

2

12 of 39

Contention factor

Contention factor measures the effect of waiting or queueing for shared resources.

12

13 of 39

Amdahl’s Law: contention factor

13

Contention factor: measures the effect of waiting or queueing for shared resources.

14 of 39

14

0% 1% 2% 5%

15 of 39

Contention factor: examples

Teams

  • Centralized tasks/processes

Systems�

  • Monolith infrastructure
  • Optimization engines

15

16 of 39

Nextail Optimization engine

16

17 of 39

Universal Scalability�Law (USL)

Coherence factor

17

3

18 of 39

Coherence factor

Coherence factor refers to the time spent restoring a common view of the world or getting an agreement across different processors.

18

19 of 39

The Universal Scalability Law

19

Coherence factor

Contention factor

😭

20 of 39

Why is coherency quadratic?

N workers = N(N-1) pairs of interactions.

20

21 of 39

USL: examples

Teams

  • Very large teams�
  • Minimize team dependencies

Systems�

  • Nextail BI Subsystem

21

22 of 39

Nextail BI Subsystem

22

23 of 39

Nextail BI Subsystem

23

24 of 39

Queueing Theory

24

4

25 of 39

Queueing Theory

25

😭

😉

26 of 39

Queues

  • > 80% utilization -> rapid degradation
  • 100% utilization -> inf waiting time

  • Three regimes:
    • everything is okay
    • Oh wait
    • F**k

26

27 of 39

27

28 of 39

28

High variability

Low variability

29 of 39

Queuing: examples

Teams

  • Operations team vs each team has operations
  • Front/Back teams vs End to End teams

Systems�

  • From monoqueue to multi queue

29

30 of 39

Little’s Law

30

31 of 39

Little’s Law: examples

Teams/Processes

  • WIP limits in each team
  • Flow optimization (instead of resource optimization)
  • Self-service platform (no ops team)

31

32 of 39

Conclusions

32

5

33 of 39

Mental models

  • Linear scalability
  • Amdahl’s Law
  • Universal Law of scalability
  • Queueing Theory
  • Little’s law

33

34 of 39

Think about scalability

Nextail

    • Design to support x2 size / x10 clients
    • Think about x20 (size/clients)
    • Imagine/Brainstorm x100 (size/clients)

34

35 of 39

35

36 of 39

36

37 of 39

References

37

38 of 39

Thanks!

Any questions ?

You can find us at

  • @eferro
  • @fortiz2305

38

39 of 39

39