Deploy the RTR Java service for NBS 7

This page walks through deploying the real-time reporting (RTR) Java service using the reporting-pipeline-service Helm chart from the NEDSS-Helm repository for NBS version 7.13. The service processes streamed events from Kafka and loads domain-specific reporting data.

Deploying the Java service is a two-phase process. The first deployment seeds the nrt_* caching tables that RTR depends on. Once seeding is complete, you upgrade the release with post-processing enabled.

Schedule a maintenance window and notify users that NBS will be unavailable. Database changes made while the RTR service is being deployed might not propagate to your reporting database.

On this page

  1. Prerequisites
  2. Deploy the RTR Java service using Helm
  3. Monitor seeding progress
  4. Enable post-processing
  5. Next steps

Prerequisites

This page assumes you’ve completed Before you begin for the microservices phase and each microservice deployment page before this one, in order. The page immediately before this one is Kafka connector.

Confirm the following before you continue:

  • You are connected to the correct Kubernetes cluster. Run kubectl config current-context to confirm.
  • You have your database credentials and domain values available. See the Helm values reference if you need help determining any values.

Deploying the Java service takes significant time and database space. Before you deploy, verify that the Kafka cluster you created in Provision cloud environment is scaled for your database size. An undersized Kafka cluster can cause the deployment to fail.

Deploy the RTR Java service using Helm

Complete the following steps to deploy the reporting-pipeline-service Helm chart from the charts/reporting-pipeline-service/ directory of your cloned NEDSS-Helm repository:

  1. Search values.yaml for EXAMPLE and fill in your environment-specific values. See the Helm values reference for help determining values.
  2. Confirm that post-processing is disabled in values.yaml for the initial deployment:

    featureFlag:
      postProcessingEnable: "false"
    
  3. Install the Helm chart:

    helm install -f reporting-pipeline-service/values.yaml reporting-pipeline-service ./reporting-pipeline-service/
    
  4. Verify the pods are running:

    kubectl get deployment reporting-pipeline-service
    

    Expected output:

    NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
    reporting-pipeline-service   1/1     1            1           16m
    

Monitor seeding progress

The /actuator/lag endpoint reports how far behind the service is in consuming its Kafka topics. Use it to determine when initial seeding is complete.

Retrieve information on reporting-pipeline-service lag in your browser. Replace <exampledomain> with your actual domain (see Deploy Traefik ingress controller):

https://data.<exampledomain>/reporting-pipeline-svc/actuator/lag

When all messagesQueued values are 0, seeding is complete.

Enable post-processing

After seeding is complete, upgrade the release with post-processing enabled:

  1. Update values.yaml to enable post-processing:

    featureFlag:
      postProcessingEnable: "true"
    
  2. Upgrade the release:

    helm upgrade -f reporting-pipeline-service/values.yaml reporting-pipeline-service ./reporting-pipeline-service/
    
  3. Verify the pods restarted cleanly:

    kubectl rollout status deployment/reporting-pipeline-service
    kubectl get deployment reporting-pipeline-service
    
  4. Confirm the service is healthy. Replace <exampledomain> with your actual domain (see Deploy Traefik ingress controller):

    https://data.<exampledomain>/reporting-pipeline-svc/actuator/health
    

Next steps

Continue to Validate RTR installation.