Assistenza Laravel: deploy zero-downtime, code, worker e infrastruttura curata - init.d
EN

Assistenza Laravel: deploy zero-downtime, code, worker e infrastruttura curata

L'infrastruttura Laravel curata mentre tu resti concentrato sul codice.

Laravel è un framework produttivo per chi sviluppa, ma in produzione ha esigenze precise: PHP-FPM da dimensionare, code e worker da tenere vivi, deploy che non devono spegnere il sito e segreti da gestire con cura. Ce ne occupiamo dal lato che conta - server, deploy e infrastruttura - così il tuo team resta concentrato sul codice.

Ti serve invece sviluppare l’applicazione, non solo farla girare? Guarda sviluppo software su misura.

Panoramica

Un’applicazione Laravel vive di due cose: quanto è veloce a rispondere e quanto è affidabile quando rilasci una nuova versione o quando le code si riempiono. Una richiesta lenta allontana gli utenti, un deploy improvvisato manda in errore l’app nel momento peggiore, un worker morto lascia email non inviate e job fermi per ore senza che nessuno se ne accorga.

Il nostro lavoro è rendere il rilascio una routine tranquilla, non un evento da temere: release atomiche, code sorvegliate, cache configurate, segreti fuori dal repository. Prendiamo in carico l’applicazione così com’è - su un server esistente o su uno preparato da noi - e la portiamo a uno stato in cui ogni pezzo è documentato e ripetibile. Hai un solo referente tecnico che conosce sia il framework sia il sistema operativo che ci sta sotto, report leggibili dopo ogni intervento e nessun lock-in: l’infrastruttura resta tua.

Problemi tipici che risolviamo

  • Il deploy con git pull manda in 500 il sito per qualche minuto → passiamo a release atomiche con symlink e rollback in pochi secondi.
  • I job in coda restano indietro o si fermano senza avvisare → Supervisor tiene vivi i worker e un monitor segnala ritardi e job falliti.
  • Le email transazionali partono in ritardo o non partono affatto → separiamo la coda delle notifiche da quella delle lavorazioni pesanti.
  • L’app è lenta anche con poco traffico → attiviamo OPcache e le cache di config e route, poi tariamo PHP-FPM e database sul carico reale.
  • Le migrazioni in produzione fanno paura → le eseguiamo in finestre concordate, con backup verificato e piano di rollback.
  • Il file .env gira via chat e nessuno sa chi ha le chiavi → portiamo i segreti fuori dal repository, iniettati sul server e ruotati quando serve.
  • schedule:run a volte non parte e nessuno se ne accorge → mettiamo il cron sotto controllo, con log leggibili e un avviso se un task salta.

Cosa include

  • Deploy zero-downtime: rilasci atomici a release con cambio istantaneo alla nuova versione, migrazioni gestite in sicurezza e ritorno rapido alla release precedente se qualcosa non torna.
  • Code e worker: Supervisor a tenere vivi i processi, code separate per priorità, tuning delle connessioni e gestione dei job falliti.
  • CI/CD: pipeline che eseguono i test, buildano gli asset e rilasciano in automatico, con approvazioni manuali dove servono.
  • Ottimizzazione: OPcache, config e route in cache, tuning di PHP-FPM e del database, Redis per cache e sessioni, riduzione del TTFB.
  • Sicurezza e hardening: HTTPS/TLS corretto, permessi sui file, protezione dell’area admin, aggiornamenti tempestivi e superficie d’attacco ridotta.
  • Gestione env e segreti: file .env e chiavi fuori dal repository, iniettati in modo sicuro sul server, con rotazione quando serve.
  • Task schedulati: schedule:run via cron e comandi Artisan affidabili, con log leggibili su cosa è girato e quando.

Stack e tecnologie

Nginx davanti a PHP-FPM con OPcache attivo, sulla versione di PHP che la tua release di Laravel supporta. Redis per cache, sessioni e code; database MySQL/MariaDB o PostgreSQL dimensionato sul carico reale, non sui default. I worker girano sotto Supervisor, lo scheduler parte da cron, gli asset si buildano in pipeline. Per il deploy usiamo release atomiche con symlink (Deployer o script equivalenti) e, dove ha senso, container con CI/CD.

I sistemi su cui lavoriamo di casa sono Debian e Ubuntu; su richiesta seguiamo anche AlmaLinux, Rocky Linux e altre distribuzioni. Come cloud partiamo da Google Cloud, con AWS e DigitalOcean come alternative collaudate. Sul perimetro TLS aggiornato e Cloudflare come primo filtro. Ogni scelta è tarata sulla tua applicazione e scritta nero su bianco.

Un esempio d’intervento

