Le macchine

Quando serve un computer intero, lo accendi dentro il progetto.

Un processo che deve stare in ascolto, un lavoro pesante, un linguaggio che non è quello dell'applicazione. Si dichiara in una cartella del progetto, si accende, e dorme da sé quando nessuno le parla — perché il silenzio non si paga.

Cos'è

Non è un server da amministrare: è una parte del progetto

Non ci sono chiavi SSH da distribuire, immagini da caricare in un registro, indirizzi da annotare. C'è un file che dice com'è fatta la macchina, e la macchina diventa quello.

  • È una cartella del progetto

    Un file che dice com'è fatta e accanto il codice che ci gira dentro. La macchina è il derivato: la piattaforma guarda quella cartella e la fa somigliare a quello che c'è scritto — la crea, la riavvia, ricuoce l'immagine, e cancella quelle che nessun file dichiara più.

  • Dentro ci gira quello che vuoi

    Un linguaggio che non è quello dell'applicazione, un programma che deve stare in ascolto, una libreria che vuole essere installata sul sistema. La ricetta dell'immagine è una lista di pacchetti, e la cuoce la piattaforma.

  • E parla col tuo progetto

    La macchina riceve una credenziale sua e da lì raggiunge i dati del progetto, i documenti privati e la verifica degli accessi. Nessuna chiave da inventare, nessun indirizzo da tenere aggiornato: se rinomini il progetto, la macchina lo scopre da sé.

  • Con un disco che sopravvive

    Quello che scrivi sul volume resta fra un riavvio e l'altro. Tutto il resto no — ed è la cosa che sorprende, quindi la piattaforma lo dice sulla card della macchina invece di lasciartelo scoprire riavviando.

Il sonno

Dorme quando nessuno la usa, e si sveglia da sé

Passati i minuti che dici tu senza che nessuno le parli, la macchina si addormenta. Alla prima connessione si risveglia in un paio di secondi — chi sta bussando aspetta quello, e non si accorge di niente. Non è uno sconto: è che il tempo in cui non serve non esiste.

Processori

Condivisi: costano poco e bastano per quasi tutto — un servizio che risponde, un lavoro che gira ogni tanto.

Quanti
Memoriada 512 MB a 4 GB, a passi di 256 MB
2 GB
Quanto serve al giornoore in cui qualcuno le parla
Quanto sta sveglia
90ore al mese, su 730

Si addormenta da sé quando nessuno le parla e si risveglia alla prima connessione, in un paio di secondi. Il tempo in cui non serve non lo paghi: è il sonno, non uno sconto.

prod/vms/render/vm.json
{
  "region": "fra",
  "size": {
    "cpuKind": "shared",
    "cpus": 2,
    "memoryMb": 2048
  },
  "diskGb": 10,
  "sleep": {
    "enabled": true,
    "afterMin": 3
  }
}

Il manifesto qui accanto è esattamente quello che finisce nel progetto. Cambiare il sonno non riavvia la macchina: è una riga del registro, non una parte della sua configurazione.

Le porte

Cosa si raggiunge — ed è anche il firewall

Le porte non sono una configurazione di rete: sono l'elenco di cosa la macchina offre. Dichiararne una la apre; non dichiararla la chiude. E per ognuna si dice chi può bussare.

Il web

Una porta HTTP e la macchina risponde su un suo indirizzo, col certificato già a posto.

Le connessioni grezze

Un server di gioco, un protocollo tuo: una porta TCP o UDP, e la piattaforma te ne assegna una pubblica.

L'indirizzo nudo

Se il tuo protocollo lo prevede, la piattaforma pubblica il record che fa bastare l'indirizzo senza la porta scritta a mano.

Ed è anche il firewall

Quello che non è dichiarato non si raggiunge. Non c'è una seconda schermata di regole da tenere allineata: l'elenco delle porte è l'elenco di cosa esiste.

I segreti non stanno nel manifesto

Nel file ci sono i NOMI; i valori stanno fra i segreti del progetto e arrivano nell'ambiente della macchina. Il manifesto si può guardare, mostrare e mettere in un backup senza pensarci.

E il codice può stare nell'immagine

Cotto dentro, con le sue dipendenze già pronte: la macchina si risveglia e c'è già tutto, senza ritirare niente e senza compilare all'avvio.

