OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

tosca message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [tosca] RE: updated operational model


All,

 

I am aware that I am looking at TOSCA from the âoutsideâ, coming from a different declarative orchestration language. So bear with me, that sometimes I am not totally into the TOSCA way of seeing things.

 

When I look at figures like these, I try to drill into the semantics of the boxes and arrows. What do the arrows mean? What flow do they indicate? What do different colors mean. What is the significance in the arrangement of boxes inside/outside/overlapping/left-right? This is called âMereologyâ, by the way.

 

A legend-box would help.

 

First some architectures:

1.       Pure TOSCA orchestrator: The orchestrator was built for TOSCA, and owns the Topology Representations in some physical form

2.       External orchestrator: The TOSCA topologies are input to a non-native orchestrator through which the infrastructure is managed on day 2. This is what I previously badly referred to as âfire-and-forgetâ â my intention was that, as in slide 1, once the topology has been deployed, there is no continued TOSCA-based management of the service â the rest happens through some non-TOSCA-aware external management tools.

3.       Stateless orchestrator: The Topology Representations are an abstraction, collected into a single pane of glass from the infrastructure systems. Is this slide2?

4.       â more?

 

There are scenarios where architecture 3 would work, but in my world it would not, because in that architecture the infrastructure becomes the master for the topology representations. The problem is that infrastructure configurations (centrifuge model) cannot be pushed atomically to more than one infrastructure manager/controller and infrastructure can fail or be deleted or replaced. In these cases the state held by the infrastructure can become inconsistent, corrupted or lost, and without an independent Topology Representation, there would be no way to recover.

 

On slide 2+3 you have infrastructure Monitoring and/or topology representations pushing (?) â through policies â updated inputs. It is not clear if those updated inputs would be a subset of the original inputs or the complete set. Providing the complete set of original inputs from infrastructure/topology representation may be too much to ask of the infrastructure. But if the Updated Service Inputs are only a subset, then the slides are effectively postulating some storage where information about the original inputs is kept â otherwise there would not be sufficient information to instantiate the topology in the âUpdating/Upgradingâ box.

 

So do we have a âdatabase of inputsâ in a TOSCA architecture?

 

Then there are the double-arrows between the Topology Representations and Activation/Modification. As Tal keeps pointing out, the direction from right to left of these arrows indicate a flow of attribute-values, and that flow may be asynchronous or synchronous, and the flow can happen by pull or push.

 

For example, in the stateless model 3 above, the get_attribute could be a pull happening when someone is âlooking through the pane of glassâ.

 

But with synchronous execution, attribute values can also come back as some kind of result-vector, as we have seen in some of our discussions. Sometimes this is the most convenient mode, sometimes not â so we should not be prescriptive about one mode or the other.

 

Finally, for Monitoring, that is usually some kind of event-mechanism, so a push, and that raises the question how a Monitoring event gets correlated into the Topology Representation â what does that arrow mean? How does an event find a node in the topology, and what does it do?

 

In our HPE orchestrator, we have solved this in different ways (from TOSCA perspective we are architecture 2 â external orchestrator, but fully declarative like TOSCA, so no conceptual mismatch):

 

         We do have an inventory of currently deployed topologies, including the input parameters

         We support synchronous execution of artifacts, where a result-vector comes back and sets attributes (parameters)

         We do have operations and we can pull attribute parameters from the infrastructure or view values in a pane-of-glass mode

         Nodes in the Topology Representation are seen as resources, and when an artifact is executed, then we pass a resource identifier that an asynchronous callback can use for passing attribute values back into that node.

o   Timing is âinterestingâ. Asynchronous responses and updates may come with a delay of milliseconds or they may arrive weeks or months later.

o   Asynchronous events may be âunsolicitedâ or may even arrive âtoo earlyâ before artifact execution is complete. This needs to be handled.

         Monitoring is special in a number of ways â so we need to handle monitoring-events differently from asynchronous activation/modification responses:

o   The rate of arrival of events can be very high â tens of thousands per second. This can overload an orchestrator â particularly if you look at the updated-inputs loop.

o   Events may toggle rapidly â now it works, now it doesnât, now it does, now it â

o   Events may not be able to uniquely identify a node in the Topology Representation, so some kind of correlation policy needs to be applied

o   Some of the above may be what goes into âECA Policiesâ, but there is also a direct arrow from Monitoring to Topology Representations â what should that arrow do and would it work?

 

I think the key here is that nodes in the Topology Representations are *resources*. I donât want to imply a specific resource model, but REST and URIs are obvious possible technologies. Even architecture 3 could support this view. It allows us to talk about how to identify topology representation nodes in all contexts.

 

I am not sure about the Relationships in the Topology Representations. The reason is that in the HPE orchestrator, nodes and relationships are the same (like everything becomes tables in an RDBMS), so I am not used to having to distinguish.

 

Peter

 

From: Chris Lauwers [mailto:lauwers@ubicity.com]
Sent: 1. marts 2022 01:26
To: Chris Lauwers <lauwers@ubicity.com>; Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>; Tal Liron <tliron@redhat.com>
Cc: Calin Curescu <calin.curescu@ericsson.com>; tosca@lists.oasis-open.org
Subject: RE: [tosca] RE: updated operational model

 

I know this is a background activity, but here is another update. This introduces a new âfirstâ slide that removes Day 2 concepts from the picture. In my opinion, this is identical to the operational model we had previously agreed to, although the boxes have been rearranged and a couple of labels have changed.

 

Thanks,

 

Chris

 

