IBM Cloud Docs
Distribuzione delle applicazioni Cloud Foundry in Code Engine: Introduzione

Distribuzione delle applicazioni Cloud Foundry in Code Engine: Introduzione

Benvenuto agli utenti Cloud Foundry in IBM Cloud® Code Engine.

Code Engine è una piattaforma completamente gestita, senza server che esegue i tuoi carichi di lavoro inseriti nel contenitore. Code Engine crea anche le immagini del contenitore per te dal codice sorgente. L'esperienza Code Engine è progettata in modo che tu possa concentrarti sulla scrittura del codice e non sull'infrastruttura necessaria per ospitarla.

Code Engine è stato progettato con i seguenti obiettivi chiave in mente.

  • Concentrati sul tuo codice. Code Engine fornisce un'esperienza di sviluppo semplificata. Non è necessario conoscere o gestire l'infrastruttura sottostante.
  • Supporto delle caratteristiche di runtime moderne, come il ridimensionamento automatico, il ridimensionamento a zero quando inattivo e l'integrazione completa con i servizi gestiti e la sicurezza.
  • Supporta tutte le tue applicazioni basate su cloud - native, sia che si tratti di applicazioni a 12 fattori, funzioni guidate dagli eventi o lavori batch run - to - completion. Se può essere inserito in un contenitore, Code Engine può eseguirlo.
  • Paga solo le risorse che utilizzi effettivamente.

Se vieni da uno sfondo Cloud Foundry, molte di queste funzioni sono familiari. Tuttavia, Code Engine include anche delle nuove funzionalità che ti consentono di andare oltre anche le offerte di Cloud Foundry, incluse applicazioni che possono scalare a zero e non comportano alcun addebito. Quindi, una volta superata la differenza sintattica dell'esperienza utente, tu e le tue applicazioni vi sentirete come a casa in Code Engine.

Distribuiamo una semplice applicazione hello world per vedere come funziona Code Engine. Segui la procedura per creare un progetto, creare il tuo codice e distribuire la tua app.

Esamina i termini diCloud Foundry e Code Engine prima di avviare questa esercitazione.

Obiettivi

  • Impara le somiglianze tra Code Engine e Cloud Foundry.
  • Impara il processo generale di distribuzione delle applicazioni in Code Engine.
  • Distribuisci un'applicazione dal codice sul tuo sistema locale con Code Engine.

Prerequisiti

Prima di iniziare a utilizzare Code Engine, devi configurare il tuo account e installare la CLI.

  • Tutti gli utenti Code Engine devono avere un account Pagamento a consumo.

  • Mentre puoi utilizzare Code Engine tramite la console, gli esempi in questa documentazione si concentrano sulla riga di comando. Pertanto, devi installare la CLI Code Engine.

    ibmcloud plugin install code-engine
    

    Per ulteriori informazioni, vedi Configurazione della CLI Code Engine. Per ulteriori informazioni sulla CLI, vedi Riferimento alla CLICode Engine.

Accedi a IBM Cloud

Attieniti alla seguente procedura per accedere al tuo account IBM Cloud e specificare un gruppo di risorse.

  1. Accedi alla CLI IBM Cloud.

    ibmcloud login
    
  2. Specifica un gruppo di risorse immettendo il seguente comando: Per ottenere un elenco dei tuoi gruppi di risorse, esegui ibmcloud resource groups.

    ibmcloud target -g <resource_group>
    

    Output di esempio

    Targeted resource group default
    

Creazione di un progetto

Un "progetto" Code Engine è simile a un "spazio" Cloud Foundry in quanto raggruppa i workload correlati in una raccolta logica significativa per lo sviluppatore. È possibile raggruppare i carichi di lavoro in diversi progetti in base a qualsiasi criterio che abbia senso per l'utente, ad esempio, la struttura dell'organizzazione aziendale, le dipendenze tra i carichi di lavoro o gli ambienti di sviluppo e di test e di produzione. Tieni presente che i carichi di lavoro in un singolo progetto condividono una rete privata e sono isolati entro il limite di sicurezza del progetto. Tutti i carichi di lavoro all'interno di un progetto possono comunicare liberamente tra loro senza preoccuparsi di essere visti da carichi di lavoro esterni al cluster. Se i carichi di lavoro in diversi progetti desiderano comunicare tra loro, la comunicazione deve utilizzare Internet o una rete privata IBM interna. Per ulteriori informazioni, vedi Opzioni per la visibilità per un'applicazione Code Engine.

Crea un progetto in Code Engine denominato sample.

ibmcloud ce project create --name sample

Output di esempio

Creating project 'sample'...
ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'.
Waiting for project 'sample' to be active...
Now selecting project 'sample'.
OK

Si noti che il progetto è selezionato anche per il contesto, quindi tutti i comandi successivi relativi all'applicazione rientrano nell'ambito di questo nuovo progetto sample.

