Żabix (original microservice application) by JKawka and ASliwska - https://github.com/JaKafka/zabix
Projekt ten jest deploymentem Spring-Bootowego REST API o nazwie "Żabix" na Google Cloud Platform. Żabix jest API pozwalającym zalogowanym użytkownikom na:
- wysyłanie do serwisu obrazków żab wraz z ich nazwami,
- codziennym głosowaniem na najlepszą żabę,
- codziennym generowaniem kart kolekcjoneskich z obrazkami żab,
- dawaniem swoich kart innym użytkownikom.
Samo REST API jest złożone z 3 mikroserwisów napisanych w Javie i Spring-Boot'cie, komunikujących się ze sobą przez HTTPS:
- /frog - odpowiada za dodawanie żab (obrazek i nazwa), głosowanie na nie, wyświetlanie najpopularniejszych,
- /card - odpowiada za generowanie kart, usuwanie ich i przekazywanie swoich kart innym użytkownikom,
- /user - odpowiada za zarządzanie kontem użytkownika.
Każdy z serwisów ma swoją własną bazę danych w PostreSQL, dodatkowo jeden z serwisów (/frog) zapisuje obrazki wysyłane przez użytkowników. W GCP oznacza to poniższe zasoby:
- 3x
Compute InstanceCloud Run - dla 3 mikroserwisów, - 3x Cloud SQL - osobny storage dla każdego mikroserwisu,
- 1x Bucket - do trzymania obrazków.
Każdy serwis generuje logi metryki dla Prometheus (sidecar), które wykorzystywane są w Cloud Monitoring do obserwowania ruchu w API. Całość postawiona jest na GCP za pomocą Terraform.