Recently I was reading few articles related to how organizations adapt microservices. The topic I was particular interested in was code duplication between microservices. There is of course SonarQube, but what to do if there are several teams sitting in different departments with little or no coordination between them? How to avoid the situation when two or more teams develop the same functionality, maybe even using different tech stacks? It seems I’m not alone at least.
Then I remembered an old video related to how Netflix or Spotify solve this problem. I do remember I have seen it at least 3 times quite a few years ago, and the solution was Microservice Catalog.
Disclaimer: I can’t find this video anymore, so ping me please if you still have it bookmarked somewhere.
The basic idea is to have a simple catalog, displaying all you microservices in a one place:
You can try it live here: https://microcatalog.herokuapp.com with “user” / “user”
I’m using free tier on heroku, so if app was not used for some time, it will be in standby mode. Give heroku few minutes to start the application
Of course there are such a powerful tools like AppDynamics but what about something really simple? Are there any open source alternatives? I have tried to find some, but with no luck.
So meet my new project on github: https://github.com/tillias/microservice-catalog. It uses Masonry layout at the moment to align cards. You can save name, team, description, custom image url and few other fields.
- Visualize dependencies between microservices. I have had quite a good experience with https://github.com/visjs/vis-network
- Some security improvements described in https://github.com/tillias/microservice-catalog/issues/1
- Visual tags for microservices, e.g. “released”, “under development” etc -> implemented
- Other features as listed in https://github.com/tillias/microservice-catalog/issues
Please drop me a line if you’re interested in contributing. It will be fun!