Un SaaS B2B su Laravel rilasciava con git pull e composer install direttamente in produzione: a ogni deploy qualche minuto di errori 500 e, un paio di volte al mese, un worker morto scoperto solo dai clienti che non ricevevano i loro report. Abbiamo introdotto release atomiche con Deployer, spostato code e sessioni su Redis con i worker sotto Supervisor, separato la coda delle email da quella delle elaborazioni pesanti e aggiunto un monitor su job falliti e ritardi. Le migrazioni ora girano in finestre concordate, con backup verificato prima di partire. Il risultato: il team rilascia anche più volte al giorno in orario di lavoro, senza pagina di manutenzione, e un worker che cade viene rilanciato da solo - con una notifica a noi invece di una segnalazione dal cliente.

A chi si rivolge

  • Agenzie e software house che sviluppano in Laravel e vogliono l’infrastruttura seguita da chi la conosce davvero.
  • Team di prodotto che rilasciano spesso e hanno bisogno di deploy ripetibili, senza cerimonie.
  • Startup e SaaS in crescita che non possono più permettersi un server gestito a mano.
  • Chi arriva da un hosting condiviso e ha bisogno di code, worker e cache che reggano il carico reale.

Come lavoriamo

Partiamo da un check di applicazione e server: versione di Laravel e PHP, stato di code e worker, come avviene oggi il deploy, gestione di .env e segreti, tempi di risposta e lacune di sicurezza. Da lì un piano con priorità chiare e un prezzo indicativo, con ogni finestra di rilascio concordata in anticipo. Le modifiche passano da staging prima di toccare la produzione; a fine intervento ricevi configurazioni documentate e un report leggibile su cosa è cambiato e perché.

Per le urgenze applichiamo un triage per priorità nei nostri tempi di risposta; per la manutenzione continuativa spesso convengono i pacchetti ore, che non scadono. Il preventivo è gratuito, con risposta in giornata lavorativa.

Domande frequenti

Fate il deploy senza mettere offline l'applicazione Laravel?

Sì. Usiamo deploy atomici a release con symlink e cambio istantaneo alla nuova versione, migrazioni gestite in sicurezza e riavvio ordinato dei worker. Se qualcosa va storto si torna alla release precedente in pochi secondi, senza pagina di manutenzione.

Le code e i job in background si bloccano o restano indietro, potete sistemarli?

Sì. Configuriamo Supervisor per tenere vivi i worker, dimensioniamo le connessioni Redis o database, separiamo le code per priorità e monitoriamo job falliti e ritardi, così le lavorazioni pesanti non rallentano le richieste web.

Gestite anche la CI/CD e i segreti dell'applicazione?

Sì. Impostiamo pipeline che eseguono i test, buildano gli asset e rilasciano in automatico, con file .env e chiavi tenuti fuori dal repository e iniettati in modo sicuro sul server. Niente credenziali nel codice versionato.

Lavorate sul server che abbiamo già o ne preparate uno nuovo?

Entrambe le cose. Possiamo preparare un server nuovo su un cloud a tua scelta - Google Cloud in prima battuta, AWS o DigitalOcean in alternativa - oppure intervenire su quello esistente, senza lock-in: le configurazioni restano documentate e tue, sul tuo provider.

Quanto costa l'assistenza per un'applicazione Laravel?

La tariffa oraria è unica: 75 €/ora. Per la manutenzione ricorrente convengono i pacchetti ore senza scadenza: 5 ore a 350 €, 10 a 660 €, 20 a 1.200 €. Il preventivo è sempre gratuito, con risposta in giornata lavorativa.

Se l'applicazione va giù, in quanto tempo intervenite?

La copertura standard è dal lunedì al venerdì, 10:00-18:00, con triage per priorità da P1 a P4: un P1 viene preso in carico entro 1 ora lavorativa. Fuori orario garantiamo l’intervento solo per le emergenze P1 dei clienti con un piano di reperibilità attivo; i lavori pianificati con almeno 20 giorni di anticipo restano possibili con maggiorazione.

Intervenite anche di notte o nel weekend?

Con garanzia solo per i clienti che hanno un piano di reperibilità attivo, e solo per vere emergenze P1: produzione ferma, perdita di dati, incidente di sicurezza. La reperibilità è un canone mensile a posti limitati, attivabile sui sistemi che gestiamo noi e, dopo una valutazione caso per caso, anche su altri: prezzi e regole sono nella pagina Reperibilità. Senza piano la copertura è lun-ven 10:00-18:00 e l’intervento fuori orario è best effort: può capitare, ma non è garantito né esigibile. Gli interventi notturni o festivi pianificati con almeno 20 giorni di anticipo restano possibili per tutti, alla tariffa maggiorata.

Serve una mano sulla tua infrastruttura?

Raccontaci il problema: rispondiamo con una proposta chiara e un preventivo.

Contattaci →