Self-Adapting Flashcards
Why do we need adaptation?
Systems are often subject to various types of uncertainties:
- Changing conditions in the environment (resources, services,…)
- User behavior that is difficult to predict
- Goals may change dynamically
Uncertainties affect qualities (performance, reliability, efficiency, …)
Uncertainties difficult to anticipate before deployment
What are the external factors?
Self-adapting systems handle uncertainty in:
- Its own status -> Example: disk throughput is lower than usual
- The environment -> Example: user requests have increase 10x
- Goals -> Example: request latency should be below 10ms from 20ms
What are the internal factors?
- Domain concerns:
- Concerned with the goals for which the system is built
- Example: database should serve 99% of requests under 50ms
- Adaptation concerns:
- Concerned about how the system realizes its goals under changing conditions. Maintain domain under control.
- Example: database has configuration parameters to optimize performance for different workloads
What are the 4 main Autonomic Computing Principles?
Self-configuring
Self-healing
Self-optimizing
Self-protecting
Which system handles the domain concerns?
Managed system. The controllable software.
Which system handles the adaptation concerns?
Managing system
What are the domain concerns?
One of the internal factors which interacts with the environment and is concerned with the goals for which the system is built
Example: database should serve 99% of requests under 50ms
What are the adaptation concerns?
One of the internal factors which interacts with the managed system and is concerned with how the system realizes its goals under changing conditions.
Example: database has configuration parameters to optimize performance for different workloads
What are the components of the autonomic manager reference model MAPE-K?
Monitor Analyse Plan Execute Knowledge
Define the self-configuring autonomic computing principle
Automatic integration and distribution of resources by the system in accordance with the high-level policies which state what is desired, not how to do it.
Define the self-healing autonomic computing principle
Detection, diagnosis and reaction to system disruptions
– Faults in components of the system should not lead to failures
– Continuously analyze information from monitors and log files
– Key properties of dependable systems
Define the self-optimizing autonomic computing principle
Automatically measure and tune resources to improve performance and usage. Systems have hundreds of tunable parameters.
Define the self-protecting autonomic computing principle
Anticipate, detect, identify and protect against attacks. Known and unknown threats. Anticipate and prevent a system from reaching a faulty state.
How to make a legacy system self-adapting?
Add feedback loops to deal with adaptation concerns
How to make a new system self-adapting?
Separate domain concerns from adaptation concerns
More flexibility to handle future changes