Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License.
|
| 2 | .. http://creativecommons.org/licenses/by/4.0
|
| 3 |
|
| 4 | .. _intro:
|
| 5 |
|
| 6 |
|
Ralph Knag | d2cd31b | 2018-04-02 16:27:46 -0400 | [diff] [blame] | 7 | Overview
|
| 8 | ========
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 9 |
|
| 10 | DCAE components are services that provide a specific functionality and
|
Ralph Knag | d2cd31b | 2018-04-02 16:27:46 -0400 | [diff] [blame] | 11 | are generally written to be composable with other DCAE components,
|
| 12 | although a component can run independently as well. The DCAE platform is
|
| 13 | responsible for running and managing DCAE service components reliably.
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 14 |
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 15 | The DCAE Design platform aims to provide a common catalog of available DCAE
|
| 16 | Service components, enabling designers to select required
|
| 17 | components to construct and deploy composite flows into DCAE Runtime platform.
|
| 18 |
|
| 19 | Service component/MS to be onboarded and deployed into DCAE platform would
|
| 20 | typically go through the following phases
|
| 21 |
|
| 22 | - Onboarding
|
| 23 | - Design
|
| 24 | - Runtime
|
| 25 |
|
| 26 | DCAE Design Platform supports onboarding and service design through MOD.
|
| 27 |
|
| 28 |
|
| 29 | Onboarding is a process that ensures that the component is compliant
|
| 30 | with the DCAE platform rules. The high level summary of the onboarding process
|
| 31 | is:
|
| 32 |
|
| 33 | 1. Defining the :doc:`data formats <data-formats>` if they don’t already
|
| 34 | exist.
|
| 35 | 2. Defining the :doc:`component specification <./component-specification/component-specification>`
|
| 36 | 3. Validate the component spec schema against
|
| 37 | `Component Spec json schema <https://git.onap.org/dcaegen2/platform/plain/mod/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json>`__
|
| 38 | 4. Use :doc:`blueprint-generator tool <./blueprint_generator>` to generate Cloudify blueprint
|
| 39 | 5. Test the blueprint generated in DCAE Runtime Environment (using either Dashboard UI or Cloudify cli from bootstrap)
|
| 40 | 6. Using :doc:`DCAE-MOD <../DCAE-MOD/DCAE-MOD-User-Guide>` , publish the component and data formats into DCAE-MOD catalog.
|
| 41 | (This step is required if Microservice needs to be deployed part of flow/usecase)
|
| 42 |
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 43 |
|
Ralph Knag | d2cd31b | 2018-04-02 16:27:46 -0400 | [diff] [blame] | 44 | A Component requires one or more data formats.
|
| 45 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 46 |
|
Ralph Knag | d2cd31b | 2018-04-02 16:27:46 -0400 | [diff] [blame] | 47 | A component is a software application that performs a function. It
|
| 48 | doesn’t run independently; it depends upon other components. A
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 49 | component’s function could require connecting to other components to
|
| 50 | fulfill that function. A component could also be providing its function
|
| 51 | as a service through an interface for other components to use.
|
| 52 |
|
Ralph Knag | d2cd31b | 2018-04-02 16:27:46 -0400 | [diff] [blame] | 53 | A component cannot connect to or be connected with any other component.
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 54 | The upstream and downstream components must *speak* the same vocabulary
|
| 55 | or *data format*. The output of an one component must match another
|
| 56 | component’s input. This is necessary for components to function
|
| 57 | correctly and without errors.
|
| 58 |
|
| 59 | The platform requires data formats to ensure that a component will be
|
| 60 | run with other *compatible* components.
|
| 61 |
|
| 62 | Data formats can and should be shared by multiple components.
|
| 63 |
|
| 64 | Each Component requires a component specification.
|
| 65 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 66 |
|
| 67 | The component specification is a JSON artifact that fully specifies the
|
| 68 | component, it’s interfaces, and configuration. It’s standardized for
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 69 | CDAP (deprecated) and Docker applications and is validated using a
|
| 70 | :doc:`JSON schema <./component-specification/component-json-schema>`.
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 71 |
|
| 72 | The component specification fully specifies all the configuration
|
| 73 | parameters of the component. This is used by the designer and by policy
|
| 74 | (future) to configure the runtime behavior of the component.
|
| 75 |
|
| 76 | The component specification is used to *generate* application
|
| 77 | configuration in a standardized JSON that the platform will make
|
| 78 | available to the component. This application configuration JSON will
|
| 79 | include:
|
| 80 |
|
| 81 | - Parameters that have been assigned values from the component
|
| 82 | specification, policy, and/or the designer
|
| 83 | - Connection details of downstream components
|
| 84 |
|
| 85 | The component specification is transformed by DCAE tooling (explained
|
| 86 | later) into TOSCA models (one for the component, and in the future, one
|
| 87 | for Policy). The TOSCA models then get transformed into Cloudify
|
| 88 | blueprints.
|
| 89 |
|
| 90 | The component specification is used by:
|
| 91 |
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 92 |
|
| 93 | - Blueprint Generator - Tool to generate standalone cloudify blueprint
|
| 94 | using component spec. The blueprints can be uploaded into inventory
|
| 95 | using Dashboard and triggered for deployment.
|
| 96 | - MOD Platform - To onboard the microservice and maintain in catalog
|
| 97 | enabling designer to compose new DCAE service flows and distribute
|
| 98 | to DCAE Runtime platform.
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 99 | - Policy (future) - TOSCA models are generated from the component
|
| 100 | specification so that operations can create policy models used to
|
| 101 | dynamically configure the component.
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 102 | - Runtime platform - The component’s application configuration
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 103 | (JSON) is generated from the component specification and will be
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 104 | provided to the component at runtime (through ConfigBindingService
|
| 105 | or Consul).
|
Ralph Knag | 1fca6ac | 2017-12-05 12:05:57 -0500 | [diff] [blame] | 106 |
|
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 107 | |