Creazione di una directory e di un codice sorgente

  1. Creare una directory sulla workstation locale denominata myapp e navigare in essa. In questa directory, salva tutti i file necessari per creare l'immagine e per eseguire la tua applicazione.

    mkdir myapp && cd myapp
    
  2. Creare un file denominato server.js e copiare il seguente codice sorgente in esso.

    const http = require('http');
    
    
    http.createServer(function (request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
      response.end( "Hello world\n" );
    }).listen(8080);
    

    Questo esempio utilizza Node.js. Puoi sostituire il codice da qualsiasi runtime supportato.

Distribuzione dell'applicazione

Invia il tuo codice a Code Engine utilizzando il comando application create. È necessario fornire un nome per l'applicazione e l'ubicazione del codice origine. Il seguente esempio crea un'applicazione denominata myapp che utilizza la strategia di buildpack e fornisce l'ubicazione per il codice sorgente nella directory corrente (.).

ibmcloud ce app create --name myapp --build-source . --strategy buildpacks

Output di esempio

Creating application 'myapp'...
Packaging files to upload from source path '.'...
Submitting build run 'myapp-run-220999-210706331'...
Creating image 'private.us.icr.io/ce--6ef04-khxrbwa0lci/app-myapp:220418-0207-askql'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220000-210706331' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK

https://myapp.abcdbwa0lci.us-south.codeengine.appdomain.cloud

E questo è tutto. Ora si dispone di un'applicazione rivolta a Internet. Il codice nell'applicazione stessa è uguale a quello utilizzato per un'applicazione Cloud Foundry, sono solo i comandi Code Engine che sono leggermente differenti.

Diamo un'occhiata più a fondo al precedente comando app create. Nota che l'output del comando app create fornisce informazioni sull'avanzamento dell'esecuzione della build prima che l'applicazione venga creata e distribuita.

  1. Code Engine riceve una richiesta di creare una applicazione dal codice sorgente (invece di eseguire il pull direttamente da una immagine).
  2. Code Engine controlla un ID servizio IAM e una chiave API associati al progetto selezionato. Questo ID servizio deve essere autorizzato a leggere e scrivere in IBM Cloud Container Registry. Se non esiste alcun ID servizio, Code Engine ne crea uno per te. Nota che questo ID servizio viene utilizzato per le successive richieste di build Code Engine eseguite dallo stesso progetto.
  3. Questo esempio crea il codice da un'origine locale (--build-source .). Il codice di origine viene compresso in un file di archivio e caricato in uno spazio dei nomi gestito all'interno dell'istanza IBM Cloud Container Registry nel tuo account. Nota che puoi indicare come destinazione solo IBM Cloud Container Registry per le tue build locali. Per ulteriori informazioni su IBM Container Registry, incluse le informazioni sui limiti di quota e sull'accesso, consulta Introduzione a IBM Cloud Container Registry.
  4. Code Engine crea il tuo codice sorgente in un'immagine. L'immagine di origine viene creata nello stesso spazio dei nomi del file di archivio di origine.
  5. Una volta completata la creazione, la tua applicazione viene distribuita. Puoi accedere alla tua applicazione dall' URLfornito.

Con Code Engine, ottieni automaticamente molte delle stesse funzioni di Cloud Foundry, come il ridimensionamento automatico e il roll-out blue-green degli aggiornamenti, ma potrai anche usufruire dei benefici di funzioni più recenti come il ridimensionamento a zero, assicurandoti che non ti venga addebitato se la tua applicazione non è attiva.

Vuoi saperne di più sulle tue opzioni per la creazione del codice sorgente? Consultare application create e i comandi job create.

Vuoi saperne di più su applicazioni e lavori? Vedi Gestione delle applicazioni in Code Engine e Gestione di lavori e esecuzioni di lavori.

Ripulisci

Una volta terminata questa esercitazione, è possibile ripulire le risorse create con i seguenti comandi.

Elimina la tua applicazione

ibmcloud ce app delete --name myapp

Quando elimini la tua applicazione, vengono eliminati anche i file di build associati.

Infine, elimina le immagini che la build ha creato da IBM Cloud Container Registry.

  1. Passa a Registry nella console IBM Cloud.
  2. Trova l'archivio e l'immagine associati alla tua applicazione ricercando il tuo nome applicazione.
  3. Selezionare l'archivio e l'immagine ed eliminare.

Passi successivi

  1. Stai iniziando la migrazione? Controlla Introduzione.
  2. Confronta la terminologia Cloud Foundry con Code Engine.
  3. Distribuzione delle applicazioni Cloud Foundry in Code Engine: Introduzione (pagina corrente)
  4. L'applicazione utilizza i bind di servizio? Controlla Migrating your service bindings.
  5. Informazioni su scalabilità e gestione del traffico.
  6. Trovare Code Engine equivalenti ai comandi Cloud Foundry.
  7. Aggiungi un' associazione dominio personalizzata dalla console.
  8. Hai ancora altre domande? Prova le applicazioni Migrating Cloud Foundry a Code Engine FAQ.

Altre informazioni