HistoryViewLinks to this page 2013 June 6 | 06:34 am

Extended scenario: tear-down of orchestrated/composed deployment

This is an extended scenario of Temporary deployment scenarios

This section is to discuss how tear-down works when the deployment is composed of multiple automation plans, with arbitrary dependencies between them, possibly from multiple providers.

This scenario is likely to only work if all the component plans have the ability to be torn down.

The orchestrator should know how to tear down the component plans that it set up. However, the problem comes when another client registers that it is using one of those component auto results that the master plan set up.

So the problem scenario goes something like this:

  • Client A asks provider 1 (the orchestrator) to deploy the master plan.
  • Provider 1 (the orchestrator) wants to start auto plan A on provider 2, but that has a dependency on auto plan B on provider 3
    • (the fact that auto plan B is used to fulfil this dependency is most likely controlled by the orchestrator, and may be represented in auto plan A as in the Automation plan configuration data scenario or may not be represented there at all and may be the result of manual configuration in the master plan).
  • The orchestrator asks provider 3 to start auto plan B, which results in the creation of auto result B.
  • When that has completed, the orchestrator asks provider 2 to start auto plan A, which results in the creation of auto result A.
    • The orchestrator somehow marks that auto result A dependsOn auto result B. (Exactly how this happens can be discussed.)
    • The orchestrator may or may not have needed to pass in information from auto result B, depending on the nature of the dependency.
  • Another client, client B, sees auto result A and registers itself as a user of that result.
  • Some time later: Client A indicates to the orchestrator that it is finished with the master plans result, so it can be torn down.
  • The orchestrator performs its tear down procedure, with the following results:
  • Auto result A (the main component, which depends on auto result B, and which client B is using) should not get torn down until client B has indicated that it is finished (i.e. deregistered its interest)
  • Auto result B (the dependency) should not get torn down until auto result A has been torn down (i.e. has finished it) because of the dependsOn relationship form auto result A.

I’ve left the last few points abstract as the what the required result is, rather than how this would be achieved, as there are multiple ways in which this could be done. It is not necessarily the orchestrator who has the responsibility of achieving the behaviour stated, but it may be - this will come out o the discussion of how it is achieved.

OSLC_automation_teardown_orchestration_sequence_diagram2.png

(In this diagram I’ve treated the create request/lookup result actions as synchronous, when in reality they are not (or are not necesserily), in the hope that this more simply communicates the intent of the diagram.)

One particular thing to consider is mixes of OSLC automation spec versions implemented by the different clients and providers (although anyone using or providing tear down must be using v3) and also if areas/profiles/modules of the spec (like supporting or consuming multi-use, or supporting or querying the dependsOn property) are optional, then can this scenario still work with certain providers unaware of those behaviours? (e.g. it would be preferable if any providers could be used by an orchestrator, even if they do not support dependency mapping - although I’m not sure if this is possible. Hopefully all providers would support tear-down if it makes sense in their product’s area.)

Issues

  • provider-to-provider or deployed resources-to-deployed resource relationship (dependsOn) modelling
  • What to do about tearing down a composite/orchestrated deployment if not all of the component plans’ providers support teardown? Leave it up to the orchestrator to decide?