Last week I worked on the docker-compose deployment. It was not working because of some issues. This week I fixed the service connections issues and exposed ports needed for the visualization. The deployment is working properly now. The system is now easy to deploy locally. By calling “docker-compose up” in the deployment folder every service will be run with the correct configuration in docker containers. The ports will be exposed that are needed for the visualization and for testing.
One of the consequences of having a distributed system is having inferior debugging capabilities. Monolithic applications can be debugged in an IDE with breakpoints and exceptions being caught by the IDE. It provides the values of local variables and extensive profiler options. Distributed systems have several applications running. Debugging becomes quite difficult even with remote debugging tools.
Therefore, I made sure that the logging of the application is well organized. The framework defines a Logger class with methods such as LogInfo, LogDebug and LogError. Through docker-compose all the logs gets centralized into the same command line interface. This makes debugging much simpler.
Most of these documents fall in the analysis competence. I want to work on some design documents next week.
I started with writing tests for the framework code. I used Moq library to mock a gRPC TransformService. These tests test whether the framework registers the service correctly, invokes the right GET / UPDATE methods, and properly translates the data back to user defined model. The tests are quite broad by design to catch any errors with the framework as I do not have the time yet to create low level unit tests. The bundeling of data from different service has not been tested yet. I will add thsoe tests when the feature is actually being used.
This week I finally made the daily standup pages. I made a script that processes a text file with the standups and generates the HTML elements. It was quite fun to generate HTML dynamicly. I exepcted it to be difficult without a web framework but it turns out to be easy.
My main focus for next week is to implement more functionality. I think the framework and architecture is on good point to implement the functionality needed for the offloading process.