Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 33 Next »

DCAE MOD ( Microservices Onboarding and Design ) is being redesigned with angular based UI to have a great user experience, self managed catalog with APIs to ease access and manage life cycle of different version of microservices.

It also provides extensibility to include pluggable modules for generating deployment artifacts and communication with other systems such as Policy Engine and DCAE dashboard.

Details of the target architecture and initial implementation can be found in below ppt slides and initial API Specifications

DCAE MOD Catalog and UI redesign draft - DCAE_MOD_redesign_v3.pptx

API Specification draft - swagger json (draft)


Below picture depicts the target architecture of redesigned MOD


It is composed of UI and Backend with Catalog service and Authentication Service.

UI

UI is developed using angular framework and enables users including designers and developers to onboard microservices. It currently provides a user-friendly menu options to onboard microservices and its instances per release, associate a component specification and generate deployment artifact that can be deployed using DCAE dashboard.

It will be enhanced to onboard policy models and data format to support policy-based control and composite microservice models.


Backend

The backend for MOD composed of a catalog service and authentication service. Catalog Service will manage microservices, its instances and generated deployment artifacts. Authentication service will provide access control for designers and developers to perform different operations.

Catalog Service

Catalog service is composed of APIs to manage base microservice, microservice instances, component specifications associated with microservices and to generate deployment artifacts.

Authentication Service

       Authentication service provides APIs to manage users, currently used by UI.


Below ER diagram represents the entities present in Mongo Database

User Guide

Deployment using Docker compose

POC version of MOD can be deployed using docker-compose with below docker-compose,yml file on any Ubuntu VMs

docker-compose.yml
#
# /*
#  * ============LICENSE_START=======================================================
#  *  org.onap.dcae
#  *  ================================================================================
#  *  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
#  *  ================================================================================
#  *  Licensed under the Apache License, Version 2.0 (the "License");
#  *  you may not use this file except in compliance with the License.
#  *  You may obtain a copy of the License at
#  *
#  *       http://www.apache.org/licenses/LICENSE-2.0
#  *
#  *  Unless required by applicable law or agreed to in writing, software
#  *  distributed under the License is distributed on an "AS IS" BASIS,
#  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  *  See the License for the specific language governing permissions and
#  *  limitations under the License.
#  *  ============LICENSE_END=========================================================
#  */
#
version: '3.3'
services:
  mongo_db:
    image: 'registry.hub.docker.com/library/mongo:4.0.8'
    container_name: mongo_db
    environment:
      - DCAE_HOSTNAME=${DCAE_HOSTNAME}
    volumes:
      - type: 'bind'
        source: '/home/ubuntu/mongo/mongo_db/data'
        target: '/data/db'
    ports:
      - 27017:27017
    restart: always 
  dcae_mod_ui:
    image: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.ui:latest'
    container_name: mod_ui
    environment:
      - DCAE_HOSTNAME=${DCAE_HOSTNAME} 
    ports:
      - 30997:4200
    depends_on:
      - mod_catalog_service
    restart: always
  mod_catalog_service:
    image: 'nexus3.onap.org:10003/onap/org.onap.dcaegen2.platform.mod.catalog-service:latest'
    container_name: mod_catalog_service
	environment:
	  - POLICYMODEL_DEV_SERVER=${POLICYMODEL_DEV_SERVER}
	  - POLICYMODEL_DEV_PORT=${POLICYMODEL_DEV_PORT}
	  - POLICYMODEL_DEV_USER=${POLICYMODEL_DEV_USER}
	  - POLICYMODEL_DEV_PASSWORD=${POLICYMODEL_DEV_PASSWORD}
	  - DCAE_PLATFORM_DEV_SERVER=${DCAE_PLATFORM_DEV_SERVER}
	  - DCAE_PLATFORM_DEV_PORT=${DCAE_PLATFORM__DEV_PORT}
	  - DCAE_PLATFORM_DEV_USER=${DCAE_PLATFORM_DEV_USER}
	  - DCAE_PLATFORM_DEV_PASSWORD=${DCAE_PLATFORM_DEV_PASSWORD}	  
    ports:
      - 31001:8080
    links:
      - mongo_db
    depends_on:
      - mongo_db
    restart: always
  mod_auth_service:
    image: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.auth-service:latest'
    container_name: mod_auth_service
    ports:
      - 31003:8082
    links:
      - mongo_db
    depends_on:
      - mongo_db
    restart: always
 

               Create a directory and create docker-compose.yml file with the above contents.

               Set DACE_HOSTNAME by running export DCAE_HOSTNAME=<IP Address of Server>. This is required for UI to determine the DCAE MOD backend server.

