Konserwacja — Trzymanie Pytigona w zdrowiu
Aplikacja Pytigona, jak każdy żywy system, potrzebuje regularnej opieki. Ta sekcja obejmuje rutynowe zadania konserwacyjne, które trzymają aplikację w płynnym działaniu.
Codziennie
- Sprawdź dziennik błędów — szukaj nowych błędów, które mogą wskazywać na pojawiające się problemy
- Zweryfikuj wykonanie kopii — sprawdź logi kopii, upewnij się że rozmiary plików kopii są niezerowe
- Monitoruj miejsce na dysku — baza i przechowywanie plików rosną w czasie
Co tydzień
- Przejrzyj wolne zapytania — Django Debug Toolbar lub
pg_stat_statements PostgreSQL
- Sprawdź aktualizacje zależności —
ptig pip list --outdated
- Przetestuj odtworzenie kopii — upewnij się że twoja kopia naprawdę działa
Co miesiąc
- Archiwizuj stare logi — rotuj i kompresuj pliki logów starsze niż 30 dni
- Przejrzyj konta użytkowników — wyłącz konta użytkowników, którzy odeszli
- Sprawdź ważność certyfikatu SSL — certyfikaty wygasają; ustaw przypomnienia w kalendarzu
- Baza wydajnościowa — zmierz czasy odpowiedzi, porównaj z poprzednimi miesiącami
Aktualizacja Pytigona
Drobne aktualizacje (poprawki błędów)
ptig pip install --upgrade pytigon
python manage.py migrate
Główne aktualizacje (nowe funkcje, zmiany łamiące kompatybilność)
- Dokładnie przeczytaj informacje o wydaniu
- Przetestuj aktualizację w środowisku testowym
- Zrób kopię bazy i plików projektu
- Uruchom migracje
- Zweryfikuj że wszystkie widoki ładują się poprawnie
- Uruchom swoją suitę testów
Konserwacja bazy danych
SQLite
sqlite3 [PRJ].db "VACUUM;"
sqlite3 [PRJ].db "ANALYZE;"
PostgreSQL
VACUUM ANALYZE;
REINDEX DATABASE pytigon_db;
Konserwacja kolejki zadań
- Monitoruj zadania zakończone niepowodzeniem — widok kolejki zadań pokazuje zadania zakończone niepowodzeniem i ponawiane
- Czyść stare rekordy zadań — historia zadań może urosnąć; skonfiguruj retencję w ustawieniach
- Restartuj workerów po wdrożeniu — workerzy muszą przeładować się, by podjąć zmiany kodu
Sprawdzenie kondycji
Pytigon dostarcza endpoint sprawdzenia kondycji pod adresem /health/ zwracający status systemu:
{
"status": "ok",
"database": "connected",
"tasks": "running",
"storage": "available",
"version": "2.5.0"
}
Skonfiguruj narzędzia monitorujące (Nagios, Prometheus, UptimeRobot), by regularnie uderzały w ten endpoint.