Entry from 10.06.2021
Hi, we are Armin& Alex. Welcome to KnowKit Dev-Log #8, where we will keep you up to date on the latest developments around KnowKit product development.
"Improving your software delivery effectiveness will improve your ability to work in small batches and incorporate customer feedback along the way." - Accelerate (Nicole Forsgren PhD, Jez Humble, Gene Kim)
Plausible - Cookie Free Tracking
For user-centered product development, it is relevant to know which functions of the application are actually being used, in addition to many other measurements. We decided against Google Analytics because it collects significantly more data than we need. Besides, if it's free, you are the product.
Instead, we decided to use the service Plausible.io, which we would like to recommend here. The service has fair pricing, tracks without cookies, is privacy-friendly (as no personally identifiable information is collected), is operated in Germany, supports goal tracking, reports and much more.
Feature Prototype: Knowkit Viewer
We have launched a new prototype in which we are testing a number of new features with user feedback. This includes the search, the video player, as well as a video list and HTTP live streaming.
After the implementation of the new user interface in the last weeks we will focus on these areas in the next weeks.
The new Dev-Version has been deployed and is currently being tested internally and feedback is being collected. So I would like to continue today with this rather technical topic and tell you a little bit about the problems we encountered in the deployment pipeline and how we were able to automate them 🤓
The first part of the CI/CD pipeline is testing the application.
Most of our tests are unit tests that run in a few seconds. Then we run some integration tests that go directly against the Postgres database.
Basically, one has many options here. A very popular solution would be using Testcontainers. Personally, however, I have found that using Flyway, R2DBC and Testcontainer makes the Spring setup incredibly complex and Github Actions offers a pretty straightforward solution here:
Github Actions allows to start service containers at the beginning of the workflow. This allows the integration tests to run on a Postgres database initialized by Flyway. Pretty simple - yay 💪
Part of the testing phase is also collecting code coverage information and code quality metrics.
Beside this we use the AWS Github Actions to deploy the service directly to ECS. For this you have to download current Task Definition from AWS, then the new Task Definition can be rendered and then the service will be depoyed 🚀
That's it - see you next time for KnowKit DevLog #8!