Zadanie polega na stworzeniu zestawu serwisow przy pomocy docker-compose.
Ogolny schemat aplikacji:
haproxy
--> backend1
-> backend2
Gdzie haproxy moze byc gotowym, publicznym obrazem, ze zmodyfikowana konfiguracja obslugujaca:
- blokade ruchu przy dlugosci user agenta rownej lub mniejszej niz 16 znakow,
- liste zabronionych user agentow (ladowana z pliku),
- liste dozwolonych user agentow (override dla reguly nr. 1)
- backend skladajacy sie z dwoch serwerow
backend1
orazbackend2
, gdziebackend2
jest serwerem backupowym
BackendN to wlasnorecznie napisana aplikacja w Pythonie ktora obsluguje:
- endpoint http
/healthz
zwracajacy "HTTP 200 OK" na potrzeby healtcheckow z haproxy - endpoint http
/
zwracajacy dowolna tresc, pozwalajaca odroznic kontener z ktorego jest serwowana
Odpytujac na lokalnej maszynie adres localhost:9090, powinnismy dostac output z backend1. W przypadku jego zatrzymania (docker-compose stop backend1) haproxy powinno serwowac tresc z backend2. Po ponownym podniesieniu backend1 ruch powinien znowu byc serwowany z niego.