Vai al contenuto

SafeOps Performance Rollout Runbook

Finestra consigliata: dopo le 20:00, senza deploy concorrenti sugli stessi file.

Freeze

  • Bloccare modifiche su app/modules/commerciale/views.py
  • Bloccare modifiche su app/modules/commerciale/models.py
  • Bloccare modifiche su app/static/js/safeops.js
  • Bloccare modifiche su app/templates/appbuilder/custom/commerciale_richiesta_servizio_list.html
  • Bloccare modifiche su app/perf.py
  • Bloccare modifiche su app/__init__.py

Feature flag

  • LOG_REQUEST_PROFILING=1
  • SAFEOPS_COMMERCIALE_UI_METRICS=1
  • SAFEOPS_PRATICA_SELECTIN=1
  • SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=1

Rollback rapido

  • Spegnere sola strumentazione: LOG_REQUEST_PROFILING=0
  • Tornare ai badge/summary legacy: SAFEOPS_COMMERCIALE_UI_METRICS=0
  • Disattivare query option selectin su PraticaServizioView: SAFEOPS_PRATICA_SELECTIN=0
  • Disattivare bootstrap schema runtime: SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=0

Ordine operativo

  1. Verificare che non ci siano altri deploy in corso.
  2. Applicare le variabili d'ambiente nel drop-in del servizio.
  3. Riavviare safeops-web.service.
  4. Attendere warmup completo dei worker.
  5. Eseguire smoke test:
  6. /commercialerichiestaservizioview/list/
  7. /commercialerichiestaservizioview/ui-metrics
  8. /praticaservizioview/list/
  9. /clienteview/list/
  10. /documentoview/list/
  11. Raccogliere:
  12. var/log/slow_requests.log
  13. var/log/slow_queries.log
  14. journalctl -u safeops-web.service -n 200
  15. Se emerge regressione, disattivare il flag minimo necessario e ripetere il riavvio.

Criteri di stop

  • ui-metrics non deve rispondere 302 o 403
  • PraticaServizioView non deve restituire 500
  • slow_queries.log non deve più mostrare DDL CREATE TABLE IF NOT EXISTS o ALTER TABLE ... in normali request
  • Le request lente devono mostrare breakdown coerente: sql_ms, sql_count, template_ms, external_ms

Note

  • Il flag SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=0 va usato solo se lo schema è già allineato.
  • Se il servizio è lento subito dopo restart, controllare warmup FAB/permission sync prima di misurare gli endpoint.