Creiamo una nostra infrastruttura PaaS.
Hai mai sognato di realizzare una versione personalizzata di Heroku?
Entusiasmante, vero?
Anch’io trovo l’idea molto stimolante!
Il Platform as a Service (PaaS) rappresenta un modello di cloud computing dove il fornitore mette a disposizione una piattaforma completa per lo sviluppo e la distribuzione di applicazioni. Gli sviluppatori spesso sfruttano i vantaggi del PaaS, che consente loro di concentrarsi sulla creazione dell’applicazione stessa, piuttosto che investire tempo nella configurazione della piattaforma su cui questa verrà costruita ed eseguita.
Naturalmente, i principali attori del mercato come AWS, Azure e Google Cloud offrono soluzioni PaaS di alto livello. Tuttavia, non è sempre indispensabile affidarsi a tali colossi. Per realtà più piccole, esistono numerose opzioni mini-PaaS in grado di gestire agilmente applicazioni di dimensioni ridotte su uno o pochi server. Queste soluzioni possono essere perfettamente adatte alle esigenze, consentendo un notevole risparmio sui costi e, soprattutto, sul tempo, che si traduce in denaro.
Ecco una lista di alcuni dei software PaaS più popolari per costruire la tua piattaforma personale per l’esecuzione di applicazioni più piccole.
Dokku
Ti ricorda qualcosa il nome?
Esatto, assomiglia a Heroku!
Dokku è un software open source di dimensioni contenute. Richiede un minimo di 1 GB di memoria e funziona su sistemi operativi CentOS, Ubuntu e Debian.
Dokku è una sorta di “mini-Heroku” basato su Docker e scritto in bash. È possibile inviare la propria applicazione tramite Git, e Dokku si occuperà della sua compilazione e dell’esecuzione in container isolati.
Le principali caratteristiche di Dokku includono:
- Facilità di deploy tramite Git
- Disponibilità di plugin per diverse tipologie di linguaggi
- Possibilità di aggiungere e personalizzare funzionalità per migliorare Dokku.
- Comandi semplici per la gestione di applicazioni, utenti, log e altre funzioni.
- Opzione per controlli definiti dall’utente, per una distribuzione senza interruzioni di servizio.
Dokku può essere installato sul proprio server oppure avviato con un singolo click su DigitalOcean o Azure.
Jelastic – Edizione Lite
Jelastic è una piattaforma che offre una soluzione PaaS multi-cloud per DevOps, consentendo un più rapido sviluppo, una riduzione dei costi infrastrutturali, un miglior uptime e una maggiore sicurezza. La versione “Lite” include molte delle funzionalità delle edizioni aziendali, seppur con alcune limitazioni. Si tratta di una soluzione efficace per applicazioni di piccole dimensioni, con un notevole risparmio sui costi.
Questa versione leggera di Jelastic è l’ideale per chi ha un budget limitato. È perfetta per piccole imprese, startup, siti e-commerce di dimensioni contenute, progetti di gaming e simili.
Le caratteristiche principali di Jelastic Lite Edition sono:
- Dashboard per sviluppatori con opzioni di deploy delle applicazioni
- Supporto per container e Kubernetes
- Ridimensionamento automatico sia verticale che orizzontale
- Firewall e autenticazione a due fattori per gli utenti finali
- Strumenti integrati per il monitoraggio e la risoluzione dei problemi
- Accesso API, CLI e SSH per la gestione dei container
Jelastic Lite Edition è disponibile su Google Cloud e DigitalOcean.
Flynn
Flynn è una piattaforma open source che permette di eseguire qualsiasi applicazione Linux. Fornisce una base per i team di sviluppo e operativi per costruire, distribuire e gestire software in modo semplice. Flynn può essere facilmente configurato in locale oppure installato su hardware dedicato o presso un provider cloud, tramite pochi semplici comandi.
Le caratteristiche principali di Flynn:
- Database MySQL, MongoDB e PostgreSQL integrati con elevata disponibilità
- Servizio di discovery integrato per connettere tutti i microservizi
- Scalabilità adattata alle reali necessità per ridurre i costi
- Team di supporto dedicato ed esperto per la gestione del cluster Flynn
Hephy Workflow
Hephy Workflow facilita l’implementazione e la gestione di applicazioni su cluster Kubernetes. Si tratta di un fork di Deis Workflow, avviato nel 2017. Nel 2018, il team di Deis Workflow ha interrotto il lavoro sul progetto, passando a progetti Microsoft Azure.
Hephy Workflow è costituito da una serie di servizi indipendenti che insieme creano un PaaS distribuito. Tali componenti vengono distribuiti come servizi all’interno del cluster Kubernetes. Il sistema prevede due livelli di utenti: normali e amministratori.
L’utente normale ha accesso alle funzionalità per lo sviluppo e il deploy delle applicazioni. L’amministratore, oltre alle funzioni utente, può accedere a quelle di proprietario dell’applicazione.
Le caratteristiche di Hephy Workflow includono:
- Generatore di immagini per compilare codice da file docker e buildpack
- Routing HTTP/HTTPS per le applicazioni
- Rilascio e rollback facilitato delle applicazioni
- API REST per CLI e integrazioni
- Autenticazione e autorizzazione per la sicurezza delle applicazioni
Cap Rover
Cap Rover è una piattaforma per applicazioni estremamente intuitiva e completamente automatizzata. Se si ha familiarità con Heroku, si può pensare a CapRover come a un Heroku open source potenziato.
CapRover può essere utilizzato per vari scopi, ad esempio per ospitare Node.js, PHP, Java, WordPress, MongoDB, MySQL, Nginx e altro.
CapRover può essere avviato su DigitalOcean con una configurazione semplificata in un singolo click.
Le caratteristiche principali di CapRover sono:
- Interfaccia a riga di comando per scripting e automazione
- Interfaccia Web per monitorare le applicazioni
- Bilanciamento del carico con Nginx
- Certificati SSL gratuiti tramite Let’s Encrypt
- Containerizzazione e clustering tramite Docker Swarm
Tsuru
Tsuru è una piattaforma leggera, open source e facile da usare. Immaginiamo di avere un’applicazione Python che richiede anche un’istanza di server MongoDB; Tsuru si occuperà di avviare sia l’app Python che il database e di eseguirli contemporaneamente, all’interno di container Docker.
Tsuru offre diverse opzioni di piattaforma, e permette anche di creare la propria piattaforma personalizzata.
Le caratteristiche di Tsuru includono:
- Scalabilità dinamica delle applicazioni
- Esecuzione delle applicazioni in un’architettura distribuita per l’ottimizzazione delle risorse
- Supporto per applicazioni scritte in qualsiasi linguaggio; va oltre il modello delle App a 12 fattori.
- Semplice deploy via git push
- Facile integrazione con IaaS come AWS EC2, Apache Cloudstack
Piku
Piku è una piattaforma molto leggera, simile a Heroku/CloudFoundry. Piku si ispira a Dokku e permette di distribuire applicazioni tramite git push sui server. Funziona con ambienti POSIX come Linux, Windows Subsystem for Linux, FreeBSD e Cygwin.
Le caratteristiche di Piku sono:
- Supporto di un workflow in stile Heroku
- Stile di programmazione funzionale per un’esperienza utente più semplice
- Supporto per app scritte in Go, Python, Closure (Java) e Node.js
- Compatibilità con le versioni precedenti quando possibile
- Supporto per app a 12 fattori
Conclusione
Cosa aspetti? Prova i software elencati per costruire la tua PaaS personalizzata. La maggior parte di essi è open source, quindi puoi avviare un server cloud e sperimentare per capire quale soluzione si adatta meglio alle tue esigenze.
E non dimenticare di imparare Docker.