Distribuisci un analizzatore di virus di scala automatica utilizzando OCI Kubernetes Engine
Assicurati che i tuoi file in Oracle Cloud Infrastructure Object Storage siano sottoposti a scansione antivirus per rilevare e prevenire virus, malware, furto di identità e frodi. L'implementazione di un antivirus garantisce che tutti i file che immettono la soluzione Oracle Cloud Infrastructure (OCI) siano sicuri e sicuri.
Architettura
Questa architettura crea un antivirus per eseguire la scansione dei file caricati nello storage degli oggetti OCI. Il programma antivirus viene distribuito su Oracle Cloud Infrastructure Kubernetes Engine e utilizza il ridimensionamento automatico basato su eventi basato su Kubernetes per gestire i job di scansione antivirus.
I job di scansione antivirus sono configurati per eseguire la scansione di singoli file e file zip. Quando più file vengono caricati nel bucket di storage degli oggetti creato, i job di scansione dei virus vengono eseguiti su OCI Kubernetes Engine (OKE) utilizzando OCI Events e OCI Queue (massimo 3 job contemporaneamente per impostazione predefinita, ma questa operazione può essere modificata utilizzando la configurazione di scala automatica basata su eventi basata su Kubernetes). Dopo la scansione, i file vengono spostati nei bucket di storage degli oggetti a seconda del risultato della scansione (pulito o infetto). Se non sono presenti file di cui eseguire la scansione, il ridimensionamento automatico basato su eventi Kubernetes esegue lo scale down dei nodi nel pool da 2 a zero. Durante la scansione, il ridimensionamento automatico basato su eventi basato su Kubernetes aumenta i nodi.
Il virus scanner utilizza una terza parte chiamata prova gratuita di Trellix uvscan
. Il codice dell'applicazione viene scritto principalmente in NodeJS e utilizza l'SDK Oracle Cloud Infrastructure per JS.
Il seguente diagramma descrive questa architettura.
oke-antivirus-architecture.zip
L'architettura presenta i seguenti componenti:
- Area
Un'area geografica Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center standalone e indipendenti all'interno di un'area geografica. Le risorse fisiche in ciascun dominio di disponibilità sono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento, o la rete interna del dominio di disponibilità. Pertanto, un errore in un dominio di disponibilità non dovrebbe influire sugli altri domini di disponibilità nell'area.
- Domini di errore
Un dominio di errore consiste in un gruppo di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci le risorse su più domini di errore, le tue applicazioni possono tollerare errori fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.
- Rete cloud virtuale (VCN) e subnet
Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, le reti VCN consentono di controllare l'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi segmentare una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Gateway Internet
Il gateway Internet consente il traffico tra le subnet pubbliche in una VCN e la rete Internet pubblica.
- Gateway di instradamento dinamico (DRG)
Il gateway DRG è un router virtuale che fornisce un percorso per il traffico di rete privato tra le reti VCN nella stessa area, tra una rete VCN e una rete esterna all'area, ad esempio una rete VCN in un'altra area Oracle Cloud Infrastructure, una rete on premise o una rete in un altro provider cloud.
- Gateway NAT (Network Address Translation)
Un gateway NAT consente alle risorse private in una VCN di accedere agli host su Internet, senza esporre tali risorse alle connessioni Internet in entrata.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un unico punto di accesso a più server nel back-end.
- Storage degli oggetti
Lo storage degli oggetti offre un accesso rapido a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati come immagini e video. Puoi memorizzare e quindi recuperare i dati direttamente da Internet o dall'interno della piattaforma cloud. Puoi ridimensionare lo storage senza alcun deterioramento delle prestazioni o dell'affidabilità del servizio. Utilizza lo storage standard per lo storage "caldo" a cui è necessario accedere rapidamente, immediatamente e frequentemente. Utilizza lo storage di archivio per lo storage "freddo" che conservi per lunghi periodi di tempo e a cui accedi raramente o raramente.
- Monitoraggio
Il servizio Oracle Cloud Infrastructure Monitoring monitora attivamente e passivamente le tue risorse cloud utilizzando le metriche per monitorare le risorse e gli allarmi per avvisarti quando queste metriche soddisfano i trigger specificati dall'allarme.
- LogLogging è un servizio altamente scalabile e completamente gestito che fornisce l'accesso ai seguenti tipi di log dalle risorse nel cloud:
- Log di audit: log relativi agli eventi emessi dal servizio di audit.
- Log del servizio: log emessi da singoli servizi, ad esempio gateway API, eventi, funzioni, bilanciamento del carico, storage degli oggetti e log di flusso VCN.
- Log personalizzati: log che contengono informazioni di diagnostica provenienti da applicazioni personalizzate, altri provider cloud o da un ambiente in locale.
- Funzioni
Oracle Cloud Infrastructure Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, on-demand e Functions-as-a-Service (FaaS). È alimentato dal motore open source Fn Project. Le funzioni consentono di distribuire il codice e di chiamarlo direttamente o di attivarlo in risposta agli eventi. Oracle Functions utilizza i container Docker ospitati in Oracle Cloud Infrastructure Registry.
- Queue
Oracle Cloud Infrastructure Queue fornisce un sistema scalabile per elaborare i messaggi e gestire al contempo attività di gestione complesse come elaborazione, tracciamento e isolamento dei client garantiti almeno una volta. Questo servizio centralizzato gestisce anche lo stato di ordinazione ed elaborazione dei messaggi, consentendo ai processi client senza conservazione dello stato di scaricare il tracciamento del cursore.
- Eventi
I servizi Oracle Cloud Infrastructure emettono eventi, ovvero messaggi strutturati che descrivono le modifiche alle risorse. Gli eventi vengono emessi per le operazioni di creazione, lettura, aggiornamento o eliminazione (CRUD), le modifiche allo stato del ciclo di vita delle risorse e gli eventi di sistema che influiscono sulle risorse cloud.
- Registro
Oracle Cloud Infrastructure Registry è un registro gestito da Oracle e che ti consente di semplificare il flusso di lavoro da sviluppo a produzione. Registry semplifica la memorizzazione, la condivisione e la gestione degli artifact di sviluppo, ad esempio le immagini Docker. L'architettura altamente disponibile e scalabile di Oracle Cloud Infrastructure ti assicura di poter distribuire e gestire le tue applicazioni in modo affidabile.
Distribuire
Il codice per la distribuzione della ricerca virus è disponibile in GitHub.
- Passare a GitHub.
- Duplica o scarica il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README
.