[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>
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.
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:
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]
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]