Cosa guardi

Sei viste sulla stessa macchina

Una macchina è la cosa più opaca che un progetto può avere: gira da sola, da un'altra parte, e quando non risponde non lo dice. Queste sei viste sono la risposta a quello.

Panoramica

Com'è fatta, con cosa parte, chi la raggiunge, quanto costa l'ora.

Consumi

Processore, memoria e quota rubata dal vicino, con il consiglio se la taglia è giusta.

Impostazioni

Tutto il manifesto, per moduli, senza passare dal codice.

Terminale

Un comando alla volta, con la sua uscita. La macchina si sveglia per eseguirlo.

Log

Quello che dice il processo, e cosa le è successo — dove «uccisa per memoria» è scritto così, non come un numero.

Codice

Il manifesto e i file della macchina, nell'editor del progetto.

studio.spelltech.cloud
La sezione VM dello Studio: la griglia delle card delle macchine, con il pallino di stato (accesa / dorme / spenta), la taglia, la pastiglia del disco e i controlli in fondo alla card. In testa la spesa del mese.
Ingrandisci
La sezione VM dello Studio: la griglia delle card delle macchine, con il pallino di stato (accesa / dorme / spenta), la taglia, la pastiglia del disco e i controlli in fondo alla card. In testa la spesa del mese.

Lo stato, in un pallino

Accesa, si sta accendendo, dorme, spenta — che è anche la risposta a «sto pagando o no».

Il consiglio sulla taglia

Le misure vengono dal fornitore, non da un programma dentro la macchina, e diventano un verdetto: va bene, è troppo grande, è troppo piccola.

E la storia del conto

Quanto è costata mese per mese, e dove sta andando questo.

Dentro una macchina

E il manifesto si compila a mano, ma non si scrive

Aprendo una macchina, «Impostazioni» è il suo `vm.json` diviso per moduli: la taglia coi processori e la memoria, il sonno con dopo quanto silenzio, il disco, le porte, i segreti. Ogni riquadro dice anche cosa costa quella scelta — la taglia porta la tariffa oraria da sveglia e da sempre accesa, e il sonno dice quanto sono le ore in cui non la usa nessuno.

studio.spelltech.cloud
La vista Impostazioni di una singola macchina: La taglia (processori condivisi/dedicati, quanti, memoria) col consiglio in cima e la tabella del costo, Il sonno (si addormenta da sola / resta sempre accesa e dopo quanto silenzio), Il disco.
Ingrandisci
La vista Impostazioni di una singola macchina: La taglia (processori condivisi/dedicati, quanti, memoria) col consiglio in cima e la tabella del costo, Il sonno (si addormenta da sola / resta sempre accesa e dopo quanto silenzio), Il disco.

È la stessa macchina di prima, aperta. Il file esiste ed è nel progetto — questa schermata lo scrive al posto tuo, e la sezione Codice te lo fa vedere com'è.

Le carte in tavola

A cosa NON serve una macchina

Offrirla come risposta a tutto è il modo più veloce di far spendere male: due casi in cui la strada giusta è un'altra.

  • Non è dove si compila

    Compilare su una macchina vuol dire pagare un computer sveglio mentre compila, dimensionarlo sul momento più grasso invece che sul servizio, e perdere la catena di strumenti a ogni riavvio. Quello che produce un pacchetto sta in un repository, e lo costruiscono i runner di GitHub.

  • E non serve per l'applicazione

    Le azioni, i lavori periodici e le code del progetto girano già sulla piattaforma, senza che tu accenda niente. Una macchina serve quando quello che devi far girare non è un'azione: un processo che sta in ascolto, un programma di qualcun altro, un mondo da tenere in piedi.

Dove si incontrano

E il codice del progetto le parla

Dalla parte dell'applicazione una macchina è un oggetto come gli altri: si elenca, si accende, le si manda un comando, si scarica un file da lei. Quindi il tuo progetto può decidere quando accenderla, cosa farle fare e cosa farsi restituire — e chi lo scrive è lo stesso agente che scrive il resto.

Si parte gratis

Accendine una, e lasciala dormire.

Una macchina si crea in un minuto e si distrugge in uno. Quello che non serve non resta accosto a consumare.