Why do we need adaptation?
Systems are often subject to various types of uncertainties:
Uncertainties affect qualities (performance, reliability, efficiency, …)
Uncertainties difficult to anticipate before deployment
What are the external factors?
Self-adapting systems handle uncertainty in:
What are the internal factors?
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
What are sensors?
Collect and measure metrics about:
What are effectors or actuators?
Acts upon the system changing one or more of its parameters, examples:
What are effectors or actuators?
Acts upon the system changing one or more of its parameters, examples:
In the MAPE-K framework, what is the role of the Monitor stage?
Collect data from managed element and its execution context to update the Knowledge
Relies on the sensors for the different aspects of the system, environment and user
In the MAPE-K framework, what is the role of the Plan stage?
Adapting the system impacts the system itself and executing the adaptation actions right away might not be a good idea.
Plan places restrictions on how fast the systems can adapt.
Plan prevents disruptions in the system caused by the adaptation itself, takes into account:
In the MAPE-K framework, what is the role of the Analyse stage?
Determines whether adaptation actions are required
Decision is based on the monitor data and administrator goals found in the Knowledge
In the MAPE-K framework, what is the role of the Execute stage?
Executes the adaptation actions of the generated plan, adapting the managed element.
Leverages the effectors.
In the MAPE-K framework, what is the role of the Knowledge stage?
Abstraction of relevant data: - The managed element - The environment - The administrator’s goals Encodes the desired high-level policies and target Service Level Objectives and Service Level Agreement.
What are Service Level Objectives (SLO)?
Specific target for a metric
Example: latency of request X should be below 50ms