Uploaded image for project: 'CDAP'
  1. CDAP
  2. CDAP-11940

Add support for microservices in CDAP

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.2.0
    • Fix Version/s: 4.3.0
    • Component/s: UI
    • Labels:
    • Sprint:
      UP5 Sprint 2
    • Release Notes:
      Adds the Create Microservice wizard to allow creating microservices in UI.
    • Rank:
      1|hzy13a:tmx

      Description

      As a CDAP user, I want to support microservices through the CDAP UI, so I can create and manage my microservice applications through the UI.

      Specs:
      Add a new tile to the + button modal - Microservice. Description: A microservice is a CDAP application for creating microservices that communicate by passing messages over a reliable queue.

      Wizard:
      Step 1: General Information.
      1. Name: Placeholder: Name of the microservice
      2. Description: Placeholder: Description of the microservice
      3. Version: Default to 1
      Step 2: Upload microservice plugin. This is like the plugin upload step. This will accept a JAR file from the user. You can hardcode the plugin json as below:

      {
        "parents": [
          "microservice-app[1.0-SNAPSHOT,10.0-SNAPSHOT)"
        ],
        "properties": {}
      }
      

      Step 3: Configure microservice
      1. Instances: Placeholder: The number of instances of the microservice
      2. Virtual Cores: Placeholder: The number of virtual cores for this microservice
      3. Memory: Placeholder: The memory in MB for this microservice
      4. Threshold: Placeholder: TBD
      5. Endpoints: TBD
      6. Properties: Use a keyvalue widget - reuse the preferences one.
      Step 3 should generate a JSON as below:

      {
        "artifact" : {
          "name" : "microservice-app",
          "version" : "1.0-SNAPSHOT",
          "scope" : "SYSTEM"
        },
        "config" : {
          "version" : 1,
          "id" : "FenceDetector",
          "description" : "A Microservice for detecting if location is within defined geo fences.",
          "plugin" : {
            "name" : "FenceDetector",
            "artifact" : {
              "name" : "geo-fence",
              "version" : "1.0-SNAPSHOT",
              "scope" : "user"
            }
          },
          "configuration" : {
            "instances" : 1,
            "vcores" : 1,
            "memory" : 512,
            "ethreshold" : 100,
            "endpoints" : {
              "fetch" : 100,
              "in" : [
                "ms-ericsson-geo-events"
              ]
            },
            "properties" : {
              "dataset" : "device_fences",
              "cache-expiration-in-seconds" : 300,
              "out-bound-stream" : "pubnubIngress"
            }
          }  
        }
      }
      

      Note: Place the microservice-app JAR and JSON files in the system artifacts directory and reload system artifacts before this step.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tbach Tony Bach
                Reporter:
                bhooshan Bhooshan Mogal
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: