IBM Cloud Docs
Migrazione di IBM Cloud Functions a Code Engine

Migrazione di IBM Cloud Functions a Code Engine

IBM Cloud Functions è stata la soluzione Functions-as-a-Service consigliata da IBM, basata sul cloud pubblico di IBM. Disponibile in sei data center in tutto il mondo, IBM Cloud Functions serve le esigenze dei clienti fin dalla sua nascita.

Tuttavia, l'aumento delle richieste e dei requisiti aggiuntivi che i nostri clienti hanno espresso, ci portano a innovare costantemente, migliorare e far evolvere le tecnologie e le offerte IBM Functions - as - a - Service. Di conseguenza, e per soddisfare queste esigenze, IBM sta aggiungendo la tecnologia Functions - as - a - Service a IBM Cloud® Code Engine. Per le limitazioni quando si utilizzano funzioni in Code Engine, consultare Limitazioni delle funzioni.

Confronto tra Code Engine e Cloud Functions

Il servizio SOC2, ISO32k, BSI C5 e Financial Services Cloud certificato IBM Cloud Code Engine è disponibile in nove (9) regioni. Come piattaforma completamente gestita, senza server, esegue una vasta gamma di workload dei clienti come contenitori, lavori batch, applicazioni e funzioni. È possibile accedere a Code Engine nel IBM cloud pubblico.

Le nuove funzionalità Functions - as - a - Service consentono ai clienti di Code Engine di eseguire carichi di lavoro di tipo run - to - completion di breve durata. Sia che siate clienti di Cloud Functions sia che siate nuovi a Functions-as-a-Service, potete saperne di più su esecuzione di funzioni in IBM Cloud Code Engine. Puoi anche fare un'esercitazione.

Functions - as - a - Service in Code Engine offre una proposta di valore server - less migliorata in termini di esperienza utente, modelli di utilizzo, sicurezza e TCO (Total Cost of Ownership).

Le funzioni in Code Engine semplificano la tua esperienza utente, con le seguenti opzioni.

  • Si integra completamente con il flusso di sviluppo e le funzioni Code Engine.
  • Include linguaggi di programmazione comuni e fornisce runtime gestiti ottimizzati.
  • Offre l'esecuzione del codice on-demand con bassa latenza di avvio a freddo e scalabilità rapida.
  • Offre un meccanismo di invocazione di funzioni basato su URL URL con un supporto ricco di funzionalità per le applicazioni Web.
  • Funzionalità di sicurezza supportate come l'accesso a repository e registri privati.

Con le funzioni di IBM Cloud Code Engine, potete utilizzare il vostro linguaggio di programmazione preferito per scrivere codice leggero che esegue frammenti di logica aziendale in modo scalabile. È possibile eseguire codice in risposta alle richieste HTTP delle applicazioni o in risposta ai servizi IBM Cloud e agli eventi esterni.

Invece di eseguire un'immagine del contenitore, Code Engine esegue un bundle di codici. Un bundle di codici è una raccolta di file che rappresenta il codice della funzione. Questo bundle di codice viene inserito nel contenitore di runtime. Il tuo bundle di codice è creato da Code Engine ed è memorizzato nel registro del contenitore o in linea con la funzione. Un bundle di codice non è un'immagine contenitore standard OCI (Open Container Initiative).

Funzionalità chiave

Quando migrate i vostri carichi di lavoro basati su IBM Cloud Functions, considerate le seguenti funzionalità e strategie.

  • Supporta un elenco in evoluzione di runtime gestiti. Per ulteriori informazioni, vedi Runtime.

    • Node.js Release Versione 18
    • Python Release Versione 3.11
  • Fornisce combinazioni di CPU e memoria ottimizzate.

Inoltre, Code Engine include Limiti funzione e quote progetto.

Quale entità Code Engine è la migliore per il mio carico di lavoro?

Code Engine le applicazioni servono compiti di calcolo complessi e di lunga durata su un'infrastruttura di calcolo scalabile.

I lavori Code Engine vengono utilizzati per carichi di lavoro pianificati a basso parallelismo che possono richiedere risorse elevate.

Le funzioni Code Engine possono eseguire trasformazioni di dati semplici e di breve durata come risultati di eventi esterni. Possono anche servire il contenuto per elementi di dati dinamici sulle pagine Web. In generale, le funzioni possono eseguire attività parallele scalabili e di breve durata che devono essere completate in un tempo definito o breve.

Le funzioni Code Engine offrono un modello di programmazione semplice che utilizza frammenti di codice sorgente di linguaggi di programmazione supportati. Questi frammenti di codice vengono utilizzati "inline" in una definizione di funzione senza la necessità di compilare prima il codice.

Confronto tra applicazioni, lavori e funzioni di Code Engine
Caratteristica Applicazione Lavoro Funzione
Tempo di esecuzione (durata) Esecuzione prolungata (10 minuti per richiesta) Lunga durata (fino a 24 ore) Short - running (2 minuti o meno)
Latenza di avvio Medio Inizio pianificato Basso
Risoluzione Esegui - continuamente Esegui fino al completamento Esegui fino al completamento
Richiamo Su richiesta o in esecuzione permanente Pianificato Su richiesta, istantaneo
Modello di programmazione Esecuzione e creazione basata sui contenitori Esecuzione e creazione basata sui contenitori File di codice sorgente specifici della lingua e metadati di dipendenza
Parallelismo Esecuzione parallela, flessibile Esecuzione parallela da bassa a media Esecuzione parallela elevata
Ridimensionamento incrementale Basato sul numero di richieste Basato sulla definizione del carico di lavoro Basato su eventi o chiamate dirette
Ottimizzato per Workload di lunga durata, estremamente complessi e scalabilità on - demand Carichi di lavoro pianificati o pianificati con elevate richieste di risorse Tempi di avvio e scalabilità rapida

Migrazione di IBM Cloud Functions Azioni a Code Engine Funzioni FAQ

Come posso elaborare un carico di massa di calcoli?

Se si elabora un caricamento di massa di calcoli che richiedono elevate risorse di CPU e memoria e devono essere terminati in meno di n ore, è possibile migrare la logica del programma in un lavoro Code Engine e pianificare i lavori da eseguire quotidianamente. Per ulteriori informazioni, consultare Gestione dei lavori e delle esecuzioni di lavori.

Ho utilizzato Cloud Function per includere elementi dinamici per la mia applicazione web. Posso passare alle funzioni Code Engine ?

È possibile convertire l'azione in una funzione Code Engine e quindi utilizzare l' URL della funzione fornita per richiamare e restituire il contenuto dinamico richiesto. Per iniziare, vedi Utilizzo delle funzioni.

Posso attivare il mio codice funzione?

Sì. Code Engine supporta i lavori cron (allarmi) per le funzioni. Altri tipi di produttori di eventi (o trigger) sono supportati solo per applicazioni e lavori. È possibile creare il codice come applicazione o lavoro, quindi aggiungere una sottoscrizione a un produttore di eventi, compresi i cron job, l'archiviazione di oggetti e i dati Event Streams (Kafka). Per ulteriori informazioni, vedi Introduzione alle sottoscrizioni.

È possibile accedere alla mia funzione tramite un URL pubblico?

Una funzione Code Engine include un URL pubblico, fornito dall'utente al momento della creazione. Puoi anche utilizzare un dominio personalizzato per la tua funzione.

Come posso proteggere le mie funzioni?

Sebbene il codice possa essere protetto in un repository Git o in un registro del contenitore, poiché l' URL della funzione è pubblico, l'autorizzazione a invocare la funzione deve essere implementata dal codice della funzione stessa.

Posso includere elementi dinamici?

Puoi includere elementi dinamici supportati da Code Engine. Ad esempio, se stai utilizzando un database Cloudant e richiami azioni Cloud Functions in base alle modifiche dei dati, non puoi migrare perché Code Engine non supporta la sottoscrizione a un database Cloudant. Puoi, tuttavia, sottoscrivere IBM Cloud Object Storage.

Posso utilizzare le sequenze per concatenare le mie funzioni?

Code Engine non include il supporto per le sequenze. Tuttavia, poiché qualsiasi funzione può essere richiamata chiamando its endpoint privato o pubblico, puoi concatenare le tue funzioni con una serie di chiamate REST. Questa logica deve essere aggiunta direttamente al codice funzione.

Posso eseguire il bind della mia funzione alle credenziali del servizio?

Sì, i bind di servizio sono supportati. Vedi Utilizzo dei bind del servizio per integrare i servizi IBM Cloud con Code Engine.

Dove posso trovare informazioni sulle mie esecuzioni di funzioni in corso e terminate Code Engine ?

Se hai creato la tua funzione dal codice sorgente, puoi visualizzare i log di build.

Altrimenti, si può usare set up IBM Cloud Logs per visualizzare i log della piattaforma, che contengono informazioni sull'invocazione della funzione (meta-informazioni) e i messaggi di log emessi dal codice della funzione.

Code Engine fornisce una specifica OpenAPI per la funzione distribuita?

No, Code Engine non genera o fornisce una specifica OpenAPI per le funzioni che distribuisci. Esistono pacchetti e strumenti disponibili per molti linguaggi di programmazione per generare una specifica OpenAPI dal codice.