Note : Additional attributes are introduced in Honolulu release are APIs for distributing policies to policy framework and distributing deployment artifacts to DCAE dashboard. If you are planning to use those APIs, export environment variables for POLICYMODEL and DCAE_PLATFORM as specified in above attached docker-compose.yml

Run below command to download the latest built version and deploy on docker container.

       docker-compose -f docker-compose.yml up &

After deployment is successful, you can list using docker ps -a command and it will show the below deployments.

Note: For Guilin POC, the above deployment procedure would be followed to install MOD components. For future releases, it will be enhanced to use helm chart.

Deployment using Helm (introduced in Honolulu Release)

Download the charts (all the files and directories) from git with below link 

https://git.onap.org/dcaegen2/platform/tree/mod2/assembly/helm

Under components/catalog-service, update K8SNodeip and PASSWORD for policy framework deployment and DCAE Dashboard deployment and verify other configuration values in values,yaml

policyModelDevServer: "<K8SNodeip>"

policyModelDevPort: "30522"

policyModelDevUser: "healthcheck"

policyModelDevPassword: "<PASSWORD>"

dcaePlatformDevServer: "<K8SNodeip>"

dcaePlatformDevPort: "30418"

dcaePlatformDevUser: "su1234"

dcaePlatformDevPassword: "<PASSWORD>"

Under components/ui, update K8SNodeip for master node in values.yaml

dcaeHostname: <K8SNodeip>

After updating the above configurations, run below command from the parent directory to generate the charts with all dependencies.

helm dep update

Then, run below command to install all the components under desired NAMESPACE

helm install -n dcaemod2 --namespace <NAMESPACE> ./

Verify all the components (pods) are up

dcaemod2-mongo-0

dcaemod2-ui

catalog-service

auth-service

Working with UI

After deploying the mod2 components using docker compose or helm charts, UI will be available in below URL where hostname would be the hostname or IP address of the deployed VM

https:// <hostname>:30997 (or the port configured in the helm chart)

Initial user/password would be set to admin/admin@mod.

Below is the snapshot of initial landing page of MOD UI



Steps to onboard a microservice and generate deployment artifact

  1. Click on Microservices... option on the page, following sample page will be displayed. Currently this page contains 2 onboarded microservices in the list. For initial deployment, the list will be empty.

2. Click on +MS button on the page below shown in red to add a Microservice that needs to be onboarded.

3. Below Popup page will be displayed and enter details of Microservice and press Add to add the Microservce in the list.

4. To add an instance for a release click on … on the right as circled below in the list of Microservice by selecting s specific Microservice

5. Below popup page will be displayed. Select a release and developer details. Then click on Add button to add a Microservice instance.

6. To add a component spec for Microservice instance, Select MS Instances on the left menu, it will bring up the list of Microservice instances and choose … on the right side for the specific Microservice instance as below. Click on Add Component spec option.

7. Below popup page will be displayed for adding component spec json file. Select the type and browse to choose component spec json file. Choose Add to add the component spec for the specific Microservice instance.

8. To generate deployment artifact, choose … on the right side for the specific Microservice instance as below. Then choose Generate Blueprint option to generate the deployment Artifact.

9. Choose Blueprints on left side menu to get a list of blueprints that are generated. Choose … option menu for specific blueprint and choose “View BP Content”

10. The Blueprint content can be downloaded by choosing download option show below.

Currently after the deployment artifact is downloaded, you have to go manually to DCAE dashboard to deploy.

For future releases, the plan is to automate through a menu option from the UI.


<ADD Policy API and Distribution of deployment artifact  - In Progress >



Note: Update in progress...


  • No labels