Valuta le opzioni PaaS per i tuoi progetti Go, come deploy da Git e build automatizzate, se disponibili. Limiti e disponibilità dipendono dal servizio. # Valuta le opzioni PaaS per i tuoi progetti Go, come deploy da Git e build automatizzate, se disponibili. Limiti e disponibilità dipendono dal servizio. Perché usare un PaaS per un progetto Go? [Inizia ora](https://panel.deplomo.com/signup)[Consulta la guida al deploy di Go](/it/guides/deploy-go) ## Prezzi e limiti dei pacchetti Ciò di cui i team di ingegneria hanno bisogno per deploy affidabili. ### Deploy diretto da Git Collega il repository ed esegui automaticamente build e deploy a ogni push, senza interruzioni. ### Connettività ai repository esterni Le connessioni verso repository e API esterne dipendono dalla rete del progetto, dalle credenziali e dalle condizioni del fornitore. ### Se supportato dal servizio, la build può usare il file go.mod del progetto per compilare l’applicazione. Verifica log e configurazione della build. Che cos’è l’hosting per applicazioni Go? ## Con un ambiente PaaS per Go, alcune attività di build e deploy possono essere gestite dalla piattaforma. Configurazione e responsabilità dipendono dal servizio. Risposte alle domande più frequenti degli sviluppatori su configurazione, collegamento del repository e deploy dei progetti: Un ambiente PaaS può essere configurato per compilare ed eseguire applicazioni Go e servizi web. API, microservizi e framework supportati dipendono dalla configurazione del progetto. Hosting condiviso, server virtuale e PaaS offrono livelli di accesso e responsabilità diversi. Porte, processi in background e binari dipendono dal piano e dalle opzioni del provider. È possibile distribuire il progetto direttamente da Git? Per la build, verifica che il progetto possa raggiungere proxy.golang.org o i repository necessari. Accesso e disponibilità di rete dipendono dalle condizioni dei fornitori. Framework come Gin, Fiber, Echo, Chi, Go-Zero e librerie gRPC sono esempi di progetti Go. Compatibilità e modalità di build dipendono dalla configurazione del servizio. ## Un progetto Go può richiedere processi, porte e dipendenze specifiche. Confronta le opzioni PaaS con la gestione diretta di un server e verifica i requisiti del tuo progetto. Un progetto Go può includere un processo server, concorrenza basata su goroutine e dipendenze esterne. Porte, variabili d’ambiente e connessioni a database dipendono dall’applicazione e dall’ambiente di deploy. Un server virtuale offre accesso al sistema operativo ma richiede configurazione e manutenzione. Un servizio PaaS può gestire alcune attività; strumenti come Nginx, systemd, certificati TLS e monitoraggio dipendono dal setup disponibile. Le opzioni per variabili, porte, risorse e versioni di Go dipendono dal servizio. Verifica la documentazione e le responsabilità operative prima del deploy. ### Aspetti da valutare per il deploy di un progetto Go Oltre allo spazio e al traffico, valuta build, CPU, memoria, rete e compatibilità con il tuo progetto. Le specifiche dipendono dal pacchetto e dal servizio. - **Deploy diretto da Git (integrazione Git):** Collega GitHub, GitLab o un repository personalizzato. A ogni commit sul branch principale, build e deploy dell'applicazione vengono eseguiti automaticamente senza interruzioni. - **Build Go automatizzate, se disponibili** La build può usare go.mod e le istruzioni configurate nel progetto. Verifica i log per confermare come viene compilata l’applicazione. - **Accesso ai repository di pacchetti:** Se la build non riesce a scaricare moduli da proxy.golang.org o GitHub, controlla log, variabili proxy, credenziali e accesso di rete. - **Risorse dedicate e isolate:** L’applicazione viene eseguita in container Docker isolati con quote di CPU e RAM definite. I picchi di traffico o il consumo di risorse degli altri utenti non incidono sulle risorse assegnate al tuo servizio. - **Gestione delle variabili d'ambiente (.env):** Archivia tutte le chiavi di sicurezza, i token JWT e le informazioni di connessione al database in un ambiente sicuro e modificali al volo senza ricostruirli. - **Accesso in tempo reale ai log (Live Logs):** Consulta dalla dashboard, in tempo reale, l’output della console, gli errori, le richieste in arrivo e i log di sistema per diagnosticare i problemi. - **Dominio dedicato con SSL gratuito automatico:** Dominio e certificati TLS dipendono dalle opzioni del servizio e dalla configurazione. Verifica emissione, rinnovo e condizioni applicabili. ### Quali framework e servizi Go posso distribuire? Framework e librerie Go, tra cui Gin, Fiber, Echo e Chi, possono essere usati se compatibili con il runtime e la configurazione del servizio. - **Framework Web e API:** Esempi di framework web Go: Gin, Fiber, Echo e Chi. Compatibilità e build dipendono dal progetto. - **Microservizi e gRPC** Go-Zero e servizi basati su Protocol Buffers sono esempi di tecnologie che puoi valutare. Capacità e prestazioni dipendono dalla configurazione e dal carico. - **Servizi in tempo reale e di messaggistica:** WebSocket e goroutine possono essere usati per chat e servizi interattivi. Persistenza, disponibilità e comportamento sotto carico dipendono dall’applicazione e dall’infrastruttura. - **Bot e processi in background** Bot Telegram, webhook e processi in background richiedono risorse e configurazioni adeguate. Esecuzione continuativa e disponibilità dipendono dal servizio e dal pacchetto. Se disponibili, puoi configurare connessioni tra l’applicazione e database come PostgreSQL, MongoDB o Redis. Rete, credenziali e accesso dipendono dalle autorizzazioni e dalla configurazione. ### Preparare un progetto Go per il deploy Per distribuire un progetto Go, segui i requisiti del servizio e prepara il repository e la configurazione: - **Configura la porta e go.mod** Verifica che il progetto includa go.mod. Configura il server web per leggere la porta dalla variabile PORT tramite os.Getenv, se richiesto dal runtime. - **Collegamento al repository Git:** Accedi alla console Deplomo, crea una nuova applicazione e seleziona il tuo repository Git. - **Impostazione delle variabili e delle risorse di ambiente:** Imposta le risorse entro i limiti del pacchetto e configura le variabili d’ambiente necessarie, incluse eventuali credenziali del database. - **Deploy automatico e collegamento del dominio:** Se il servizio di build è disponibile, segui le istruzioni del pannello per compilare e distribuire il progetto. Dominio e raggiungibilità dipendono dalla configurazione. ### Opzioni PaaS per applicazioni Go Per un ambiente di produzione, valuta monitoraggio, backup, isolamento e disponibilità in base alle esigenze del progetto. Le funzionalità dipendono dal servizio e dalla configurazione. - **Controlli di integrità:** Il servizio può riavviare un processo e instradare il traffico verso istanze sane se health check, deploy e routing sono configurati per farlo; la continuità non è garantita. - **Deploy senza interruzioni:** Durante un aggiornamento, Deplomo prepara e verifica il nuovo container. Quando è pronto, trasferisce il traffico alla nuova versione e arresta il container precedente. - **Supporto per dischi cloud persistenti (volumi persistenti):** Se il progetto richiede storage persistente, verifica se il servizio consente di collegare volumi ai percorsi necessari. Tipo di storage e prestazioni dipendono dalla configurazione e dal carico. - **Rete privata sicura (Rete privata):** La connessione tra il servizio Go e [i database cloud](/it/products/databases) dipende dalle opzioni di rete, dalle regole di accesso e dalla configurazione. Non è garantito che avvenga su una rete privata o cifrata. ### Deploy Go: zone e accesso ai moduli Scegli la zona considerando il pubblico e i requisiti di rete. Latenza e accesso a servizi esterni dipendono dal percorso di rete e dal provider. Posizione, latenza e connettività verso servizi esterni dipendono dalla zona e dalla configurazione; non sono garantite. ### Un ambiente PaaS può essere valutato per applicazioni Go che richiedono processi o dipendenze separate. Isolamento e limiti dipendono dal servizio. La piattaforma Deplomo può essere adatta a diversi progetti e team tecnologici: - **Startup e prodotti in crescita:** Inizia con un costo minimo ed espandi le risorse RAM e CPU in una frazione di secondo man mano che gli utenti aumentano; Non sono necessarie migrazioni rischiose. - **Liberi professionisti e società di sviluppo software:** Puoi valutare ambienti separati per progetti diversi, secondo le opzioni disponibili. Porte e dipendenze vanno configurate per ogni applicazione. - **Sviluppatori di microservizi e backend** Valuta il deploy di API e servizi Go in base ai requisiti del progetto e alle opzioni del runtime. - **Sviluppatori di bot e strumenti di automazione:** Mantieni online i tuoi chatbot, gli script di web scraping o i processi pianificati periodicamente in completa stabilità.
| Funzionalità e criteri di confronto | PaaS per applicazioni Go | Hosting condiviso tradizionale | server virtuale grezzo (VPS) |
|---|---|---|---|
| Modalità di deploy | L’integrazione Git e la build continua dipendono dalle funzionalità disponibili nel servizio. | Caricamento manuale di file zip o strumenti con restrizioni | Configurazione manuale di git, shellscript e webhook |
| Processi e porte dipendono dalla configurazione dell’applicazione. | Risorse e disponibilità dipendono dal pacchetto e dalle condizioni del servizio. | Frequenti arresti del processo e chiusura dei porti | Supporto completo soggetto a configurazione da parte dell'utente |
| Accesso ai moduli Go | La build può usare GOPROXY, se configurato. Accesso e prestazioni dipendono dalla rete e dai repository. | Connettività dipendente dalla rete condivisa o dai servizi esterni | Richiede la configurazione manuale della connessione a proxy e DNS |
| Isolamento e allocazione delle risorse | Contenitori Docker indipendenti con risorse dedicate al 100%. | Risorse condivise con dozzine di siti sullo stesso server | Risorse virtuali isolate su una piattaforma di macchina virtuale |
| Gestione e manutenzione delle infrastrutture | Nessuna gestione tecnica del server; servizio interamente gestito | Dipende dal supporto di hosting tradizionale | Compito al 100% della gestione e della sicurezza del sistema operativo |
| Scalabilità dell'hardware | Aggiornamento istantaneo di RAM e processore senza interruzioni in pochi secondi | Limitato e richiede la modifica manuale del piano con ritardo | È necessario il riavvio del sistema operativo e talvolta la migrazione del server |
| Certificato di sicurezza SSL | Emissione e rinnovo automatici e gratuiti | Dipendono dal provider e dalle opzioni disponibili. | È necessario installare manualmente Certbot e impostare i rinnovi |
| Metodo di calcolo dei costi | Pagamento orario in base al consumo effettivo (Pay-as-you-go) | Contratti annuali e mensili obbligatori senza restituzione | Canone mensile fisso indipendentemente dall'utilizzo |