Processi di Runtime

Sono i processi necessari per l’applicazione. Quando si aggiunge un’applicazione, se non si specifica il comando di avvio del processo web, Kinsta cerca di rilevare automaticamente il comando di avvio richiesto durante la prima distribuzione. Ad esempio, il comando di avvio per un’applicazione Node.js può essere npm start o yarn start. Questo non può essere rimosso e si può avere un solo processo web per applicazione.

È anche possibile modificare e definire i propri comandi in MyKinsta nella sezione Processi dell’applicazione. Un esempio è disponibile nella nostra Distribuzione di esempio.

Oltre al processo web, è possibile aggiungere processi in background/worker. Non c’è limite al numero di processi che si possono aggiungere; tuttavia, ogni processo, per essere eseguito, richiede almeno un pod.

Si possono modificare le dimensioni del pod (scalatura verticale) e cambiare il numero di pod in esecuzione contemporaneamente (scalatura orizzontale).

  • Il vertical scaling è ottimo per dare ai pod più potenza per completare attività ad alta intensità di risorse.
  • Lo scaling orizzontale è ottimo per la resilienza e il bilanciamento del carico per le applicazioni che elaborano molte richieste. Ad esempio, è possibile eseguire tre versioni dello stesso pod. La tecnologia sottostante indirizza le richieste a uno dei tre pod, distribuendo di fatto il carico tra di essi. Se uno dei tre pod diventa instabile, le richieste verranno indirizzate agli altri due fino a quando il terzo pod non sarà di nuovo sano.
Processi di runtime dell'applicazione e processo di build in MyKinsta.
Processi di runtime dell’applicazione e processo di build in MyKinsta.

Definizione dei Processi in MyKinsta

Quando si distribuisce un’applicazione, come descritto in precedenza, è possibile impostare un comando di processo web o lasciare che Kinsta imposti il comando predefinito. È anche possibile modificare e definire i propri comandi in MyKinsta nella sezione Processi dell’applicazione. Se ne può vedere un esempio nella nostra distribuzione di esempio.

Per aggiungere un nuovo processo, basta cliccare su Crea processo e compilare i campi come segue:

  • Nome: Il nome del processo, ad esempio “Worker”.
  • Tipo: Lavoro in background.
  • Comando di avvio: Il comando richiesto per avviare il processo, ad esempio npm run [process].
  • Dimensione del Pod: Scegliere la CPU e la RAM dedicate al processo.
  • Istanze: Il numero di istanze necessarie, fino a un massimo di cinque. Ogni istanza rappresenta un pod e le istanze utilizzano tutte la stessa dimensione del pod. Non è possibile definire una dimensione del pod diversa per ogni istanza.

È possibile modificare i dettagli di qualsiasi processo, compresa la dimensione del Pod, in qualsiasi momento. Tutte le modifiche apportate, ad eccezione del nome, attivano automaticamente il processo di rollout dell’applicazione.

Processo di Build

Mostra la build machine utilizzata dal processo di build. Cliccando su Aggiorna build, si possono modificare le risorse di build utilizzate per il processo.

Definire i Processi in un Procfile

I Procfile definiscono i processi del codice dell’applicazione e devono essere inseriti nel proprio repository. Un Procfile contiene un processo per riga nel seguente formato:

process_name: command

Ad esempio, per eseguire un’applicazione Laravel, è possibile utilizzare il seguente file:

web: php artisan serve --host 0.0.0.0 --port 8080

Se si sta utilizzando un Procfile, bisogna definire un processo chiamato web per assicurarsi che il container soddisfi le richieste web.

Probabilmente in futuro deprecheremo l’uso dei Procfile, in quanto preferiamo un modo più standardizzato di descrivere le distribuzioni, possibile attraverso i file JSON o YML