Introduzione a IBM Cloud Code Engine

IBM Cloud® Code Engine è una piattaforma serverless completamente gestita che esegue i vostri carichi di lavoro containerizzati, comprese le applicazioni web, i microservizi, le funzioni event-driven o i lavori batch. Code Engine costruisce persino le immagini dei container per voi dal vostro codice sorgente. Tutti questi carichi di lavoro possono lavorare insieme senza problemi perché sono tutti ospitati nella stessa infrastruttura Kubernetes. L'esperienza offerta da Code Engine è pensata per consentirti di concentrarti sulla scrittura del codice, senza doverti preoccupare dell'infrastruttura necessaria per ospitarlo.

Per prima cosa, imparate a conoscere alcuni termini chiave di Code Engine e poi iniziate con una delle seguenti opzioni.

Cosa sono i progetti, le applicazioni, i lavori, le funzioni e le flotte di Code Engine?

Prima di iniziare, è bene familiarizzare con alcuni termini chiave di Code Engine.

Code Engine Termini
Termine Descrizione
Progetto Un progetto è un raggruppamento di entità di Code Engine, come applicazioni, lavori e build. I progetti sono utilizzati per gestire le risorse e fornire l'accesso alle loro entità.
Applicazione Un'applicazione, o app, esegue il vostro codice per servire le richieste di HTTP. Un'applicazione dispone di un sito URL per le richieste in arrivo. Il numero di istanze in esecuzione di un'applicazione viene scalato automaticamente verso l'alto o verso il basso (fino a zero) in base al carico di lavoro in arrivo.
Genera Una compilazione, o compilazione dell'immagine, è un meccanismo che si può usare per creare un'immagine del contenitore dal codice sorgente. Code Engine supporta la compilazione da un file Docker o da Cloud Native Buildpacks.
Funzione Una funzione è uno snippet di codice stateless che esegue compiti in risposta a una richiesta di HTTP.
Lavoro Un lavoro esegue in parallelo una o più istanze del codice eseguibile. A differenza delle applicazioni, che includono un sito HTTP Server per gestire le richieste in arrivo, i lavori sono progettati per essere eseguiti una sola volta e poi terminati.
Flotta Una flotta, detta anche flotta serverless, esegue una o più istanze di codice utente per completare una serie di compiti specifici. Le flotte sono progettate per affrontare carichi di lavoro elevati e pesanti per i computer. A differenza dei lavori, i parchi sono single tenant, implementano l'accodamento dinamico dei compiti e forniscono un controllo completo sulla configurazione del profilo della macchina. Per ulteriori informazioni, vedere Qual è la differenza tra posti di lavoro e flotte?

Per ulteriori informazioni sui termini, consultare la terminologia di Code Engine.

Non sapete cosa scegliere? Vedere Pianificazione per Code Engine.

Come si confrontano app, lavori, funzioni e flotte?

Confronto tra le applicazioni, i lavori, le funzioni e le flotte di Code Engine
Caratteristica Applicazione Lavoro Funzione Flotta
Tempo di esecuzione (durata) Lunga durata (10 minuti per richiesta) Lunga durata (fino a 24 ore) Breve durata (2 minuti o meno) Lunga durata (da pochi minuti a settimane)
Latenza di avvio Medio Inizio programmato Basso Basso
Risoluzione Esecuzione continua Esecuzione a completamento Esecuzione a completamento Esecuzione a completamento
Richiamo Su richiesta o in funzione permanente Pianificato Su richiesta, istantaneo Pianificato
Modello di programmazione Creazione ed esecuzione basate su container Creazione ed esecuzione basate su container File di codice sorgente specifici per la lingua e metadati di dipendenza Creazione ed esecuzione basate su container
Parallelismo Esecuzione parallela, flessibile Esecuzione parallela medio-bassa Esecuzione parallela elevata Esecuzione parallela e accodamento elevati
Ridimensionamento incrementale In base al numero di richieste In base alla definizione del carico di lavoro In base agli eventi o alle invocazioni dirette In base al numero di attività e di istanze concorrenti
Isolamento Multi-tenant Multi-tenant Multi-tenant Tenant singolo
Supporto GPU No No No
Controllo della configurazione della macchina Nessun controllo Nessun controllo Nessun controllo Controllo completo
Connettività VPC Attraverso il Sentiero Privato Attraverso il Sentiero Privato Attraverso il Sentiero Privato Nativo (tramite pool di sottoreti)
Ottimizzato per Carico di lavoro di lunga durata e altamente complesso e scale-out on-demand Carichi di lavoro pianificati o programmati con elevate richieste di risorse Tempo di avvio e rapida scalabilità Carichi di lavoro su larga scala e ad alta intensità di calcolo

Per ulteriori informazioni, vedere Pianificazione di Code Engine.

Distribuzione della prima applicazione Code Engine

Create la vostra prima applicazione Code Engine utilizzando l'immagine icr.io/codeengine/helloworld.

  1. Aprire la Code Engine console.
  2. Selezionare Avvia creazione.
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Si noti che è necessario avere un progetto selezionato per distribuire un'applicazione.
  4. Seleziona " Applicazione ".
  5. Inserisci un nome per l'applicazione, ad esempio " myapp". Assegna alla tua applicazione un nome che sia univoco all'interno del progetto.
  6. Selezionare " Usa un'immagine container esistente " e specificare icr.io/codeengine/helloworld come riferimento all'immagine. Per questo esempio, non è necessario modificare i valori predefiniti. Per ulteriori informazioni sul codice utilizzato per questo esempio, vedere helloworld.
  7. Fai clic su Crea.
  8. Dopo che lo stato dell'applicazione è stato modificato in Pronto, è possibile testare l'applicazione. Fare clic su Applicazione di prova e quindi su Invia richiesta nel riquadro Applicazione di prova. Per aprire l'applicazione in una pagina web, fare clic su Applicazione URL.

Output di esempio

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables

Avete distribuito la vostra prima applicazione su Code Engine e l'avete testata. Consultate l'esercitazione: Distribuire le applicazioni o Lavorare con le applicazioni in Code Engine per provare altre opzioni per le applicazioni.

Eseguire il primo processo " Code Engine "

Create ed eseguite il vostro primo lavoro Code Engine utilizzando l'immagine icr.io/codeengine/helloworld.

  1. Aprire la Code Engine console.
  2. Selezionare Avvia creazione.
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Si noti che per creare un lavoro è necessario avere un progetto selezionato.
  4. Selezionare il lavoro.
  5. Inserisci un nome per il processo, ad esempio “ myjob ”. Assegna al tuo lavoro un nome che sia univoco all'interno del progetto.
  6. Specificare icr.io/codeengine/helloworld per il riferimento dell'immagine. Per questo esempio, non è necessario modificare i valori predefiniti. Per ulteriori informazioni sul codice utilizzato per questo esempio, vedere helloworld.
  7. Fai clic su Crea.
  8. Dalla pagina del lavoro, fare clic su Invia lavoro per inviare un lavoro basato sulla configurazione corrente.
  9. Nel riquadro Invia lavoro, accettare tutti i valori predefiniti e fare clic su Invia lavoro per eseguire il lavoro.

Quando la registrazione è abilitata, nei registri viene visualizzato il seguente esempio. Per informazioni sull'esecuzione dei lavori con la registrazione abilitata, vedere Visualizzazione dei registri.

Esempio di output dall'istanza di registrazione

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables

È stato creato ed eseguito il lavoro dalla console. Consultate l'esercitazione: Esecuzione di lavori o Esecuzione di lavori in Code Engine per provare altre opzioni per i lavori.

Esecuzione della prima funzione

Create ed eseguite la vostra prima funzione Code Engine con il codice della funzione di esempio.

  1. Aprire la Code Engine console.
  2. Selezionare Avvia creazione.
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Si noti che per creare una funzione è necessario avere un progetto selezionato.
  4. Seleziona " Funzione ".
  5. Inserisci un nome per la funzione. Assegna alla tua funzione un nome che sia univoco all'interno del progetto.
  6. Seleziona " Node.js " 22
  7. Fai clic su Crea. La funzione viene creata con un codice di esempio. È possibile modificare questo codice nella pagina Funzione -> Configurazione.
  8. Fare clic sulla funzione Test e quindi su Invia richiesta nel riquadro della funzione Test. Per aprire la funzione in una pagina web, fare clic sulla funzione URL.

Output di esempio

{
  "args": {
    "__ce_headers": {
      "Accept-Encoding": "gzip, deflate, br",
      "User-Agent": "got (https://github.com/sindresorhus/got)",
      "X-Request-Id": "12340a7b-11c0-4de3-f16b-a6abc27f4146"
    },
    "__ce_method": "GET",
    "__ce_path": "/"
  },
  "env": {
    "HOME": "/root",
    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin",
    "PWD": "/nodejsAction",
    "SHLVL": "1",
    "_": "/usr/local/lib/nodejs/bin/node",
    "__OW_ALLOW_CONCURRENT": "true",
    "container": "oci"
  }
}

Avete distribuito la vostra prima funzione su Code Engine e l'avete testata. Andare alla sezione Esecuzione di una funzione da un'origine locale o Lavorare con le funzioni per provare altre opzioni per le funzioni.

Gestire la prima flotta

Create ed eseguite la vostra prima flotta Code Engine utilizzando l'immagine icr.io/codeengine/helloworld.

  1. Assicuratevi di aver completato le fasi di preparazione necessarie per gestire una flotta.
  2. Aprire la Code Engine console.
  3. Selezionare Avvia creazione.
  4. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Si noti che è necessario avere un progetto selezionato per eseguire un parco macchine.
  5. Selezionare la flotta.
  6. Inserisci un nome per la flotta. Utilizza un nome che sia univoco per tutte le flotte del progetto.
  7. Specificare icr.io/codeengine/helloworld per il riferimento dell'immagine. Per questo esempio, non è necessario modificare i valori predefiniti. Per ulteriori informazioni sul codice utilizzato per questo esempio, vedere helloworld.
  8. Fare clic su Crea.

Quando la registrazione è abilitata, nei registri viene visualizzato il seguente esempio. Per informazioni sulla gestione delle flotte con i registri abilitati, vedere Visualizzazione dei registri della flotta.

Esempio di output dall'istanza di registrazione

Hello from helloworld! I'm a task of fleet: fleet-abcdef1234! Task Index: 4, Task ID: 2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f
Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.eu-de.codeengine.cloud.ibm.com
CE_CPU=1
CE_DOMAIN=eu-de.codeengine.appdomain.cloud
CE_FLEET_ID=1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e
CE_FLEET_NAME=fleet-abcdef1234
...
z=Set env var 'SHOW' to see all variables

Avete creato e gestito la vostra flotta dalla console. Vai alla sezione Esecuzione di una flotta per provare altre opzioni per le flotte.

Creare la prima immagine del contenitore dal codice sorgente

Creare ed eseguire la prima build di Code Engine e quindi distribuire l'immagine del contenitore in un'applicazione.

Code Engine può inviare automaticamente le immagini a uno spazio dei nomi Container Registry nel vostro account. Può anche creare uno spazio dei nomi per voi. Per eseguire il push delle immagini a un altro account Container Registry o a un account privato di Docker Hub, vedere Aggiunta dell'accesso a un registro di container privato.

  1. Aprire la Code Engine console.
  2. Selezionare Avvia creazione.
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Si noti che è necessario avere un progetto selezionato per distribuire un'applicazione.
  4. Seleziona " Applicazione ".
  5. Inserisci un nome per l'applicazione. Assegna alla tua applicazione un nome che sia univoco all'interno del progetto.
  6. Seleziona " Crea immagine del container dal codice sorgente ".
  7. Fare clic su Specifica dettagli di costruzione.
  8. Accettare le impostazioni predefinite per ciascuna pagina, facendo clic su Avanti e poi su Fine.
  9. Fai clic su Crea.

Dopo l'invio della compilazione, l'immagine del contenitore costruito viene inviata a Container Registry e l'applicazione preleva l'immagine e la distribuisce per conto dell'utente. Dopo che lo stato dell'applicazione è stato modificato in Pronto, è possibile provarla. Fare clic su Applicazione di prova e quindi su Invia richiesta nel riquadro Applicazione di prova. Per aprire l'applicazione in una pagina web, fare clic su Applicazione URL.

Output di esempio

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

Si invia il codice sorgente a Code Engine e si crea un'immagine del contenitore che viene poi distribuita in un'applicazione, il tutto da un'unica interfaccia.

Andate a Creare un'immagine del contenitore per esplorare e provare altre opzioni di creazione.

I prossimi passi per Code Engine

Per saperne di più sull'esecuzione di queste attività di Code Engine dalla console o con il sito Code Engine CLI.

Cercate altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.