Distribuire un'applicazione serverless senza evento

Oracle Functions è una piattaforma serverless, altamente scalabile e completamente gestita, costruita su Oracle Cloud Infrastructure e basata sul motore open source Fn Project. Gli sviluppatori possono utilizzarlo per scrivere e distribuire codice che garantisce valore aziendale senza preoccuparsi del provisioning o della gestione dell'infrastruttura di base. Oracle Functions è container nativo con funzioni inserite nel pacchetto come immagini dei container Docker.

Architettura

Questa architettura di riferimento richiama Oracle Functions con il servizio Oracle Cloud Infrastructure Events, che risponde automaticamente alle modifiche apportate a Oracle Cloud Infrastructure Object Storage. Il caricamento di un'immagine di esempio nello storage degli oggetti attiva il servizio Eventi, che a sua volta richiama Oracle Functions. Il progetto Fn supporta la maggior parte dei linguaggi di programmazione. Questa architettura utilizza Java nella funzione per estrarre i metadati dall'immagine caricata e memorizzarli in Oracle Cloud Infrastructure Object Storage.

Il diagramma riportato di seguito illustra questa architettura di riferimento.

Segue la descrizione di serverless-oci.png
Descrizione dell'illustrazione serverless-oci.png

serverless-oci-oracle.zip

L'architettura di Oracle Functions include i seguenti componenti:

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata contenente uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e le grandi distanze possono separarle (tra paesi o addirittura continenti).

  • Domini di disponibilità

    I domini di disponibilità sono data center indipendenti e standalone all'interno di un'area geografica. Le risorse fisiche presenti in ciascun dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, il che garantisce la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio l'alimentazione o il raffreddamento, né la rete interna del dominio di disponibilità. Pertanto, è improbabile che un errore di un dominio di disponibilità influisca sugli altri domini di disponibilità nell'area.

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile e definita dal software impostata dall'utente in un'area Oracle Cloud Infrastructure. Come le reti di data center tradizionali, le VCN offrono il controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. È possibile segmentare una VCN in subnet, che può essere definita in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono con le altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

    La funzione in questa architettura di riferimento viene distribuita in una subnet pubblica regionale.

  • Oracle Functions

    Oracle Functions consente di distribuire il codice, chiamarlo direttamente o attivarlo in risposta agli eventi. Oracle Functions viene attivato quando il servizio Eventi lo richiama, elabora l'immagine e memorizza di nuovo i metadati nello storage degli oggetti. Oracle Functions utilizza i container Docker ospitati su Oracle Cloud Infrastructure Registry.

  • Eventi

    I servizi Oracle Cloud Infrastructure emettono eventi, ovvero messaggi strutturati che indicano le modifiche delle risorse. Gli eventi includono le operazioni di creazione, lettura, aggiornamento o eliminazione (CRUD), le modifiche dello stato del ciclo di vita delle risorse e gli eventi di sistema che hanno un impatto su una risorsa. Un evento può essere emesso quando un backup termina o si verifica un errore o quando un file in un bucket di storage degli oggetti viene aggiunto, aggiornato o eliminato.

  • Memorizzazione degli oggetti

    Oracle Cloud Infrastructure Object Storage è una piattaforma di storage su scala Internet ad alte prestazioni che offre una durabilità dei dati affidabile ed economicamente vantaggiosa. Lo storage degli oggetti può memorizzare una quantità illimitata di dati non strutturati di qualsiasi tipo di contenuto, inclusi i dati analitici e i contenuti avanzati, ad esempio immagini e video. Due diversi livelli di storage affrontano la necessità di storage "hot" (Standard) ad accesso frequente e di storage "cold" (Archive) ad accesso meno frequente. Lo storage degli oggetti standard si riferisce ai dati a cui hai bisogno per accedere rapidamente, immediatamente e frequentemente. Lo storage di archivio si riferisce ai dati a cui è necessario accedere raramente o raramente, ma che devono essere conservati e conservati per lunghi periodi di tempo.

Suggerimenti

I requisiti potrebbero essere diversi dall'architettura descritta in questa sezione. Utilizzare i seguenti suggerimenti come punto di partenza.

  • VCN

    Quando crei una VCN, determina il numero di blocchi CIDR necessari e la dimensione di ogni blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Utilizzare i blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard.

    Dopo aver creato una VCN, è possibile modificare, aggiungere e rimuovere i relativi blocchi CIDR.

    Questa architettura utilizza una rete VCN pubblica per distribuire la funzione. La funzione si trova in una subnet pubblica regionale nella VCN. Puoi anche usare una VCN privata. In tal caso, è necessario utilizzare un gateway NAT per accedere a Internet.

  • Oracle Functions

    In questa architettura, la programmazione Java è stata utilizzata per sviluppare le funzioni. Poiché Fn Project supporta più linguaggi di programmazione, è possibile utilizzare il linguaggio scelto per sviluppare le funzioni e distribuirle.

  • Memorizzazione degli oggetti

    Questa architettura utilizza lo storage degli oggetti standard per caricare un'immagine e memorizzarla in modo che il servizio Eventi possa raccoglierla quando viene creato l'oggetto. Lo storage degli oggetti memorizza i metadati relativi all'oggetto dopo i processi delle funzioni.

  • Eventi

    In questa architettura, il servizio Oracle Cloud Infrastructure Events è configurato per ascoltare le modifiche alla creazione dello storage degli oggetti. Il servizio viene richiamato dopo che l'oggetto è stato caricato nello storage degli oggetti e chiama la funzione per l'elaborazione.

Considerazioni

  • Disponibilità

    Il servizio Eventi non è disponibile nelle aree del realm Government Cloud.

  • Gestibilità

    Questa architettura utilizza un'applicazione Java di esempio per scrivere le funzioni. Tuttavia, puoi utilizzare il linguaggio di programmazione di tua scelta.

  • Sicurezza

    Utilizza i criteri per limitare l'accesso alle risorse di Oracle Cloud Infrastructure di cui la tua azienda ha e come.

    Per lo storage degli oggetti, la cifratura è abilitata per impostazione predefinita e non può essere disattivata.

    L'accesso a tutte le funzioni distribuite in Oracle Functions viene controllato tramite Oracle Cloud Infrastructure Identity and Access Management (IAM). IAM consente sia di gestire le funzioni che di richiamare le funzioni di essere assegnati a utenti e gruppi di utenti specifici.

  • Costo

    Si paga solo per le risorse utilizzate durante l'esecuzione di una funzione.

Distribuzione

Il codice Terraform per questa architettura di riferimento è disponibile in GitHub. Puoi inserire il codice in Oracle Cloud Infrastructure Resource Manager con un solo clic, creare lo stack e distribuirlo. In alternativa, è possibile scaricare il codice da GitHub nel computer, personalizzare il codice e distribuire l'architettura utilizzando l'interfaccia della riga di comando (CLI, Command Line Interface) di Terraform.

  • Implementa utilizzando Oracle Cloud Infrastructure Resource Manager:
    1. Fare clic su Distribuire in Oracle Cloud

      Se non si è ancora collegati, immettere la tenancy e le credenziali utente.

    2. Rivedere e accettare i termini e le condizioni.
    3. Selezionare l'area in cui distribuire lo stack.
    4. Seguire i prompt visualizzati e le istruzioni per creare lo stack.
    5. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
    6. Attendere il completamento del job, quindi rivedere il piano.

      Per apportare modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Quindi eseguire di nuovo l'azione Piano.

    7. Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
  • Distribuzione mediante il codice Terraform in GitHub:
    1. Andare a GitHub.
    2. Duplicare o scaricare il repository nel computer locale.
    3. Seguire le istruzioni riportate nel documento README.

Log modifiche

In questo log sono elencate solo le modifiche significative: