When microservices evolve, previously consistent elasticity rules might diverge from the initial intents/requirements, therefore we propose a vision to keep them aligned throughout the SDLC.
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations
1. Reliable Software Systems
Towards Generating
Elastic Microservices:
A Declarative Specification for
Consistent Elasticity
Configurations
Floriment Klinaku, Vincenzo Ferme
2. Elastic Microservice
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
50/s
60/s
Time
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
Arrival rate (req/sec)
3. Elastic Microservice
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containersArrival rate (req/sec)
4. Elastic Microservice
Adaptation
process
# of containers
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
Arrival rate (req/sec)
50/s
60/s
Time
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
5. Elastic Microservice
Adaptation
process
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containersArrival rate (req/sec)
6. Elastic Microservice
Adaptation
process
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
Elasticity
requirements
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containersArrival rate (req/sec)
7. Elastic Microservice
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
Elasticity
requirements
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containersArrival rate (req/sec)
8. Elastic Microservice
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Elasticity
requirements
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containersArrival rate (req/sec)
9. Elastic Microservice
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
Arrival rate
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Elasticity
requirements
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 230.08.18
# of containers
10. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
11. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
12. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
replicas: 3
time: Thu
13. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
replicas: 3
time: Thu
Detection
RQ2: How to
automatically
detect elasticity
regression?
14. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
replicas: 3
time: Thu
DetectionSpecification
RQ2: How to
automatically
detect elasticity
regression?
RQ1: How to
specify elasticity
requirements?
15. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
replicas: 3
time: Thu
DetectionSpecification Resolution
RQ2: How to
automatically
detect elasticity
regression?
RQ3: How to
automatically fix
elasticity
configurations?
RQ1: How to
specify elasticity
requirements?
16. Towards Generating Elastic Microservices
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 3
replicas: 4
time: Thu
replicas: 4
time: Thu
?
replicas: 3
time: Thu
DetectionSpecification Resolution
RQ2: How to
automatically
detect elasticity
regression?
RQ3: How to
automatically fix
elasticity
configurations?
RQ1: How to
specify elasticity
requirements?
Extending BenchFlow
Future Work
17. BenchFlow
30.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
[Ferme et al. ]
18. BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
[Ferme et al. ]
19. BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
[Ferme et al. ]
20. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
[Ferme et al. ]
21. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
Varying
Workloads?
[Ferme et al. ]
22. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
Varying
Workloads?
Elasticity
Requirements?
[Ferme et al. ]
23. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
Varying
Workloads?
Adaptation
Process?
Elasticity
Requirements?
[Ferme et al. ]
24. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
Resources?Varying
Workloads?
Adaptation
Process?
Elasticity
Requirements?
[Ferme et al. ]
25. DetectionSpecification
BenchFlow
31.08.18Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 4
End-to-end automation of performance testing and analysis
BenchFlow
YAML
Workload Modeling
SUT Configuration
and Deployment
Test Execution
Data Collection
Data Analysis
Varying
Workloads?
Adaptation
Process?
Elasticity
Requirements?
Elasticity
Metrics?
Resources?
[Ferme et al. ]
26. Work Plan
2018 2019
Extending BenchFlow to support performance regression tests
Extending BenchFlow DSL to support the expression of elasticity
regression tests
Extending BenchFlow framework to execute elasticity tests
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 529.08.18
27. Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Elasticity
requirements
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
# of containersArrival rate (req/sec)
28. Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
Specification
YAML
Elasticity
requirements
# of containersArrival rate (req/sec)
29. Arrival rate (req/sec)
Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
Specification
Detection
YAML
Elasticity
requirements
BenchFlow
# of containers
30. Arrival rate (req/sec)
Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
Specification
Detection
YAML
Elasticity
requirements
replicas: 3
time: Thu
Resolution
BenchFlow
# of containers
31. Arrival rate (req/sec)
Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
Specification
Detection
YAML
Elasticity
requirements
replicas: 3
time: Thu
Resolution
BenchFlow
# of containers
32. Conclusion
Adaptation
processfaster
algorithm
0/s
10/s
20/s
30/s
40/s
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
0
1
2
3
4
5
6
Arrival rate
50/s
60/s
Time
Elasticity
configurations
replicas: 4
time: Thu
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 630.08.18
Specification
Detection
YAML
Elasticity
requirements
replicas: 3
time: Thu
Resolution
BenchFlow
# of containers
33. Thank you
Towards Generating Elastic Microservices: A Declarative Specification for Consistent Elasticity Configurations 729.08.18