>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
TypeScript

Come distribuire un progetto senza impazzire con le configurazioni YAML

Conoscete quella sensazione quando scrivere il codice richiede un paio d'ore, ma configurare l'ambiente di distribuzione si protrae per due giorni? Prima combattete con il Dockerfile, poi cercate di ricordare come instradare i certificati SSL attraverso Let's Encrypt, e alla fine scoprite che il database in qualche modo non riesce a vedere il backend sulla rete condivisa. C'è la sensazione che la soglia di ingresso per "distribuire un progetto personale" sia diventata irragionevolmente alta.

Di recente mi sono imbattuto in Openship. È una piattaforma open-source che cerca di riportare i tempi in cui la distribuzione era semplice, mantenendo tutta la potenza dei container moderni. In sostanza, è il vostro PaaS (Platform as a Service) personale che potete configurare su qualsiasi server economico.

Openship dashboard

Ma in sostanza cos'è

Openship è uno strumento per chi è stanco di configurare pipeline CI/CD manualmente. Gli date un link a un repository, e lui capisce cosa c'è dentro: Node.js, Go, Python, o il buon vecchio PHP. Il sistema compila, pacchettizza in un container e avvia.

A differenza di Vercel o Heroku, Openship è completamente auto-ospitato. Questo significa che non state pagando per "risorse della piattaforma" — state usando la potenza del vostro hardware. E potete gestire tutto in tre modi: attraverso un'app desktop, un pannello web, o il familiare CLI.

Cosa rende Openship interessante

Ciò che mi ha conquistato è che gli sviluppatori non hanno semplicemente costruito un altro "wrapper Docker" — hanno messo in un unico posto tutto ciò che di solito dovete configurare separatamente.

Prima di tutto, c'è un server mail integrato. Se avete mai provato a configurare SMTP con record DKIM e SPF corretti affinché le vostre email non finiscano nello spam, sapete che mal di testa sia. In Openship, funziona out of the box.

In secondo luogo, la gestione dei domini. La piattaforma emette automaticamente i certificati SSL e monitora il loro rinnovo. Non dovete accedere alla console del server per aggiungere un nuovo sottodominio.

Terzo, la gestione dei database. Postgres, MongoDB o Redis si avviano in un paio di clic. C'è un sistema di backup programmato integrato con ripristino in un clic. Per i progetti piccoli senza un amministratore dedicato, questo è un salvavita.

Come funziona nella pratica

L'installazione richiede meno di un minuto. Se avete un server pulito con Ubuntu o qualsiasi altra distribuzione Linux, basta eseguire questo nella console:

npm i -g openship
openship up

Dopo di che, il server si attiva. Per distribuire il vostro progetto, andate nella sua cartella sulla macchina locale e digitate:

openship init
openship deploy

La piattaforma capisce automaticamente come compilare la vostra applicazione. Se c'è un package.json nella root, eseguirà una build Node.js. Se c'è un docker-compose.yml, Openship lo prenderà semplicemente "così com'è." Questo è comodo quando avete già configurazioni complesse di container e non volete riscriverle per un nuovo strumento.

Ma qual è l'inghippo

Il progetto è attualmente in fase di sviluppo attivo. Se guardate la documentazione, dice onestamente: "Work in progress." Alcune funzionalità avanzate, come un editor visivo di pipeline CI/CD o impostazioni complesse di rete privata tra server, non sono ancora disponibili — sono nella roadmap.

Un'altra cosa: Openship scarica parecchie dipendenze durante l'installazione tramite CLI, quindi funziona meglio in un ambiente Docker. Fortunatamente, il repository ha un docker-compose.yml pronto all'uso per avviare rapidamente tutta l'infrastruttura in una volta sola.

Chi dovrebbe provarlo

Raccomanderei Openship a due categorie di persone. La prima sono gli sviluppatori singoli che hanno accumulato 5-10 piccoli progetti su stack diversi. Tenerli tutti su un server senza perdersi nelle configurazioni Nginx è una sfida non da poco. Openship trasforma tutto in un elenco organizzato con una bella interfaccia.

La seconda categoria sono i team piccoli che hanno bisogno di un server di staging. La possibilità di avviare rapidamente un ambiente di anteprima per ogni branch Git senza configurare complesse GitHub Actions è un bonus molto gradito.

Per cluster enterprise di grandi dimensioni, lo strumento è ancora un po' prematuro, ma come sostituto degli script di distribuzione personalizzati su progetti di medie dimensioni, sembra molto solido. La licenza Apache 2.0 vi permette di usarlo in prodotti commerciali senza preoccuparvi che una fattura di abbonamento vi arrivi domani nella casella di posta.

In generale, se siete stanchi dell'inferno dei file YAML e volete semplicemente "fare push e dimenticare", Openship è un ottimo candidato per un progetto del weekend per mettere ordine nei vostri progetti.

Progetti correlati