Improving the Reporting Stack setup

The below table describes the estimated of potential improvements in setting up the reporting stack. More details can be found in this forum post.

Task

Short description

Initial run

Run with documentation and forum post

Improvements description

Improvements estimate

Task

Short description

Initial run

Run with documentation and forum post

Improvements description

Improvements estimate

 

Time

Story Points

Time

Story Points

 

Effort
(Story Points)

Estimate of time after the improvement

Set up the AWS Services

In order to set up the reporting stack, there is a need for creating the instance to hold it first. The recommended way is to use the AWS EC2 with Load Balancer.

3h

5

3h

1

Use terraform.

8

30m - 3h

Prepare the Docker certificates

In order to execute docker commands remotely, those certificates have to be prepared and provided to the instance.

1d

3

1d

1

Use terraform.

8

30m - 3h

Configure the repositories

Prepare all repositories, generate, and set up the credentials, paths, URLs.

5d

3

1d

2

Create a new reporting stack sample repository or adjust the Core reporting stack one and make sure it’s stable and working well, and that it can be simply copied for a new implementation (with instruction of what exactly should be changed (paths/URLs/credentials).

3

3h

Improve the docker files and scripts (so that initial URL/credentials propagation/generation would be automated and require as little manual actions as possible).

3

1h

Configure the Jenkins jobs

Setup the Jenkins jobs, based on existing ones.

1d

2

1h

1

Document the setup of the job In case it couldn’t be cloned of a current one.

1

1h

Inital NiFi registry setup

Initial deployment and setup of the NiFi Registry.

3d

3

4h

1

Remove the usage of the NiFi Registry.

8

0 (and it could reduce the time for NiFi setup)

Nifi setup

Deployments and setup of the NiFi and, and synchronizing NiFi with the Nifi registry.

9d

8

1d 4h

2

Adjust and document the usage of the scripts to use NiFi (and eventually NiFi registry if still used).

3

3h

Superset setup

Deployment of the Superset, fixing the dependency issues and verifying if the data are loaded properly.

1d

2

4h

1

Improve the docker files and scripts (like updating the superset requirements versions automatically or changing the scripts so it won’t require the newest versions).

3

1h

Connect OpenLMIS with the Superset

The work related to allow users to properly access Superset reports from the OpenLMIS.

1d

2

4h

1

Improve the docker files and scripts (creating the superset user in the database automatically).

2

1h

Subtotal

Subtotal of work above.

~21.5d

28

5.5d

10

 

39

~1.5-2d

Upgrade to a new version (strongly depends of what changes were made for the implementation)

Providing the new version of the reporting stack to the existing instance.

might take up to multiple weeks

never performed

never performed

never performed

Get rid of all implementation-related files in the distro repository (move files that are always changed to a different place and allow to just override any other files only when there’s a need).

13+

might still take up to multiple weeks, depending on the changes made

 

 

Priorities:

 

  1. Nifi improvements

    1. Removing the Nifi registry, following the Casper pattern

    2. Would like to lay out the dev-to-deployment cycle (for upgrading)

  2. Configure the Repositories

  3. Superset

    1. Superset setup

    2. Connect OpenLMIS with Superset

  4. Terraform

    1. If we could get the PCMT improvements and move this into a central piece of CI/CD - however our current estimate doesn’t include this.

OpenLMIS: the global initiative for powerful LMIS software