Internet DRAFT - draft-ciavaglia-anima-coordination
draft-ciavaglia-anima-coordination
ANIMA L. Ciavaglia
Internet-Draft P. Peloso
Intended status: Standards Track Alcatel-Lucent
Expires: September 22, 2016 March 21, 2016
Autonomic Functions Coordination
draft-ciavaglia-anima-coordination-01.txt
Abstract
This document describes a management solution capable of avoiding
conflicts between autonomic functions. The objective of such a
solution is to avoid network instabilities, by insuring that the
autonomic functions pursuing different goals will cooperate instead
of antagonize each other. This document provides both requirements
and specifications for such a solution.
Disclaimer: the version -01 of the draft has been issued to
reactivate the document in order to allow discussion within the ANIMA
WG about the coordination of autonomic functions.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 22, 2016.
Ciavaglia & Peloso Expires September 22, 2016 [Page 1]
Internet-Draft Autonomic Functions Coordination March 2016
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
This document may not be modified, and derivative works of it may not
be created, except to format it for publication as an RFC or to
translate it into languages other than English.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4
3. Guiding principles . . . . . . . . . . . . . . . . . . . . . 4
4. Initial sketch of a Coordination Function . . . . . . . . . . 6
4.1. Preliminary assumptions . . . . . . . . . . . . . . . . . 6
4.2. Algorithms for coordination . . . . . . . . . . . . . . . 7
4.3. Behavior of the coordination function . . . . . . . . . . 7
4.3.1. Times of the identification of interactions between
AF . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3.2. Times of the coordination of AF . . . . . . . . . . . 9
4.4. Conclusions . . . . . . . . . . . . . . . . . . . . . . . 9
5. External Requirements . . . . . . . . . . . . . . . . . . . . 10
5.1. Autonomic Function Descriptor (AFD) . . . . . . . . . . . 10
5.2. control/command interface of AF . . . . . . . . . . . . . 10
5.3. Interaction/Information Maps . . . . . . . . . . . . . . 11
6. Specifications . . . . . . . . . . . . . . . . . . . . . . . 11
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
The document Autonomic Networking: Definitions and Design Goals
[RFC7575] explains the fundamental concepts behind Autonomic
Networking, and defines the relevant terms in this space. The
central concepts are Autonomic Nodes and Autonomic Functions.
Ciavaglia & Peloso Expires September 22, 2016 [Page 2]
Internet-Draft Autonomic Functions Coordination March 2016
An Autonomic Function is characterized by its implementing a closed
control-loop, which we can summarize as successively:
1. Gathers metrics monitored by network equipments (that could be
Autonomic Nodes, but not limited to)
2. Determines/computes new actions out of these inputs plus possibly
some of the additional elements: e.g. contextual inputs, provided
intents and gathered experience,
3. Set the computed parameters values (from the previous actions)
inside the appropriate network equipments,
4. These new parameters values influence the network behavior, such
that the metrics gathered by the autonomic function will evolve,
(Section 7.5 of [I-D.behringer-anima-reference-model] details more
the control loops).
The Autonomic Functions are normally designed to stabilize
(converge), at least when the network conditions are themselves
stable. However, conflicting interactions among Autonomic Functions
can create instabilities even when the network conditions have not
varied.
The document A Reference Model for Autonomic Networking
[I-D.behringer-anima-reference-model] describes the reference model
of autonomic networks, by describing the architecture and enumerating
fundamental blocks (either infrastructure pieces or enabling
functionalities). One of these functionalities pertains to the
concomitant execution of multiple autonomic functions in a safe way
(i.e. avoiding conflicts between these different autonomic loops).
Section 8 of [I-D.behringer-anima-reference-model] (Coordination
between Autonomic Functions) provides a brief introduction to this
functionality.
This document tackles this topic by successively:
1. Explaining why such a functionality is needed,
2. Detailing which objectives such a functionality should reach,
3. Sketching a simple behavior of this function,
4. Providing requirements on autonomic functions (a tentative list
in this document version),
Ciavaglia & Peloso Expires September 22, 2016 [Page 3]
Internet-Draft Autonomic Functions Coordination March 2016
5. Providing some specifications items (in this preliminary version,
while future versions would provide specifications),
2. Problem Statement
The need to coordinate the joint behavior of autonomic functions
arises from the need to cope with conflicting situations and to
provide the operator with the ability to steer autonomic network
performance to a given (intended) operational point.
Several interaction types exist among autonomic functions such as
cooperation, dependency, or conflict (and possibly others [TBD]).
Cooperation happens when an autonomic function can improve the
behavior or performance of another autonomic function, such as a
traffic forecasting function used by a traffic allocation function.
Dependency happens when an autonomic function cannot work without
another one being present or accessible in the autonomic network.
Conflicts among autonomic functions emerges from direct and indirect
interactions. A metric value conflict is a conflict where one metric
is influenced by parameters of different autonomic functions. A
parameter value conflict is a conflict where one parameter is
modified by different autonomic functions. A simple example of
conflicting interaction between autonomic functions is the
oscillations caused by an energy-saving function (which switches-off
interfaces to reduce power consumption) and a load-balancing function
(which switches-on interfaces to reduce link load).
Solving the coordination problem beyond one-by-one cases can rapidly
become intractable if one considers networks composed of tens,
hundreds or thousands of simultaneously interacting functions.
Specifying a common functional block on coordination is a first step
to address the problem in a systemic way.
3. Guiding principles
A coordination function appears as an essential component of the
ANIMA reference model in order to achieve better control on the
performance, stability and convergence of autonomic networks.
As guiding principles, the ANIMA coordination function should:
o Maximize the autonomic network utility, i.e. mitigate the
(observed or inferred) detrimental effects of conflicting
autonomic functions (Efficiency property).
Ciavaglia & Peloso Expires September 22, 2016 [Page 4]
Internet-Draft Autonomic Functions Coordination March 2016
o Balance the autonomic network goal(s) and autonomic functions
individual goal(s) (Congruence and Coherence properties).
o Inform the autonomic network operator (being a human or a machine)
with processed and aggregated "call(s) for governance" in case the
goals are incompatible and no satisfactory solution can be found
(i.e. compliant with the intent).
o Deviate the least possible autonomic functions from their design
objective(s) and individual goal(s) (Liberality property).
o Impose minimal additional requirements on the external
specifications of autonomic functions, such as the format and
content of the autonomic function descriptor(s)/capabilities
(Economy property).
o Not impose any requirement on the internal specifications of
autonomic functions (Independence property).
o Support multiple coordination mechanism types (Plurality
property).
o Enable coordination mechanisms to be plugged in at deploy- and
run-time (Modularity property).
o Determine the most suitable coordination mechanism(s) to apply
according to contexts (e.g. change in autonomic functions, change
in intents/goals, change in coordination mechanisms available)
(Dynamicity property).
o Develop a long-term vision of the autonomic functions interactions
and devise the most suitable plan to address the conflicting
cases, based on available coordination mechanisms and mission(s)
set by the intent (Adaptivity property).
o Be able to fully or partially suspend/stop one or multiple
autonomic functions, temporarily or an undetermined amount of time
until the situation evolves (Authority property).
o Be able to operate equally well in a distributed or centralized
manner (Distributivity property).
o Be able to cope with several thousands of simultaneous
interactions (Performance and scalability property).
Ciavaglia & Peloso Expires September 22, 2016 [Page 5]
Internet-Draft Autonomic Functions Coordination March 2016
4. Initial sketch of a Coordination Function
For the sake of the following sections, this section is providing a
rough description of the functioning of a coordination function, and
how it organizes itself along the network time.
4.1. Preliminary assumptions
Autonomic functions do exist in different states corresponding to
different steps in their life-cycle. The description of some of
these steps is better understood by referring to the
High level view of an Autonomic Network which is depicted in Figure 1
of [I-D.behringer-anima-reference-model], which Figure is copied
below:
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
: : Autonomic Function 1 : :
: ASA 1 : ASA 1 : ASA 1 : ASA 1 :
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
: : :
: +- - - - - - - - - - - - - - + :
: : Autonomic Function 2 : :
: : ASA 2 : ASA 2 : :
: +- - - - - - - - - - - - - - + :
: : :
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
: Autonomic Networking Infrastructure :
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+--------+ : +--------+ : +--------+ : +--------+
| Node 1 |--------| Node 2 |--------| Node 3 |----...-----| Node n |
+--------+ : +--------+ : +--------+ : +--------+
Figure 1: High level view of an Autonomic Network
Undeployed - In this state, the Autonomic Function is a mere piece
of software, which may not even be copied on any node, but which
may well be the code of the Autonomic Service Agents (ASA)
corresponding to this Autonomic Function.
Instantiated/Deployed - In this state the Autonomic Function is
deployed, which means the ASA are available in the Nodes and
gathered together into an Autonomic Function. In this state the
autonomic function is bind to a scope which is the part of the
network on which the autonomic function is meant to perform its
duties. As a first approximation, the scope matches the Nodes
Ciavaglia & Peloso Expires September 22, 2016 [Page 6]
Internet-Draft Autonomic Functions Coordination March 2016
which receive instructions from one of the ASA gathered in the
Autonomic Function.
Running - In this state, the autonomic function is deployed and is
executing its closed control loop, hence acting on network, by
modifying Nodes parameters.
The above list of states is not meant to be exhaustive, and would be
better expanded in a document dedicated to Autonomic Functions,
nevertheless the distinctions between the three above states are
unavoidable.
4.2. Algorithms for coordination
This sub-section does not intend to specify algorithms capable of
achieving coordination between autonomic functions, but means to
illustrate different ways of avoiding conflicts, we can briefly list
the following families of algorithms:
Random token - This algorithm is insuring that each autonomic
function is executing its control-loop the one after the other,
the sequence is following a random pattern.
Time separation - This algorithm is insuring that each autonomic
function is executing its control-loop at different rates, e.g.
for 2 functions: one is running fast enough to have time to
converge in between two iterations of the slower one (this
algorithm requires proper settings with regards of the autonomic
functions to coordinate).
Efficiency bids - In this algorithm, each autonomic function
predicts which improvement its executing of its control-loop would
bring, hence the coordination algorithms, picks the autonomic
function promising the "best" improvement, and grants it the right
to execute.
4.3. Behavior of the coordination function
This function is expected to steer the network towards a better
"operating" point, by avoiding/mitigating detrimental interactions
between Autonomic Functions.
The first step of such a process is the identification of these
interactions and their classification in order to determine which
ones have to be handled (at least the problematic ones i.e.
conflicting ones).
Ciavaglia & Peloso Expires September 22, 2016 [Page 7]
Internet-Draft Autonomic Functions Coordination March 2016
The second step is the gathering of the identified interactions in
groups that can be handled together while insuring the proper
behavior of the network. This step intends to avoid handling all the
interactions in one raw, but possibly to split the whole problem in
smaller pieces, easier to handle.
The third step is the instantiation of coordination mechanisms well
suited to handle each groups of interactions previously identified.
Hence these coordination mechanisms would control the autonomic
functions in order to insure a network behavior matching the intents
of the network operator.
4.3.1. Times of the identification of interactions between AF
As the coordination function handles autonomic functions, its working
is related to the different states of autonomic functions, namely,
build-time, deploy-time and run-time. Hence the coordination
function also present a life-cycle consisting in these 3 different
states , in which the coordination function behaves according to the
following descriptions:
At build-time, a common description of the autonomic function
attributes (metrics, parameters, actions, capabilities...) allows to
construct a "static interaction map" from the a-priori knowledge that
can be derived/inferred from the functions attributes relationship.
The static interaction map can be used as a first element by the
operator (or mechanism) to (pre-)define policies and priorities as
coordination strategies to manage the a-priori conflicts identified.
At deploy-time, autonomic functions are deployed on the network (i.e.
installed, configured, instantiated...) but are not yet active/acting
on the network. At this stage, for each instance of the autonomic
functions and on a per resource basis, an inventory of the metrics
monitored, of the actions performed and their relationships can be
realized, resulting in a "dynamic interaction map". The dynamic
interaction map provides the basis to identify conflicts that will
happen at run-time, categorize them and plan for the appropriate
coordination strategies/mechanisms.
At run-time, conflicts happens and arbitration is driven by the
coordination strategies and available mechanisms. This is also the
stage where new dependencies can be observed and inferred, ultimately
resulting in update of the dynamic interaction map and possible
adaptation of the coordination strategies and mechanisms.
Ciavaglia & Peloso Expires September 22, 2016 [Page 8]
Internet-Draft Autonomic Functions Coordination March 2016
4.3.2. Times of the coordination of AF
TBC
4.4. Conclusions
Some of the previous elements impact directly the coordination
function, some other imply capacities of external elements such as
Autonomic Functions and the Autonomic Control Plane. This conclusion
is briefly categorizing and summarizing those:
Requirements onto the AF -
a descriptor of metrics and parameters/actions: a generic way
of describing the inputs and outputs of the closed control
loop, in order to identify the interactions.
a life-cycle: to match the process of the coordination (shortly
stated, interaction identification and then conflict solving).
a common command interface of the autonomic functions: for the
coordination to control the pace at which an autonomic function
executes its control loop.
Requirements onto the ACP -
a common representation of information and knowledge: a
function used to build the interactions maps.
Requirements onto the Coordination Function -
interaction identification: a function in charge of identifying
interactions
interaction grouping: a function coping with grouping the
previously identified interactions, in bundles that can be
managed independently (for scalability concerns)
supporting various coordination mechanisms: to have the freedom
of picking the most appropriate one.
interaction solving: a function capable of handling an
independent bundle of interactions by controling the implied
autonomic functions according to the picked algorithms.
Ciavaglia & Peloso Expires September 22, 2016 [Page 9]
Internet-Draft Autonomic Functions Coordination March 2016
5. External Requirements
At this stage of the document, this section is merely providing a
structure of its content.
In order to achieve the aforementioned goals (detailed in section
Section 3) a Coordination Functional Block should bring the following
features:
a common description of autonomic functions attributes and its
life-cycle.
a common command interface between the coordination "agent" and
the autonomic functions.
a common representation of information and knowledge (cf.
interaction maps).
Guidelines, recommendations or BCPs can also be provided for the
aspects pertaining to the coordination strategies and mechanisms.
The coordination function requires a certain set of elements to work
properly such as the autonomic function descriptor and the
interaction map(s).
5.1. Autonomic Function Descriptor (AFD)
The Autonomic Function Descriptor (AFD) should contain the following
elements:
actions, metrics, parameters, controlled resources.
5.2. control/command interface of AF
The Autonomic Function could be guided in its executing of its
control-loop by the coordination mechanism. The guidance could range
from preventing the executing of the control loop, to letting run on
its own. In the middle of the range, coordination mechanism could
restrain the actions, halt the control-loop at a given state of the
execution (before enforcement).
This section can be expanded in conjunction with Section 7.5 of
[I-D.behringer-anima-reference-model] details more the control loops.
Ciavaglia & Peloso Expires September 22, 2016 [Page 10]
Internet-Draft Autonomic Functions Coordination March 2016
5.3. Interaction/Information Maps
The Autonomic Control Plane(ACP) should be able to provide a view of
the interactions between metrics in order to build the interaction
maps. This functionality is needed to identify that metrics are
coupled. E.g. the capacity of a link and its load ratio are
intimately coupled, and to identify interactions between autonomic
function, having this knowledge may prove instrumental.
6. Specifications
The coordination function can be decomposed in the following sub-
functions:
interaction identification: in charge of identifying interactions
interaction grouping: coping with assigning the interactions to
instances of cooperation mechanisms
interaction solving: coping with various algorithms
TBC.
7. Acknowledgements
This draft was written using the xml2rfc project.
This draft content builds upon work achieved during UniverSelf FP7 EU
project.
The authors thank Dimitri Papadimitriou for his valuable comments.
8. IANA Considerations
This memo includes no request to IANA.
9. Security Considerations
TBC
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
Ciavaglia & Peloso Expires September 22, 2016 [Page 11]
Internet-Draft Autonomic Functions Coordination March 2016
10.2. Informative References
[I-D.behringer-anima-reference-model]
Behringer, M., Carpenter, B., Eckert, T., Ciavaglia, L.,
Liu, B., Jeff, J., and J. Strassner, "A Reference Model
for Autonomic Networking", draft-behringer-anima-
reference-model-04 (work in progress), October 2015.
[RFC7575] Behringer, M., Pritikin, M., Bjarnason, S., Clemm, A.,
Carpenter, B., Jiang, S., and L. Ciavaglia, "Autonomic
Networking: Definitions and Design Goals", RFC 7575,
DOI 10.17487/RFC7575, June 2015,
<http://www.rfc-editor.org/info/rfc7575>.
Authors' Addresses
Laurent Ciavaglia
Alcatel-Lucent
Villarceaux
Nozay 91460
FR
Email: laurent.ciavaglia@alcatel-lucent.com
Peloso Pierre
Alcatel-Lucent
Villarceaux
Nozay 91460
FR
Email: pierre.peloso@alcatel-lucent.com
Ciavaglia & Peloso Expires September 22, 2016 [Page 12]