Referenzarchitekturen wenden spezifische Designprinzipien an, um die Kernanforderungen der modernen Anwendungsentwicklung zu erfüllen. Mit diesen Prinzipien können Entwickler Web-/Mobile-Apps entwickeln, die KI/ML, datengesteuerte Analysen und Messagingplattformen integrieren. Ereignisbasierte Architekturen können in Echtzeit auf Ereignisse reagieren. Diese Architekturmuster tragen dazu bei, die Entwicklung benutzerdefinierter Apps im Finanzwesen, im Einzelhandel, im Gesundheitswesen, im Energiesektor sowie in der Fertigung zu beschleunigen. Außerdem unterstützen sie die Erweiterungen von in Packages integrierten Oracle Applications. Die meisten Unternehmensanwendungen sind datenzentriert, enthalten eine Vielzahl von Daten und werden am besten auf einer konvergierten Datenbank entwickelt. Die Programmierung mit den gängigen Sprachen Java, Python, Javascript, Go usw. wird in diesen Architekturmustern ebenfalls gut unterstützt. Die Low-Code-App-Entwicklung komprimiert die erforderlichen Technologieebenen und ist eine gute Option für einige Anwendungen. Von Kubernetes verwaltete Apps und Datenbankcontainer können dann in Oracle Cloud (OCI), eigenständigen Umgebungen und anderen wichtigen Public Clouds bereitgestellt werden.
Web- und Mobile-Apps enthalten typischerweise ein für den Benutzer sichtbares Frontend, einen Abfragegenerator und ein Backend, das die Datenberechnung durchführt und das Frontend versorgt. Als Antwort auf eine Benutzer- oder API-Anforderung interagiert eine Webanwendung mit der API oder mit in einer Datenbank gespeicherten persistenten Daten. Die Anwendung muss verschiedene Clients wie Browser und Mobilgeräte unterstützen und mithilfe von APIs und Ereignissen mit anderen Systemen und Anwendungen interagieren. Das Backend muss sicher sein und nach Bedarf skaliert werden.
Erstellen Sie Ihre Webanwendung als eine Reihe von Microservices, die unabhängig getestet, bereitgestellt und von verschiedenen Anwendungsteams besessen werden können. Stellen Sie Services als REST-APIs bereit und kommunizieren Sie mit anderen Microservices über ein integriertes Event-Mesh für Ereignisse und Nachrichten oder APIs, die pro Microservice erstellt wurden. Integrieren Sie mit ML-Modellen über REST-Endpunkte in der Datenbank maschinelles Lernen in intelligente Apps.
Web- und Mobile-Apps müssen skalierbar sein, um Bedarfsspitzen zu bewältigen und unter Belastung mit geringer Latenz zu funktionieren. Darüber hinaus müssen Sie rund um die Uhr verfügbar und belastbar genug sein, um auf Anfrage Daten zu produzieren, und dürfen gespeicherte Informationen nicht verlieren.
Mobile-Apps werden mit Frontend-Frameworks wie React Native oder SwiftUI erstellt. Dadurch wird die Benutzeroberfläche erstellt, die mit einem Backend für alle Daten- und Anreicherungsservices interagiert. Der Entwickler kann sich auf den Workflow und die Anwendungslogik konzentrieren und über klar definierte APIs auf das Backend zugreifen, die belastbar, sicher und autonom skalierbar sind.
Sicherheit ist für Webanwendungen, die dem Internet ausgesetzt sind, von größter Bedeutung. Daher sind Datenverschlüsselung, TLS, DDoS-Schutz, Firewalls und eine granulare Benutzer- und Datenzugriffsverwaltung ausschlaggebend. Sowohl die Datenbanksicherheit als auch die Anwendungssicherheit sind wichtig und werden mit Passwörtern und Schlüsseln gehandhabt, auf die über Oracle Database Wallet und den OCI Vault-Service zugegriffen wird.
Erstellen Sie ein mobiles und webbasiertes Frontend in Javascript (React) oder SwiftUI. Zu Backend-Daten- und Anwendungsservices gehört die mehrsprachige Sprachunterstützung (Python, Node.js, Java, PL/SQL, Go usw.), um Anwendungsfälle und Microservices in diesen Sprachen zu ermöglichen. Verarbeiten Sie Daten nahe am Speicherort.
Eine Webanwendung oder eine mobile Anwendung muss häufig mit anderen Geschäftssystemen und Services außerhalb des Unternehmens verbunden sein. Services, die Teil einer Webanwendung sind, sollten die Interaktion und Zusammenarbeit über klar definierte APIs ermöglichen. Verwenden Sie Oracle REST Data Services (ORDS), um Daten-APIs zu verwenden oder neue zu erstellen. Ermöglichen Sie maschinelles Lernen und verwenden Sie vordefinierte REST-Endpunkte über OML-Services und die eingebettete Python-Ausführung von OML4Py. Nutzen Sie verfügbare API-Gateways in Oracle Cloud als zentralen Einstiegspunkt für alle Clients, und leiten Sie API-Anforderungen an den entsprechenden Service weiter. Konfigurieren Sie Load-Balancer-Services und Ingress-Controller für eine sichere API-Kommunikation zwischen Microservices.
Die Wartung einer Web- oder Mobile-App-Infrastruktur ist mit der Verantwortung für das Deployment, Upgrade, Patching, Skalieren und Sichern des Setups verbunden. Verwenden Sie verwaltete Services wie Oracle Autonomous Database und eine Vielzahl anderer verwalteter Services in der Oracle Cloud, um die Verfügbarkeit und Skalierbarkeit zu maximieren und auf die sich ändernden Anforderungen von Web- und Mobile-Apps zu reagieren. Verwaltete Services stellen sicher, dass die Anwendung rund um die Uhr verfügbar und geschützt ist, wenn im Data Center, in dem die Infrastruktur gehostet wird, etwas ausfällt. Verwenden Sie selbstverwaltende Services nur, wenn kein vom Anbieter verwalteter Service verfügbar ist.
Halten Sie Komponenten der mittleren Ebene der Anwendung zustandslos. Wenn der Anwendungsstatus gespeichert werden soll, verwenden Sie Oracle Autonomous Database, um Anwendungsdaten und -status für Konsistenz, Dauerhaftigkeit und schnelle Wiederherstellbarkeit aus dem Root-Verzeichnis des Anwendungsstatus zu speichern. Das Beibehalten des Status in einer Datenbank ist einfacher und effizienter bei der Wiederherstellung der gesamten Anwendung.
Web- und Mobilanwendungen verwenden Daten in unterschiedlichen Formaten und müssen die Daten in einem Datenspeicher speichern, suchen und verarbeiten. Die Daten können tabellarisch (relational), unstrukturiert, als XML und JSON formatiert, räumlich oder graphisch sein. Traditionell bedeutete diese Ungleichheit die Verwendung einer relationalen Datenbank für relationale Daten, eines Dokumentenspeichers für unstrukturierte Daten und Diagrammdatenbanken für hierarchisch verknüpfte Daten. Die Verwendung mehrerer Datenbanken führt jedoch zur Betriebskomplexität und Dateninkonsistenz. Um dieses Problem zu lösen, verwenden Sie die konvergierte Oracle Autonomous Database, um mehrere Datentypen zu speichern, zu indizieren und Möglichkeiten zum Durchsuchen der Daten bereitzustellen und für einheitliche Analysen über alle Daten hinweg zu verwenden.
Eine Web- oder Mobilanwendung kann Hunderte von Services enthalten, die verschiedenen Anwendungs- und Geschäftsteams gehören. Eine einheitliche Beobachtbarkeit mit Open-Tool-Schnittstellen ist wichtig, um das Verhalten dieser von Natur aus verteilten Systeme sichtbar zu machen. Zentralisieren Sie die Beobachtungslösung, indem Sie die Metriken, Protokolle und Ablaufverfolgungen verwenden, die aus allen Ebenen der Anwendungs- und Datenebenen exportiert wurden. Diese Services überwachen den gesamten Stack, vom Frontend bis zum Backend, helfen dabei, Probleme in der Anwendung schnell zu finden und zu beheben, und werden zur Plattform für die kontinuierliche Performanceoptimierung.
Web- und Mobilanwendungen müssen robust sein, sich nach Ausfällen erholen, Ausfallzeiten minimieren und Datenverluste vermeiden. Redundanz hilft, Single Points of Failure zu beseitigen: Mit Kubernetes können Sie die Resilienz der Datenbankcontainer und App-Container verwalten. Der Oracle Database Kubernetes-Operator wurde dafür entwickelt und verwendet CI/CD-Pipelines, die die Datenebene enthalten. Richten Sie in Kubernetes-Clustern Knotenpools mit mindestens drei Knoten ein, wobei sich jeder Knoten in einer separaten Availability-Domain in einer Multi-Availability-Domain-Region auf OCI befindet. Richten Sie in einer einzelnen Availability-Domain-Region auf OCI Knotenpools in Kubernetes mit jedem Knoten in einer separaten Fault-Domain ein. Verwenden Sie einen einzelnen öffentlichen Load Balancer und mehrere private Load Balancer mit mehreren Ingress-Controllern für Redundanz in Kubernetes.
Richten Sie die Autonomous Database mit Autonomous Data Guard für maximale Verfügbarkeit ein, um Betriebsausfallzeiten und Datenverluste zu minimieren.
Befolgen Sie das Prinzip der geringsten Berechtigungen, um sicherzustellen, dass Benutzer und Serviceaccounts nur die minimalen Rechte haben, die zum Ausführen ihrer Aufgaben erforderlich sind. Kontrollieren Sie mit Cloud Identity and Access Management (IAM), wer Zugriff auf die Webanwendungskomponenten hat, einschließlich der Datenbank. Verwenden Sie die Multifaktor-Authentifizierung in IAM, um eine starke Authentifizierung durchzusetzen, damit Administratoren den Zugriff auf die Anwendungskomponenten und die Datenbank einschränken können.
Dieses konvergierte Datenarchitekturmuster für eine Web- oder Mobilanwendung besteht aus einem Frontend und Microservices, wobei das Backend die in der Oracle Autonomous Database erstellten App- und Datenservices verwendet. Optional werden für Services, die nicht in der Datenbank vorhanden sind, Microservices in Containern in einem Kubernetes-Cluster verwaltet.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
Die Architektur enthält die folgenden Komponenten (Komponenten können vollständig verwaltete Services auf Oracle Cloud Infrastructure oder entsprechende Services in anderen Deployment-Umgebungen sein. Oracle Autonomous Database ist beispielsweise ein verwalteter Service auf OCI, und die Oracle Database wird in anderen Umgebungen ausgeführt).
Dieser Anwendungsfall beschreibt eine Beispielanwendung für die mobile Lebensmittellieferung namens GrabDish, die eine Microservices-Architektur mit der Autonomous Database und containerisierten Datenbanken (Pluggable Database in a Container Database) für jeden ihrer Services verwendet. Es verwendet außerdem die integrierte Messaging-Plattform Transactional Event Queues (TEQ) für das Messaging und vereinfacht die gängigen Microservices-Muster für Entwickler. GrabDish zeigt AI/ML-Services und eine Vielzahl von verwendeten Datentypen und programmiert die App in mehreren Sprachen. Weitere Einzelheiten finden Sie in den Livelabs zu GrabDish unter http://bit.ly/simplifymicroservices
Erfahren Sie mehr über verwandte Ressourcen.
Messaging-Lösungen verbinden Anwendungskomponenten – einschließlich vorhandener On-Premises-Systeme – mit Cloud-Lösungen. Nachrichten-Payloads sind Ereignisse, die von Anwendungen generiert werden, Benutzereingaben, Datenänderungen oder gerätegenerierte Ereignisse. Messaging ermöglicht die Ereignis- und Datenübertragung als Teil einer klar definierten verteilten Verarbeitungspipeline oder die Veröffentlichung von Nachrichten und Ereignissen an mehrere unabhängige nachgelagerte Systeme, die Daten verarbeiten, anreichern und analysieren. Die meisten modernen Apps, die mit Microservices erstellt werden, basieren auf einer ereignisgesteuerten Architektur. Ein Event-Mesh ermöglicht es, jedes in einem System erzeugte Ereignis sicher an einer anderen Stelle im verteilten System zu nutzen, wo es benötigt wird, und zwar nahezu in Echtzeit, indem ein oder mehrere Event-Broker verwendet werden. Nachdem ein Ereignis verarbeitet wurde, werden die Daten (Nutzdaten) in einem Data Lakehouse für Analysen und das Trainieren von KI/ML-Modellen gespeichert.
Erstellen Sie hochverfügbare, zuverlässige und flexible Messaging-Lösungen. Nutzen Sie die konvergierte Datenbankplattform, Cloud-Services und Best Practices von Oracle, um Messaging und leistungsorientierte Lösungen basierend auf Geschäftsanforderungen bereitzustellen. Diese Empfehlungen tragen dazu bei, die Entwicklungsintegration, den Bereitstellungsaufwand und den langfristigen Verwaltungsaufwand zu minimieren.
Messaging-Lösungen verbinden Anwendungskomponenten, einschließlich Ihrer vorhandenen On-Premises-Systeme, mit Cloud-Lösungen. Sie ermöglichen die Datenübertragung entweder als Teil einer klar definierten verteilten und konvergierten Verarbeitungspipeline oder veröffentlichen Nachrichten und Ereignisse an mehrere unabhängige nachgelagerte Systeme, die sich unabhängig voneinander weiterentwickeln.
Diese Lösungen sollten auch ungeplante Spitzen in der Nachrichtenlast transparent ausgleichen, indem Daten gepuffert und Prozessressourcen dynamisch angepasst werden. In der Vergangenheit war es für Unternehmen eine Herausforderung, zuverlässige Messaging-Lösungen bereitzustellen und zu verwalten, die diese Ziele ohne übermäßige Komplexität und Kosten erfüllen. Diese Implementierung kann jedoch jetzt mit Messaging-Services für Skalierung und Performance einfach in der Cloud durchgeführt werden.
Verwenden Sie die folgenden Designprinzipien, um Ihre Messaging-Anwendungen oder -Plattform mit der konvergierten Datenarchitektur zu erstellen.
Verwenden Sie entweder JMS- oder Kafka-APIs für Messaging mit Oracle Transactional Event Queues. Die Verwendung der Standard-APIs bietet Anwendungsportabilität und ermöglicht Ihnen die nahtlose Erstellung von Hybrid- und Multicloud-Messaging-Anwendungen.
Führen Sie Anwendungen auf vollständig verwalteten Services mit integrierter Infrastrukturwartung und Sicherheitspatches aus. Sie können die Skalierungsautomatisierung als Reaktion auf sich ändernde Lasten nutzen. Verwenden Sie Oracle Autonomous Database, einen vollständig verwalteten Oracle Database-Service auf OCI. Oracle Transactional Event Queues ist ein integriertes Feature der Datenbank, die in allen OCI-Regionen verfügbar ist.
Verwenden Sie die Oracle Autonomous Database, die nativ verschiedene Datentypen unterstützt – JSON, relational, Diagramm, räumlich usw. Nutzen Sie die Datenbankfunktionalität, um die Anwendungslogik zu vereinfachen. Verwenden Sie beispielsweise SQL für Abfragen, Verknüpfungen und Analysen. Und verwenden Sie Transaktionen, um Konsistenz und Isolation zu gewährleisten, und integrierte Algorithmen und Analysen für maschinelles Lernen, sodass unnötige Datenübertragungen vermieden werden. Außerdem können Sie die Sicherheitsfunktionen und die Zugriffskontrolle der Datenbank nutzen sowie die Replikation, um die Verfügbarkeit, Skalierbarkeit und Resilienz Ihrer Anwendungen zu verbessern.
Eine Messaging-Anwendung kann Hunderte von Services enthalten, die verschiedenen Anwendungs- und Geschäftsteams gehören. Eine einheitliche Beobachtbarkeit mit Open-Tool-Schnittstellen ist wichtig, um das Verhalten dieser komplexen, verteilten Systeme sichtbar zu machen. Anstatt dass jedes Team seine eigene Lösung erstellt, zentralisieren Sie die Metriken, Protokolle und Ablaufverfolgungen, die aus allen Ebenen der Anwendung exportiert werden. TEQ-Metriken können in Prometheus exportiert werden, das Grafana-Dashboards für Debugging- und Performance-Tuning-Workflows unterstützt.
Eliminieren Sie Single Points of Failure durch horizontale Skalierung und automatisieren Sie die Wiederherstellung nach einem Ausfall.
Da TEQ Teil der Oracle Autonomous Database ist, profitieren Anwendungen ohne zusätzlichen Aufwand von der integrierten Hochverfügbarkeit und den regionsübergreifenden Disaster Recovery-Funktionen.
Das transaktionale Messaging von TEQ vereinfacht auch die Wiederherstellung nach externen Ausfällen.
Implementieren Sie Identity and Access Control-(IAM-)Policys, damit nur autorisierte Benutzer Daten aus den Streams erstellen, senden oder empfangen können. Wenden Sie das Prinzip der minimalen Erreichbarkeit auf den Endpunkt an, indem Sie den Zugriff auf Messaging-Endpunkte mit mTLS und Servicegateway sichern, wodurch der Zugriff aus dem Internet eingeschränkt wird. Datenverschlüsselung während der Übertragung und im Ruhezustand, um die Vertraulichkeit der Daten zu gewährleisten. Verwenden Sie Database Wallet, um Zugangsdaten für Verbindungen zur Datenbank zu sichern.
Die konvergierte Datenbankarchitektur bietet ein Design, um Messaging-Muster in modernen Anwendungen zu realisieren. Dieses Muster verwendet Transactional Event Queues (TEQ), die in die Oracle Autonomous Database integriert sind.
Diese Architektur bietet Einfachheit, indem sie die Verwendung externer Streaming- oder Queueing-Services überflüssig macht, und bietet transaktionale Messaging-Funktionen, die gängige Microservice-Muster vereinfachen.
Anwendungsarchitekten sollten die Skalierbarkeit, Performance und Einfachheit dieser Architektur berücksichtigen:
FedEx verwendet die Oracle E-Business Suite und den mit Oracle TEQ erstellten Business Event Manager für Debitoren der täglich zugestellten 15,5 Millionen Pakete.
Mehrere Zwei-Faktor-Authentifizierungsszenarien (2-FA), die Einmalkennwörter (OTP) verwenden, werden von Oracle Transactional Event Queues aktiviert
Erfahren Sie mehr über verwandte Ressourcen.
Low-Code-Plattformen eignen sich hervorragend zum Erstellen opportunistischer Anwendungen in Zusammenarbeit mit geschäftlichen Stakeholdern, zum Erstellen von Datenberichts- und Analyse-Apps, zum Erweitern von SaaS-Apps und zur Modernisierung von Legacy-Anwendungen. Jeder Codezeile sind Kosten zugeordnet, um sie zu verfassen, zu verwalten, zu debuggen, zu aktualisieren und zu sichern. Mit Oracle Application Express (APEX) können Entwickler diese Kosten vermeiden, indem sie hochwertige Komponenten und gängige Designmuster über eine intuitive und grafische Entwicklungserfahrung bereitstellen.
Low-Code-Plattformen ermöglichen Ihnen, Unternehmensanwendungen schneller als mit herkömmlicher Handcodierung zu erstellen. Diese Plattformen eignen sich hervorragend zum Erstellen opportunistischer Anwendungen in Zusammenarbeit mit geschäftlichen Stakeholdern, zum Erstellen von Datenberichts- und Analyse-Apps, zum Erweitern von SaaS-Apps und zur Modernisierung von Legacy-Anwendungen.
Mit Low-Code-Plattformen können Sie sich der Lösung Ihres Geschäftsproblems widmen, anstatt sich auf die Komplexität der Entwicklung von Webanwendungen zu konzentrieren. Zu diesen Komplexitäten gehören Sicherheit, Zugänglichkeit, effizienter Datenzugriff, Performance und Globalisierung. Low-Code-Plattformen eliminieren diese Komplexität, indem sie die Menge an Code, die Sie pflegen müssen, drastisch reduzieren.
Oracle Application Express (APEX) hilft Entwicklern, die mit der traditionellen App-Entwicklung verbundenen Kosten zu vermeiden, indem es Ihnen über eine intuitive grafische Entwicklungsumgebung High-Level-Komponenten und allgemeine Designmuster zur Verfügung stellt.
Oracle Cloud Infrastructure (OCI) bietet die sichere, zuverlässige, skalierbare und leistungsstarke Infrastruktur, die für die anspruchsvollsten Anwendungen erforderlich ist. Diese Anwendungen können so skaliert werden, dass sie alles von kleinen Arbeitsgruppen bis hin zu Millionen von Endbenutzern unterstützen. In diesem Dokument werden die Designprinzipien und der optimale Implementierungspfad für die Architektur einer Low-Code-Anwendung beschrieben.
Verwenden Sie bei der Implementierung eines Low-Code-Musters die folgenden Designprinzipien für die moderne Anwendungsentwicklung:
Setzen Sie bei der Entwicklung von Anwendungen einen metadatengesteuerten Low-Code-Ansatz ein. Geben Sie die Anwendungslogik nach Möglichkeit deklarativ an und schreiben Sie Code nur dort, wo dies erforderlich ist. Mithilfe von SQL können Sie direkt mit Daten in der Datenbank interagieren Außerdem können Sie vollständig verwaltete Services wie Oracle Autonomous Database und Oracle APEX Application Development (APEX Service) nutzen, die die Verfügbarkeit und Skalierbarkeit maximieren können, um die sich ändernden Anforderungen Ihrer Low-Code-Apps zu bewältigen. Darüber hinaus stellen Datenbankfunktionen wie Oracle Real Application Clusters (RAC) und Oracle Data Guard sicher, dass Ihre Low-Code-Apps rund um die Uhr verfügbar sind und ein Failover durchführen können, wenn im Data Center, in dem die Infrastruktur gehostet wird, etwas ausfällt.
Verwenden Sie den OCI Resource Manager, um die Bereitstellung von Oracle Autonomous Databases und APEX-Umgebungen zu automatisieren. Mit Oracle SQL Developer Command Line (SQLcl) mit Liquibase können Sie das Deployment von Datenmodelländerungen automatisieren. Außerdem können Sie mit dem APEX-One-Click-Anwendungs-Deployment Änderungen zwischen Umgebungen manuell bereitzustellen.
Oracle APEX ist zustandslos und serverlos, und der Status der Laufzeitanwendung wird in Tabellen gespeichert, sodass Verbindungen benutzerübergreifend wiederverwendet werden können. Dies führt zu weitaus weniger Verbindungen, die viele gleichzeitige Benutzerzugriffe unterstützen können.
Low-Code-Anwendungen müssen häufig mit Daten in verschiedenen Formaten arbeiten, z. B. strukturiert (relational), unstrukturiert (XML/JSON-Dokumente) und räumlich. Da APEX in die Autonomous Database eingebettet ist, können Sie SQL, PL/SQL und serverseitiges JavaScript verwenden, um mit all diesen Datenformaten zu arbeiten. Aufgrund der einzigartigen Architektur von APEX profitieren Apps außerdem von latenzfreiem Datenzugriff, was eine optimale Performance ermöglicht.
Überwachen und verfolgen Sie die APEX-Anwendungsaktivität mithilfe der integrierten Aktivitätsüberwachungsfunktionen, die detaillierte Tracing- und Debugginginformationen auf Benutzerebene enthalten. Prüfen Sie die Aktivität auf Workspace- und Instanzebene über APEX Administration Services. Mit Performance Hub können Sie die Datenbankaktivität überwachen, automatische AWR-(Workload Repository-)Berichte prüfen, um die Top-Ressourcennutzer zu identifizieren und Optimierungsempfehlungen zu ermitteln.
APEX auf Oracle Autonomous Database wird mithilfe einer hochverfügbaren Architektur bereitgestellt, die die Datenebene (Exadata und RAC) und die mittlere Ebene (redundante Oracle REST Data Services-Knoten) umfasst. Mit Autonomous Data Guard können Sie die Verfügbarkeit Ihrer Apps weiter erhöhen, um sich vor Availability-Domain-Ausfällen zu schützen.
Verwenden Sie OCI Identity and Access Management (IAM) für Authentifizierungsschemata für Ihre APEX-Anwendungen. Weisen Sie Autorisierungsschemata APEX-Apps und -App-Komponenten zu, um die Zugriffskontrolle basierend auf Benutzerrolle oder -berechtigung zu erzwingen. Außerdem können Sie die integrierten deklarativen Funktionen von APEX nutzen, um Session State Protection (SSP) und Verschlüsselung auf Elementebene zu handhaben, sodass Sie Ihre Apps und Daten schützen. In SQL-Abfragen sollten Sie Bind-Variablen verwenden, um eine SQL-Injection zu verhindern. Konfigurieren Sie App-geeignete Timeouts, um sicherzustellen, dass inaktive Sessions automatisch beendet werden. Durch die Ausführung des integrierten APEX Advisors können Sie potenzielle Sicherheitsrisiken wie ungeschützte Seiten, Elemente und Schaltflächen erkennen. Verwenden Sie APIs für deklaratives Escaping und programmgesteuertes Escaping, um sich vor Cross-Site-Scripting (XSS) zu schützen.
Diese Architektur dient zur Entwicklung und Bereitstellung von Low-Code-Anwendungen mit Oracle APEX Application Development (APEX-Service) und allen Oracle Autonomous Database-Services. Durch die Bereitstellung dieser Services werden alle für den vollständigen Stack erforderlichen Komponenten automatisch bereitgestellt und vollständig verwaltet. Zu diesen Komponenten gehören Gateways, Load Balancer und Oracle REST Data Services.
Diese Abbildung zeigt die Architektur, die der Entwicklung und Bereitstellung von Low-Code-Anwendungen mit Oracle APEX Application Development und allen Oracle Autonomous Database-Services zugrunde liegt. Sie zeigt eine vollständig verwaltete Umgebung mit einem öffentlichen und einem privaten Subnetz. Außerhalb der vollständig verwalteten Umgebung befinden sich diese Services: APEX Applications, Oracle REST Data Services APIs und externe REST APIs. Diese Services greifen über ein Internetgateway oder ein NAT-Gateway auf die vollständig verwaltete Umgebung zu.
Das öffentliche Subnetz enthält einen Load Balancer, während das private Subnetz eine Oracle REST Data Services-Instanz und eine Oracle Autonomous Database enthält, auf der sich eine Instanz von Oracle APEX auf Autonomous Database befindet.
Der Datenverkehr von den APEX-Anwendungen und den Oracle REST Data Services-APIs wird über ein Internet-Gateway zum Load Balancer geleitet, der ihn bidirektional an die Oracle REST Data Services-Instanz im privaten Subnetz weiterleitet. Dieser Service wiederum kommuniziert bidirektional mit Oracle Autonomous Database. Der Datenverkehr von der Oracle APEX-Instanz auf Autonomous Database wird über ein NAT-Gateway direkt an die externen REST-APIs weitergeleitet.
Alle Anwendungsartefakte werden auf der Datenbankebene bereitgestellt. Dies ermöglicht den Datenzugriff ohne Latenz, da kein Netzwerkverkehr zwischen der Anwendungs- und Datenbankebene erforderlich ist.
Bei der Implementierung eines Low-Code-Musters sollten Sie außerdem Folgendes berücksichtigen:
Betrachten Sie die Alternativen zu der in diesem Muster beschriebenen Architektur und vermeiden Sie den Versuch, Antipattern zu implementieren.
Einige Beispiele für die Wirksamkeit eines Low-Code-Musters sind:
Erfahren Sie mehr über verwandte Ressourcen.
Big Data ist eine Gruppe von Funktionen und Mustern, mit denen Sie alle Datentypen (unstrukturiert, halbstrukturiert und strukturiert) verwalten, erfassen, speichern, katalogisieren, vorbereiten, verarbeiten und analysieren können. Dabei spielt es keine Rolle, ob sie aus Quellen wie Datenbanken, Videos, Formularen, Dokumenten, Logdateien, Webseiten oder Bildern stammen. Darüber hinaus sollte eine Plattform für maschinelles Lernen vollständig verwaltet werden und es Data Engineers und Data Scientists ermöglichen, alle diese Schritte im Lebenszyklus der Modellentwicklung durchzuführen.
Die Big-Data-Funktionen von Oracle umfassen verschiedene Services und Tools, damit Sie den Weg zu Big Data basierend auf Ihren Fähigkeiten und Vorlieben beginnen können. Mit der konvergierten Oracle Database wird eine Vielzahl von Daten in der Datenbank gespeichert und auf mehrere PB an Volumen skaliert – mit schneller Aufnahme von Daten und Ereignissen (mit transaktionalen Ereignis-Queues), wodurch der Schutz aller Daten mit einer integrierten Sicherheit gewährleistet wird. Die konvergierte Datenarchitektur adressiert mit Oracle Autonomous Database das Volumen, die Vielfalt, Geschwindigkeit und Richtigkeit von Daten in einer konvergierten Datenbankplattform.
Data Scientists und Machine Learning-Engineers möchten keine Zeit mit der Bereitstellung, dem Upgrade, dem Patchen und dem Sichern der Infrastruktur verbringen. Sie möchten ihre Zeit damit verbringen, Modelle zu entwickeln, zu trainieren und bereitzustellen, die sich auf das Unternehmen auswirken. Eine Plattform für maschinelles Lernen sollte vollständig verwaltet werden und ermöglichen, alle Schritte im Lebenszyklus der Modellentwicklung (Erstellen, Trainieren, Bereitstellen und Überwachen) durchzuführen. Daten, die für das maschinelle Lernen verwendet werden, sollten quellenunabhängig sein und Data Scientists den Zugriff auf konsistente und zuverlässige Daten zum Erstellen, Trainieren und Bereitstellen von Modellen ermöglichen.
Die meisten modernen Toolkits für maschinelles Lernen sind Open Source und in Python geschrieben. Daher sollte eine Plattform für maschinelles Lernen native Unterstützung für Open-Source-Frameworks und Python bieten. Außerdem sollten Benutzer in der Lage sein, ihre ML-Umgebungen anzupassen, indem sie entweder ihre eigenen Bibliotheken installieren oder die bereits installierten aktualisieren. Die Plattform sollte es Data Scientists ermöglichen, ihre Modelle mit strukturierten, unstrukturierten oder halbstrukturierten Daten zu trainieren, während sie die ETL-(Extrahieren, Transformieren und Laden)- oder Trainingsschritte vertikal oder horizontal über eine Reihe von Compute-Ressourcen skalieren.
Schließlich sollte eine Plattform für maschinelles Lernen sicherstellen, dass Modelle für den Echtzeitverbrauch mit minimaler Reibung (idealerweise über einen einfachen REST-Aufruf) einfach bereitgestellt werden können. Gleichzeitig wird die Herkunft des bereitgestellten Modells beibehalten, um sicherzustellen, dass es geprüft und reproduziert werden kann.
Verwenden Sie bei der Implementierung eines Big Data- und Analysemusters die folgenden Designprinzipien für die moderne Anwendungsentwicklung.
Ihre Daten sind nur so wertvoll wie Ihre Fähigkeit, sie zu nutzen. Big-Data-Tools sind in der Open-Source-Community beliebt, und die meisten ihrer Funktionen verfügen über gleichwertige Funktionen in modernen Datenbanken, insbesondere in Bezug auf Data Warehousing, Analysen sowie Training und Bereitstellung von KI/ML-Modellen. Die konvergierte Oracle Datenbank ist eine solche Big-Data-Plattform.
Die nativen Premium-Funktionen von Oracle wie externe Tabellen von Oracle Autonomous Data Warehouse und SQL ermöglichen die Verwendung von Data Lakehouses in der Oracle Database und im OCI-Objektspeicher zum Speichern und Analysieren von Daten im Petabyte-Bereich in Echtzeit.
DataOps ist wichtig, um sicherzustellen, dass Sie maximalen Nutzen aus Ihren Big-Data-Pipelines ziehen können. Mit dem Oracle Cloud Infrastructure Data Integration-Service können Sie Daten aufnehmen, ETL-Verarbeitung und ELT-Pushdown implementieren und Pipelines für die Verbindung von Aufgaben in einer Sequenz oder parallel erstellen, um einen Prozess zu vereinfachen. Pipelines können verschiedene beliebte Datenquellen innerhalb und außerhalb von Oracle Cloud enthalten. Außerdem können Sie Planungsfunktionen der Datenintegration verwenden, um zu definieren, wann und wie oft jede Aufgabe ausgeführt werden soll. Und mit Oracle Database Cloud Service Management Datenbankjobs definieren, die nach einem Zeitplan für eine Reihe von Datenbanken ausgeführt werden. Das Ganze können sie mit CI/CD-Pipelines und einheitlicher Observability für App-Entwickler erweitern.
Nutzen Sie die besten Tools, mit denen Sie die Zusammenführung von Daten vereinfachen, automatisieren und beschleunigen können, um maximalen Geschäftswert zu erzielen. Für Data Warehouses, abteilungsbezogene Data Marts sowie Bereitstellungs- und Präsentationsschichten mit strukturierten Daten verwenden Sie eine Autonmous Database, die für diese Szenarien optimiert ist. Die autonome Data-Warehouse-Funktion bietet außerdem Konnektivität zu Analyse-, Business-Intelligence- und Reporting-Tools wie Oracle Analytics Cloud.
Planen Sie, Ihre Daten zu schützen. Verfolgen Sie alle Jobs, die Daten in Ihren Data Lake einbringen und aus diesem entnehmen, bewahren Sie Datenherkunftsmetadaten auf und stellen Sie sicher, dass die Zugriffssteuerungsrichtlinien aktualisiert werden.
Befolgen Sie das Prinzip der geringsten Berechtigungen, um sicherzustellen, dass Benutzer und Serviceaccounts nur die minimalen Berechtigungen haben, die zum Ausführen ihrer Aufgaben erforderlich sind. Kontrollieren Sie, wer Zugriff auf die Datenplattformkomponenten hat, indem Sie Oracle Cloud Infrastructure Identity and Access Management verwenden. Mit der Multi-Faktor-Authentifizierung in Oracle Cloud Infrastructure Identity and Access Management können Sie eine starke Authentifizierung für Administratoren erzwingen. Verwenden Sie Datenbanksicherheit mit Oracle Data Safe, um den Sicherheitsstatus aller Daten, Benutzer und Zugriffsmuster zu erhalten. Speichern Sie vertrauliche Informationen wie Passwörter und Authentifizierungstoken in einem Vault-Service.
Verwenden Sie eine skalierbare konvergierte Datenbank (Transaktionsverarbeitung und Data Warehouse), um das Unternehmen zu betreiben, das Daten generiert, speichert und alle Arten von Daten analysiert. In dieser Architektur speisen verschiedene Datenquellen (Endbenutzer, Geräte, Ereignisse, Sensoren und Anwendungen) Daten in die Datenbank durch Datenintegration (Oracle GoldenGate) und Oracle Transactional Event Queues für Streaming-Daten. Die Daten werden in Oracle Autonomous Database (Oracle Autonomous Transaction Processing und Oracle Autonomous Data Warehouse) zusammen mit dem OCI Object Store-Support für Big Data mit SQL und externen Tabellen gespeichert. Verwenden Sie Oracle Machine Learning zum Erstellen und Bereitstellen von Modellen, und verschaffen Sie sich mit Oracle Analytics Cloud Einblicke in die Daten.
Oracle Machine Learning (OML Notebooks, OML AutoML UI, OML Services, OML4Py) auf Oracle Autonomous Database zum Untersuchen und Vorbereiten von Daten sowie zum Erstellen, Bewerten und Bereitstellen von Modellen für maschinelles Lernen.
Dieses Architekturmuster bietet leistungsstarke Funktionen, wenn die zum Trainieren des Modells erforderlichen Daten in die Datenbank gebracht werden und die Verarbeitung in der Nähe der Daten erfolgt. Dieses Muster enthält eine Vielzahl von Datenquellen und Ereignissen, die mit der Daten-Exploration für OML-Schulungen untersucht und vorbereitet werden können. Außerdem können Sie mit OML Modelle mit SQL, Python mit OML4Py oder ohne Code AutoML erstellen, trainieren und bereitstellen. Importieren Sie anderswo trainierte Modelle wie OCI Data Science (z. B. Tensorflow oder PyTorch) mit OML-Services unter Verwendung des ONNX-Modellformats.
Dieses Muster verwendet den Ansatz „Verschieben der Algorithmen zu den Daten“. Alle Daten werden an ihrer Quelle (mit externen Tabellen) aufgerufen oder erfasst, und anschließend verarbeitet und in einer konvergierten Datenbank für ML-Modelle gespeichert. Sobald die Modelle in der Datenbank trainiert wurden, können sie direkt mithilfe von SQL-Abfragen (unter Verwendung von PREDICTION-Operatoren) oder mit OML4Py-APIs bereitgestellt werden. Extern trainierte Modelle können mithilfe von OML Services bereitgestellt werden. Darüber hinaus ist in der Autonomous Database maschinelles Lernen für die Text-, Raum- und Diagrammanalyse verfügbar.
Diese Architektur verwendet die folgenden Komponenten:
Folgende Datenquellen werden abgedeckt:
Diese Architektur enthält die folgenden Komponenten im VCN:
Berücksichtigen Sie Folgendes für Big Data und Analysen.
Berücksichtigen Sie diese Optionen bei der Implementierung von maschinellem Lernen und künstlicher Intelligenz.
Antipattern
Beachten Sie beim Entwerfen einer Implementierung Folgendes:
Betrachten Sie die Alternativen zu der in diesem Muster beschriebenen Architektur und vermeiden Sie den Versuch, Antipattern zu implementieren.
Im Folgenden finden Sie Beispielimplementierungen, die Daten- und Analyseservices von Oracle Cloud Infrastructure (OCI) verwenden, um Big Data zu erfassen, zu speichern, zu katalogisieren, vorzubereiten, zu verarbeiten und zu analysieren.
Verwenden Sie Oracle Autonomous Data Warehouse als Data Warehouse oder Data Mart mit Oracle Analytics Cloud.
Verwalten Sie Daten in Autonomous Data Warehouse, und visualisieren Sie die Daten mit Oracle Analytics Cloud.
Erfahren Sie mehr über verwandte Ressourcen.