CLAMP Beijing Updates

Assumptions in Beijing Release

  • There is no mechanism in place for automated triggering of DCAE service assurance deployment, i.e. DCAE microservice instantiation and configuration will be driven by CLAMP

  • The DCAE Design Studio will not generate any policies in Beijing

  • CLAMP expects DCAE Design Studio to:

    • Onboard any necessary microservices for the flows (together with DCAE team)

    • Generate TOSCA Service Template describing the flow

    • Generate Cloudify Blueprint

    • Store both service template and blueprint in SDC catalog as part of Service/Resource instance

    • Distribute these service assurance artifacts for consumption by DCAE and CLAMP

Definitions

  • Single (shared) deployment flow

    • Example: Holmes

  • Multiple (dedicated) deployment flow

    • Example: TCA

  • For Holmes, as a shared deployment, do we deploy it from CLAMP or pre-deploy it together with DCAE

    • If pre-deployed, is there any way that CLAMP can know its status?

Full Flow



Design Flow

Step 1

  • A service designer uses DCAE Design Studio to attach a service assurance flow to a service definition in the SDC catalog

  • DCAE Design Studio will not be used to create flows

  • Microservices will be onboarded to DCAE using component specification, and TOSCA Lab will be used to generate the flow

  • The artifacts created through this process

    • Service Template

    • Policy TOSCA files

    • Blueprint

  • This process will create flows for the following microservices:

    • TCA-hi-lo

    • Holmes

  • The flow will only contain a single microservice node and two topics

  • It is assumed that the input topic will receive data from VES Collector

  • It is assumed that the output topic sends data to Policy Engine to be processed by Drools PDP

  • The policyId parameter in the policy node will be set as follows:

    • For a pre-deployed microservice that will not be redeployed by CLAMP, a prefix value will be set

    • For a microservice that CLAMP will deploy, this policyId parameter will be set to the value of a policyId input in the service template and blueprint

  • After selecting the predefined service assurance flow described above, the user saves service assurance flow as an artifact of a resource instance within a service

  • This is followed by testing, certification and distribution of the service

Step 2

  • CLAMP uses distribution client to receive update

  • CLAMP receives artifacts:

    • Service template TOSCA

    • Policy TOSCA

    • Blueprint

  • CLAMP receives the following data from SDC

    • Service Invariant UUID

    • Resource Invariant UUID

    • Artifact name of blueprint

    • Service name

    • Resource name

  • CLAMP stores data about control loop in local store by: 

    • Service Invariant UUID, Resource Invariant UUID, Artifact name of blueprint, Service name, Resource name


    Below is an example fragment of an SDC distribution sent to CLAMP which provides the data that it needs.



SDC Distribution Notification
HTTP/1.1 200 Ok Content-Type : application/json Content-Length : … { "distributionID": "34cb001c-c9f0-4db9-b59c-9421c0b3cb5e", "serviceName": "HNGW Protected OAM", "serviceVersion": "1.0", "serviceUUID": "b8ff69ca-786d-479e-9f9c-217a90ee0ebc", "serviceDescription": "HNGW Protected OAM Network Service", "serviceInvariantUUID": "c2749b42-28db-45e0-ab55-b05d0118d91d", “resources”: [ { "resourceInstanceName": "oam_net", "resourceCustomizationUUID": "7b1383b5-6b84-4e77-ae26-1778a1f4e7e1", "resourceName": "ExtVL", "resourceVersion": "1.0", "resoucreType": "VFC", "resourceUUID": "9bf1978e-d6b9-47fc-a4cd-cc8ec4e461b7", "resourceInvariantUUID": "38e5fb81-5e8c-479b-9140-38786db19967", "category": "Generic", "subcategory": "Network Elements", "artifacts": [ { "artifactName":"AAI-service_HNGW_Protected_OAM-service-1.xml", "artifactType":"DCAE_INVENTORY_TOSCA", "artifactURL":"/sdc/v1/catalog/services/HngwProtectedOam/1.0/artifacts/AAI-service_HNGW_Protected_OAM-service-1.xml", "artifactChecksum":"ODc1NzViNzY4Mzc1NGE4NTc3M2VhOTM0NTkyZjRiYTA\u003d", "artifactDescription":"AAI Service Model", "artifactTimeout":0, "artifactUUID":"5791d7b0-1a20-4066-90d0-ef13bbf01c95", "artifactVersion":"1" }, { "artifactName":"service-TestServicecsar.csar", "artifactType":"DCAE_INVENTORY_BLUEPRINT", "artifactURL":"/sdc/v1/catalog/services/HngwProtectedOam/1.0/artifacts/service-HngwProtectedOam-csar.csar", "artifactChecksum":"YzhhNTVhZDk2M2RlN2NlODkzODk5ZGJjOThmNDY1MzE\u003d", "artifactDescription":"TOSCA definition package of the asset", "artifactTimeout":0, "artifactUUID":"909e655d-04d6-472b-ab16-979d560d1975", "artifactVersion":"1" } ] }], "serviceArtifacts": [{}]}



