Oracle cloud: non c'è due senza tre e il quarto vien da sé
Dopo Amazon, Google e Azure, anche Oracle è entrata nel mercato Cloud. Nell'ultimo periodo Oracle Cloud propone in modo aggressivo con lo slogan "Always Free" una serie di risorse che saranno sempre disponibili senza accrediti ulteriori. Ovviamente non è tutto oro quello che luccica ma...abbiamo fatto un paio di prove per saggiare questo servizio.
Iscrivendosi ad OCI (Oracle Cloud infrastructure) si ottiene un credito virtuale di 250€ per provare una serie di risorse il primo mese. Piuttosto che un tier free annuale (tipico per es di Amazon), Oracle offre la possibilità di avere per sempre alcuni servizi (in gergo "Always Free"), tra cui un paio di piccole istanze database e un paio di istanze virtualizzate "mini".
Ne abbiamo approfittato per saggiare alcuni servizi ed esplorare una variante di deploy chiamata dokku.
Le istanze Always Free sono istanze da un ottavo di CPU (!) e 1 GB di RAM, con un disco da 50GB in dono. E' possibile scegliere tra alcune distribuzioni. Noi abbiamo provato l'Ubuntu 18 LTS. La descrizione recita
VM.Standard.E2.1.Micro: E2-based standard compute. Processor: AMD EPYC 7551. Base frequency 2.0 GHz, max boost frequency 3.0 GHz.Un ottavo di CPU equivale a dire che la macchina virtuale ha un limitatore che le assegna solo il 10-12 % ca della CPU reale, il che equivale a una velocità intorno ai 256Mhz ca.
Le istanze sono troppo piccole per far girare K8s, ma abbiamo provato a fare due prove
Dokku
Dokku, è un sistema di deployment ispirato ad Heroku e basato su docker.Heroku nasce prima di K8s, e ha un approccio più minimale, basato su servizi precostutiti a cui si "agganciano" i prori.
Heroku è basato su un sistema di build chiamato "buildpacks". In pratica l'idea è che si può fornire direttamente a Heroku il proprio codice sorgente via una push git, specificare il linguaggio in cui è scritto il codice e poi Heroku si serve dei buildpacks per compilare e deployare il software. Heroku supporta una serie abbastanza nutrita di buildpacks, che includono i soliti noti (nodejs, java, go, ruby, python,php ecc) e c'è inoltre un sito web che li elenca
Dokku si serve di herokuish, che emula il sistema di build di Heroku dentro docker.
Dokku è piuttosto comodo in questo contesto perché usando la sola porta ssh è possibile fare la push di un progetto, effettuare la build via docker e gestire anche virtual host vari. Tutto installando solo dokku e docker.
Una limitazione forte di Dokku è che non orchestra servizi tra più host, e demanda questi aspetti al lato applicativo, ma è uno strumento molto ben documentato da... Heroku (!).
Il tempo necessario per il deploy dell'esempio RubyOnRails si aggira intorno ai 3 minuti e mezzo, confermando che la macchina è lenta.
Stesse tempistiche per un progetto in nodejs o python.
La possibilità di avere due macchine consente di sperimentare un minimo.
Conclusioni
Oracle attua una politica molto aggressiva anche sulle licenze del database per incoraggiare i clienti ad usare il suo cloud (es crediti gratuiti, sconti considerevoli sulle licenze ecc).