Virenscanner zur automatischen Skalierung mit der OCI Kubernetes-Engine bereitstellen
Stellen Sie sicher, dass Ihre Dateien in Oracle Cloud Infrastructure Object Storage mit Viren gescannt werden, um Viren, Malware, Identitätsdiebstahl und Betrug zu erkennen und zu verhindern. Durch die Implementierung eines Virenscanners werden alle Dateien, die in Ihre Oracle Cloud Infrastructure-(OCI-)Lösung eingegeben werden, sicher und geschützt.
Architektur
Diese Architektur erstellt einen Virenscanner zum Scannen von Dateien, die in OCI Object Storage hochgeladen wurden. Der Virenscanner wird auf der Oracle Cloud Infrastructure Kubernetes Engine bereitgestellt und verwendet das Kubernetes-basierte ereignisgesteuerte Autoscaling, um Virenscanjobs zu verwalten.
Virenscanjobs sind so konfiguriert, dass einzelne Dateien und ZIP-Dateien gescannt werden. Wenn mehrere Dateien in den erstellten Objektspeicher-Bucket hochgeladen werden, werden Virenscanjobs auf der OCI Kubernetes-Engine (OKE) mit OCI Events und OCI Queue ausgeführt (standardmäßig maximal 3 Jobs gleichzeitig, kann jedoch mit der Kubernetes-basierten ereignisgesteuerten Autoscaling-Konfiguration geändert werden). Nach dem Scannen werden Dateien je nach Scanergebnis (sauber oder infiziert) in Objektspeicher-Buckets verschoben. Wenn keine zu scannenden Dateien vorhanden sind, skaliert das Kubernetes-basierte ereignisgesteuerte Autoscaling die Knoten in Pool 2 auf Null. Beim Scannen skaliert das Kubernetes-basierte ereignisgesteuerte Autoscaling Knoten nach oben.
Der Virenscanner verwendet die kostenlose Testversion von Trellix von einem Drittanbieter namens uvscan
. Der Anwendungscode wird hauptsächlich in NodeJS geschrieben und verwendet das Oracle Cloud Infrastructure-SDK für JS.
Im folgenden Diagramm wird diese Architektur dargestellt.
oke-antivirus-architecture.zip
Die Architektur umfasst die folgenden Komponenten:
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domain bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).
- Availability-Domains
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Daher sollte ein Fehler in einer Availability-Domain sich nicht auf die anderen Availability-Domains in der Region auswirken.
- Faultdomains
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverausfälle, Systemwartungen und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs die Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Internetgateway
Das Internetgateway ermöglicht Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Dynamisches Routinggateway (DRG)
Das DRG ist ein virtueller Router, der einen Pfad für privaten Netzwerktraffic zwischen VCNs in derselben Region zwischen einem VCN und einem Netzwerk außerhalb der Region bereitstellt, z.B. ein VCN in einer anderen Oracle Cloud Infrastructure-Region, ein On-Premise-Netzwerk oder ein Netzwerk in einem anderen Cloud-Provider.
- Network Address Translation-(NAT-)Gateway
Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.
- Object Storage
Mit Object Storage können Sie schnell auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps zugreifen, einschließlich Datenbankbackups, analytischen Daten und umfangreichen Inhalten wie Bildern und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher skalieren, ohne dass die Performance oder Servicezuverlässigkeit beeinträchtigt wird. Verwenden Sie Standardspeicher für "guten" Speicher, auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicher für "Cold Storage", den Sie über lange Zeiträume beibehalten und auf den Sie nur selten zugreifen.
- Monitoring
Der Oracle Cloud Infrastructure Monitoring-Service überwacht Ihre Cloud-Ressourcen aktiv und passiv mit Metriken, um Ressourcen und Alarme zu überwachen und Sie zu benachrichtigen, wenn diese Metriken alarmspezifische Trigger erfüllen.
- LoggingLogging ist ein hoch skalierbarer und vollständig verwalteter Service, der Zugriff auf die folgenden Logtypen von Ihren Ressourcen in der Cloud ermöglicht:
- Auditlogs: Logs zu Ereignissen, die vom Audit-Service ausgegeben werden.
- Servicelogs:: Logs, die von einzelnen Services wie API Gateway, Events, Functions, Load Balancing, Object Storage und VCN-Flowlogs ausgegeben werden.
- Benutzerdefinierte Logs: Logs, die Diagnoseinformationen von benutzerdefinierten Anwendungen, anderen Cloud-Providern oder einer On-Premise-Umgebung enthalten.
- Functions
Oracle Cloud Infrastructure Functions ist eine vollständig verwaltete, mehrmandantenfähige, hoch skalierbare, bedarfsgesteuerte Functions-as-a-Service-(FaaS-)Plattform. Es wird von der Open-Source-Engine Fn Project angetrieben. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.
- Queue
Oracle Cloud Infrastructure Queue stellt ein skalierbares System zur Verarbeitung von Nachrichten bereit und verarbeitet gleichzeitig komplexe Verwaltungsaufgaben wie garantierte Verarbeitung, Nachverfolgung und Clientisolation bei gleichzeitiger Verarbeitung. Dieser zentralisierte Service verwaltet auch die Nachrichtenreihenfolge und den Verarbeitungsstatus, sodass zustandslose Clientprozesse die Cursorverfolgung auslagern können.
- Ereignisse
Oracle Cloud Infrastructure-Services geben Ereignisse aus. Dies sind strukturierte Nachrichten, die Änderungen an Ressourcen beschreiben. Ereignisse werden für CRUD-(Create, Read, Update, or Delete-)Vorgänge, Änderungen des Ressourcenlebenszyklusstatus und Systemereignisse ausgegeben, die sich auf Cloud-Ressourcen auswirken.
- Registrierung
Oracle Cloud Infrastructure Registry ist eine von Oracle verwaltete Registry, mit der Sie Ihren Workflow von der Entwicklung bis zur Produktion vereinfachen können. Die Registry erleichtert Ihnen das Speichern, Freigeben und Verwalten von Entwicklungsartefakten wie Docker-Images. Die hochverfügbare und skalierbare Architektur von Oracle Cloud Infrastructure stellt sicher, dass Sie Ihre Anwendungen zuverlässig bereitstellen und verwalten können.
Stellen Sie
Der Code für die Bereitstellung des Virenscanners ist unter GitHub verfügbar.
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.