From: tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> On Behalf Of Chris Lauwers
Sent: Tuesday, February 15, 2022 9:57 AM
To: Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>; Tal Liron <tliron@redhat.com>
Cc: Calin Curescu <calin.curescu@ericsson.com>; tosca@lists.oasis-open.org
Subject: RE: [tosca] RE: updated operational model

 

Thanks Peter, youâre articulating more clearly what I intended to say, which is that the operational model does not try to define an architecture, but rather tries to illustrate how and where the various constructs in the language are expected to be processed.

 

I hope we donât disagree about the following key points:

 

-          TOSCA assumes the existence of a âtopology representation graphâ (the old âinstance modelâ) that is created from TOSCA service templates

-          Most if not all TOSCA implementations expect this âtopology representation graphâ to be persisted.

-          The âTOSCA representation graphâ can be turned into the actual âimplementationsâ on the external cloud resources using a variety of ways, including:

o   âPureâ TOSCA orchestration

o   Delegation to (existing) 3rd party orchestrators

 

I would also add the following, but these may be more controversial:

 

-          There must not be any ambiguity about how a TOSCA representation graph is expected to be created from TOSCA service templates. This part should not be âopen for interpretationâ.

-          TOSCA workflows, interfaces, operations, and notifications are only relevant in the context of âpure TOSCA orchestrationâ.

 

I would be very interested in hearing about the various other âorchestration paradigmsâ could be supported using current TOSCA grammar. I actually suspect there arenât that many 😊

 

Thanks,

 

Chris

 

 

From: Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>
Sent: Tuesday, February 15, 2022 4:23 AM
To: Tal Liron <tliron@redhat.com>; Chris Lauwers <lauwers@ubicity.com>
Cc: Calin Curescu <calin.curescu@ericsson.com>; tosca@lists.oasis-open.org
Subject: RE: [tosca] RE: updated operational model

 

I think some confusion comes from the distinction between âTOSCA Orchestrationâ and âTOSCA Orchestratorâ. When we put structure into a box named âTOSCA Orchestrationâ it may appear as if we are designing a âTOSCA Orchestratorâ.

 

Tal, I previously read you as opposing a database in TOSCA Orchestration, but now I understand that you are just saying, that we should not mandate a database in a TOSCA Orchestrator.

 

We all agree now that TOSCA Orchestration should have persistent state of the Node Representations â but that persistence just doesnât necessarily belong in one TOSCA Orchestrator. This distinction should cover the cases where persistent state is held by controllers as well as cases with multiple Orchestrators.

 

Similarly, we should be able to draw an Operational Model showing that Orchestration needs to support Activation, Modification and Monitoring, without implying where those function should go in an Orchestrator.

 

Since TOSCA does come with interfaces and artifacts (and policies), we do need to somehow indicate where those things may/can go in the Operational Model.

 

There are several paradigms that can meaningfully fit interfaces and artifacts into Orchestration, but those ways are, it seems, incongruent â there is no one model that covers all the ways that could exist. Stateful/stateless, synchronous/asynchronous, push/pull, â more?

 

Would we be able to enumerate the valid paradigms, and create an Operational Model variant for each? This would allow template designers to understand what paradigms they are working under.

 

The variants would clearly not be exclusive, since an actual Orchestrator could support more than one of those paradigms.

 

But any attempt to draw where interfaces and artifacts fit in the Operational Model based on just one paradigm could easily be misconstrued as excluding other paradigms.

 

Peter

 

 

From: tosca@lists.oasis-open.org [mailto:tosca@lists.oasis-open.org] On Behalf Of Tal Liron
Sent: 15. februar 2022 00:58
To: Chris Lauwers <lauwers@ubicity.com>
Cc: Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>; Calin Curescu <calin.curescu@ericsson.com>; tosca@lists.oasis-open.org
Subject: Re: [tosca] RE: updated operational model

 

On Mon, Feb 14, 2022 at 5:28 PM Chris Lauwers <lauwers@ubicity.com> wrote:

Not sure where youâre getting the impression that weâre trying to design an orchestrator. We all share the same goal, which is to design a language. Of course, this language defines orchestration semantics (and has done so since v1.0) that may not be useful for your target applications. In that case, you should feel free to not implement those as Peter suggested.

 

Your recent additions to the operational model go too far in my opinion. None of them are necessary to make the language coherent. Of course nobody has to implement everything, but then we get back to the TOSCA 1.X problem in which there was a Simple Profile that nobody had to implement but created baggage, misunderstanding, and ultimately ill will. I'll argue for keeping the operational model as minimal as possible.

 

TOSCA doesnât say anything about where topology representations are expected to be stored. TOSCA just expects them to exist.

 

It's more than that -- we need to be very careful to not dictate the "how" of their existence. Again, we need to be as minimal as possible in specifying them.

 

 And Iâm happy to hear that we not agree that one can create multiple node representations from the same node template.

 

In the past you insisted that there was a 1:1 correlation between node templates and node representations. Perhaps you meant to emphasize something else at the time in a different context.

 

Our disagreement arises when we talk about relationships. You want TOSCA to be able to specify the "how" of relationships between node representations. I insist that it's domain-specific and determined by the use case and its semantics. TOSCA's constructs know only about node templates and should not and cannot enforce node and relationship representation semantics. What we can do is create profiles that model these using properties and attributes, with the additional power of being able to model relationship types as first-class citizens. Cardinality, one-to-many/many-to-one, and countless other scenarios are up to the modeler, based on the platform, and not for the TOSCA language to enforce.

 

We need to revisit this. Operations are not events.

 

Operations are how we respond to events (at least one way we can, there's policy triggers, too).



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]