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 pullmanda 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
.envgira via chat e nessuno sa chi ha le chiavi → portiamo i segreti fuori dal repository, iniettati sul server e ruotati quando serve. schedule:runa 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
.enve chiavi fuori dal repository, iniettati in modo sicuro sul server, con rotazione quando serve. - Task schedulati:
schedule:runvia 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 →