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: Differentiating TOSCA from HEAT


Doesnât TOSCA always assume a catalog-based orchestration paradigm? It starts with a template, and then customizes that template for the specific deployment by providing the appropriate input values. What is the alternative? Perhaps I donât understand your âclone and modifyâ concept?

 

Thanks,

 

Chris

 

 

From: Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>
Sent: Monday, January 17, 2022 5:09 AM
To: Chris Lauwers <lauwers@ubicity.com>; Tal Liron <tliron@redhat.com>
Cc: tosca@lists.oasis-open.org
Subject: RE: Differentiating TOSCA from HEAT

 

I donât have âtheâ final answers â this is all for discussion of course J My answers in-line below.

 

I am missing a concept of âCatalog based orchestrationâ.

 

In Catalog based orchestration, the clone-and-modify paradigm is forbidden. All requests start with something in the catalog plus some input, so all desired variability must be definable in the language that defines the contents of the catalog.

 

This is an argument from scale, and the classical example comes from the world of NFV.

 

  • Say you define a template for creating core Telco infrastructure, packet-core, IMS, etc. deployed using NFV, then a large operator would maybe deploy one such infrastructure in each country that they operate in. There would always be local variability, and the deployment might need to be changed once every 2-5 years. So there is ample time to take a template, customize and tune it for the special local conditions, and then deploy.
  • On the other hand, if you define hosted customer services, including datacenter, firewalls, access-networks, VPNs and on premise equipment (physical or virtual), and plan to sell such a service at the scale of 100.000 customers, then you want to have all services created from a common catalog, and any per-customer variability must be explicitly defined by the catalog. You could hand-craft such services per customer, and some operators do offer that. But the cost is just a lot higher when maintaining hand-crafted services 5 years later, when the person who did some special tweaks on a virtual router is no longer employed. So the price of such customized services must have a suitable offset relative to catalogued services.

 

TOSCA can be used in both modes â catalogued and custom. But for catalog based use, you would need to rely on two levels for defining a specific service:

  1. Selection of a template from the catalog
  2. Providing input parameter values to the template

 

The problem I see is, that if the input parameters mechanism is not sufficiently strong to express the desired variability of services, you can end up with proliferation of TOSCA template variants in the catalog. If a catalog contains 3,000 different variants of templates, it can be difficult to use. This is a real problem that some of our customers are facing when using TOSCA.

 

I am not directly in the loop there â just relaying, that it seems to be a real problem for users of TOSCA that they do not see clearly, how to express the variability they need at catalog level in terms of TOSCA input parameters.

 

A problem, I see in our work with the TOSCA language is, that the language requirements of Catalog based orchestration are different from the language requirements of clone-modify based orchestration.

 

Peter

 

 

From: Chris Lauwers [mailto:lauwers@ubicity.com]
Sent: 15. januar 2022 22:58
To: Bruun, Peter Michael (CMS RnD Orchestration) <peter-michael.bruun@hpe.com>; Tal Liron <tliron@redhat.com>
Cc: tosca@lists.oasis-open.org
Subject: RE: Differentiating TOSCA from HEAT

 

 

I definitely think that those 4 concepts are quite different.

 

I have a couple more questions for clarification if you donât mind:

 

-                      Declarative orchestration

This is an intrinsic feature of a language, stating that the language declares âwhatâ should exist (or not exist). The declarative language should not spell out not âhowâ it is made. It is still declarative if the language has a way to include the means to make it exist â artifacts, interfaces.

 

Does âdeclarative orchestrationâ then refer to orchestration systems (or orchestration methodologies) that use declarative languages?

I would say so, yes.

 

If a language provides âthe means to make it existâ, doesnât that language then also make assumptions about âhowâ those âmeansâ are expected to be used, in which case the language is moving into the âimperativeâ realm?

If there is not enough information to actually deploy the service, then we are talking about a language that is solely for modeling, design or specification. It would not be orchestratable.

 

So when we are talking âDeclarative orchestrationâ, it is safe to assume that the information to translate the declarative domain to the imperative domain is present.

 

Whether that information comes from the orchestrator, a profile or is defined within the language seems secondary to me. The criterion is that the orchestration is automatically derived, not formulated as imperative âworkflowsâ in the language.

 

-                      Cloud-native orchestration

This is, as I understood Talâs slides, a subset of orchestration problems, where the systems under orchestration satisfy a set of cloud-native constraints, that allows the orchestrator to have no concept of sequencing of actions. If just one of the systems does not satisfy those constraints, then cloud-native orchestration is not sufficient to solve the problem.