Step 3

Configuration Flow

Configuration Step 0

  • CLAMP parses service template

  • Assumptions:

  • Service template consists of multiple node templates

    • Topics

    • Microservices 

    • Policies

  • Microservice: Any node template with a subtype of tosca.dcae.nodes.cdapApp (or some other type such as tosca.dcae.nodes.dockerApp?)

  • Topics: Any node template with a type of tosca.dcae.nodes.dmaap.topic

  • Policies: Any node template with a type of tosca.dcae.nodes.policy

  • There will be only one Microservice node

  • The microservice node will have two requirements that are fulfilled by topics: one stream subscribe and one stream publish

  • The two topic nodes will be included in the service template

  • The microservice node will have a requirement for a policy node, and policy node will be included in the service template

  • Processing Steps

    • Display any microservice node template

    • Display inputs provided to blueprint

    • Display topics which are used to connect microservice node templates

    • Retrieve configuration policies and prepare to display and encode

    • For each microservice node template, identify the node template which fulfills the policy requirement

    • Retrieve the policy TOSCA corresponding to this policy node, using policyName parameter

      • (Only needed if there are multiple microservice nodes: Identify the microservice node template which is the last in the flow before the Operational Policy)

      • Display the Operational Policy as a box after the last (or only) microservice node template

  • A flow will either be deployed once for all control loops (shared) or deployed per control loop (dedicated)

  • The microservice node will have a parameter that defines whether it should be a shared or dedicated microservice

  • CLAMP will use this parameter to decide whether or not to deploy it

  • Can user edit template inputs that are required

    • Examples: policy Ids, Topic URLs and AAF credentials (needed to clarify this)

    • Some cannot be edited, such as policy Id; CLAMP must be provided

    • Some may be set in configuration files in CLAMP

    • User can edit any configuration policy in a separate popup created using TOSCA policy model

    • User can edit operational policy in a separate popup created as is done today, based on local CLAMP configuration

Configuration Step 1

  • CLAMP sets the input whose value is used to set policy_id parameter in the node template

    • If the flow is a shared deployment, and has not yet been deployed, choose a policy prefix

    • If the flow is a shared deployment and has been deployed, no input needs to be set, because blueprint will not be deployed

    • If the flow is a dedicated deployment

  • Data from Configuration and Operational Policies is used to create policies

  • Need to create associated controlLoopIds in Configuration and Operational policies 

Deployment Flow

  • This step only applies when the flow is deployed by CLAMP

  • Call deployment handler

  • Refer by service UUID, resource UUID and name

  • Provide inputs:

    • policyId

    • Topic information

    • AAF authentication

    • Others?

  • Check on deployment status

  • Allow undeploy and redeploy

Suspend Flow

  • Currently the only way to stop a control loop is by deleting the operational policy

  • This is the operation that CLAMP will use

Update Flow

  • User makes updates via CLAMP UI

  • CLAMP updates either  microservice configuration or Operational Policies in the Policy Repository.

  • Microservice configuration policy changes are pushed to DCAE through Policy Handler

Monitoring