Today I finally took the time to put up a live demo website for Hesperides!
Hesperides is an open source tool dedicated to configuration management: it stores applications properties and mustache templates for configurations files. It is strongly hierarchized based on few main concepts: modules, applications and environments.
Hesperides has two main components: a REST API backend and a web frontend. It has a companion CLI written in Python, a dedicated Jenkins shared lib, and it has been used in production for more than 5 years.
My first contribution to this project dates from 2017, but it's in 2019 that I extensively worked with Thomas L'Hostis on fully re-writing its Java backend.
Following this major overhaul, many interesting methodologies & tools were used on this project:
- Hexagonal architecture & CQRS
- Event Sourcing
- Domain-Driven Design
- BDD testing
- Lightweight Architecture Decision Records
- containerization using
- fully automated daily deployments, partially based on GitHub Actions pipelines
Over the years, many contributors helped on this project: backend contributors - frontend contributors. Special shout-out to Sylvain Maillard, Adrien Auffredou, Victor Salaun, Vincent Lae, Nicolas Laurenti, Mamadou Bhoye Barry and the persons who took part in the Hesperides workshops: thank you all for your great work!
The live demo website is hosted on Heroku. I wrote down a short tutorial on how this was done here: https://voyages-sncf-technologies.github.io/hesperides-gui/start.html#heroku.