Yes, we need a better definition of âcloud native systemsâ or âcloud-native constraintsâ, but the one aspect you highlight here is that cloud-native orchestration has âno concept of the sequencing of actionsâ, which I understand to mean that there are no flows, which then seems to imply that cloud-native orchestration is by definition declarative. If thatâs the case, then I still have my original question: is there more to âcloud-native orchestrationâ than just being âdeclarative orchestrationâ?

 

Tal â please provide a better definition.

 

The assumption is that all systems in the world ought to comply with the cloud-native principles, and those that donât should either be fixed or discarded as outdated technology alongside the Steam Roller and the Edison Phonograph.

 

😊

 

-                      Intent-based orchestration

On this subject we have this: https://github.hpe.com/hpsd/hpsp/files/18603/Tamburri2019_Article_TOSCA_basedIntentModellingGoal.pdf

 

I agree 100% with this definition of intent:

 

Intent modelling Intent modelling entails modelling infrastructure blueprints by specifying a highest-level goal to be satisfied, regardless of how sub-level intents or goals are satisfied.

 

To me expressing intent is to say âI need Firewallingâ instead of âI need a Firewallâ. Or âI need Load-balancingâ not âI need a Load Balancerâ.

Is your expectation that one should be able to express âintentâ in an orchestration language?

 

Not âshouldâ, rather âcouldâ.

 

There are clearly cases where TOSCA can do this if the intent-decomposition is expressible as substitutions, but I also see intents and realizations of intent where TOSCA would force the designer to manually perform the decomposition of intent, and so the resulting TOSCA template would be derived from the original intent, but it would no longer express the original intent as an object in its own right. Notice that a program written in C is similarly derived from some original intent, but the intent itself is no longer explicitly present in-language. Clearly, C is not an intent-based language, and the fact that you can define and implement a function that expresses an intent doesnât make it so. It takes more to be Intent based than âbeing able to implement intentâ.

 

So unless we can prove that TOSCA with substitutions can explicitly express all possible intent, then I am not convinced that TOSCA is intent based.

 

In my opinion, âintentâ is a special case of a âdeclarative policyâ specified at the highest level of abstraction (i.e. the âbusiness viewâ using Strassnerâs policy continuum framework again). Unfortunately, TOSCA currently doesnât support declarative policies (it only supports imperative event/condition/action policies) but assuming we add declarative policies, then I absolutely believe TOSCA is intent-based.

 

Agreed. The fact that there are types of intent that cannot be directly represented in TOSCA doesnât mean that TOSCA is not intent based.

 

Of course a firewalling intent could be implemented as an actual firewall, but I remember when OpenFlow was in fashion, and you can express a simple firewalling or load-balancing intent as a set of OpenFlow rules. Those rules are not âa Nodeâ, they get deployed on a potentially variable number of switches. So where would I put this in my TOSCA template?

I implement firewall rules as TOSCA nodes, so I imagine one could model openflow rules the same way.

 

Ok. Could be a great example.

 

You could solve this by pushing intent to Policies â so add in your template a âFirewallingâ Policy, and Firewalling happens. But the implementation of that intent would have to be hard-coded in the orchestrator, and so the Policy is just a name for a hard-coded functionality, it is not a language for defining the firewalling intent.

I think this can be done without hardcoding using substitution mapping couple with mapping of declarative policies

 

Ok. Could be a great example.

 

-                      Desired state orchestration

This is a property of an orchestrator, where the way it knows what to do is expressed in terms of a desired state of the systems under orchestration. In the case of TOSCA service creation, the âdesired stateâ can be expressed as the pair of a TOSCA specification and a set of input values. For TOSCA service destruction, I am not sure how we express the desired state of ânow that service should no longer existâ, because I am still not sure how we identify a previously created service. Basically, without having defined identifiers for deployed services, the concept of âthat serviceâ with TOSCA eludes me.

 

Yes, the concept of âidentifiersâ in TOSCA needs more discussion.

 

In the Intent paper, referenced above, there is the distinction between Goal and Intent, and I think Goal is the same as âDesired Stateâ. A TOSCA template is not a Goal, but a Goal can be created by combining a template with a specific input and an âentry pointâ (deploy, undeploy, update/modify, upgrade, â). An Orchestrator that does that can be said to be doing âdesired state orchestrationâ.

 

In my opinion, a âgoalâ can be expressed using a declarative policy. Intent is a special case of a âgoalâ: it is a declarative policy expressed at the business view layer.

 

Ok.

 



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