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 | |||
---|---|---|---|---|---|---|---|---|
| Time | Story Points | Time | Story Points |
| Effort | 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:
Nifi improvements
Removing the Nifi registry, following the Casper pattern
Would like to lay out the dev-to-deployment cycle (for upgrading)
Configure the Repositories
Superset
Superset setup
Connect OpenLMIS with Superset
Terraform
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