Optymalizacja i automatyzacja bezstanowego interfejsu API do agr
Stanowisko: Inżynier backendowy / DevOps.
Problem klienta (zadanie): Istniejący serwer działał niestabilnie z powodu przeciążenia bazy danych, skrypty parsujące dane rządowe (FAA) zawieszały się na „zanieczyszczonych” plikach CSV, a aplikacja mobilna klienta otrzymywała nieaktualne informacje. Konieczne było ustabilizowanie działania, przepisanie logiki przechowywania danych oraz pełna automatyzacja procesu aktualizacji.
Moje rozwiązanie:
Zmiana architektury: Całkowicie zrezygnowałem z ciężkiej bazy danych na rzecz architektury bezstanowej (generowanie i dystrybucja plików .csv.gz w locie). Zmniejszyło to obciążenie serwera kilkukrotnie.
Odporność na awarie: Napisałem odporne na awarie parsery dla skomplikowanych formatów danych rządowych (ArcGIS, FAA 28-Day Cycle), które automatycznie omijają uszkodzone wiersze i doprowadzają proces do 100%.
Infrastruktura i bezpieczeństwo: Spakowałem aplikację do izolowanego kontenera Docker. Skonfigurowałem odwrotny serwer proxy Nginx z autoryzacją Bearer Token w celu ochrony API.
Inteligentna automatyzacja: Skonfigurowałem zadania Cron z logiką „Early Exit” (skrypt sprawdza dostępność aktualizacji na stronie źródłowej i oszczędza zasoby serwera, jeśli dane się nie zmieniły).
Stos technologiczny: Python, FastAPI, Docker, Nginx, Bash, Linux (Ubuntu).
Przetłumaczono z DeepL.com (wersja darmowa)
Problem klienta (zadanie): Istniejący serwer działał niestabilnie z powodu przeciążenia bazy danych, skrypty parsujące dane rządowe (FAA) zawieszały się na „zanieczyszczonych” plikach CSV, a aplikacja mobilna klienta otrzymywała nieaktualne informacje. Konieczne było ustabilizowanie działania, przepisanie logiki przechowywania danych oraz pełna automatyzacja procesu aktualizacji.
Moje rozwiązanie:
Zmiana architektury: Całkowicie zrezygnowałem z ciężkiej bazy danych na rzecz architektury bezstanowej (generowanie i dystrybucja plików .csv.gz w locie). Zmniejszyło to obciążenie serwera kilkukrotnie.
Odporność na awarie: Napisałem odporne na awarie parsery dla skomplikowanych formatów danych rządowych (ArcGIS, FAA 28-Day Cycle), które automatycznie omijają uszkodzone wiersze i doprowadzają proces do 100%.
Infrastruktura i bezpieczeństwo: Spakowałem aplikację do izolowanego kontenera Docker. Skonfigurowałem odwrotny serwer proxy Nginx z autoryzacją Bearer Token w celu ochrony API.
Inteligentna automatyzacja: Skonfigurowałem zadania Cron z logiką „Early Exit” (skrypt sprawdza dostępność aktualizacji na stronie źródłowej i oszczędza zasoby serwera, jeśli dane się nie zmieniły).
Stos technologiczny: Python, FastAPI, Docker, Nginx, Bash, Linux (Ubuntu).
Przetłumaczono z DeepL.com (wersja darmowa)