Heim  >  Artikel  >  Mehrere Schlüsseltechnologien der Big-Data-Architektur

Mehrere Schlüsseltechnologien der Big-Data-Architektur

-
-Original
2018-03-10 09:41:205146Durchsuche

Der Wiederaufbau einer Unternehmens-IT-Infrastrukturplattform ist eine komplexe Aufgabe. Replatforming wird häufig durch eine Veränderung wichtiger Geschäftsfaktoren ausgelöst, und genau das geschieht derzeit. Einfach ausgedrückt: Die Plattformen, die seit fast 30 Jahren die IT-Technologie von Unternehmen dominieren, können den Anforderungen der Arbeitslasten, die für die Weiterentwicklung des Unternehmens erforderlich sind, nicht mehr gerecht werden.

Mehrere Schlüsseltechnologien der Big-Data-Architektur

Der Kern der digitalen Transformation sind Daten, die zum Wertvollsten im Geschäftsleben geworden sind. Aufgrund inkompatibler Formate, Einschränkungen herkömmlicher Datenbanken und der Unfähigkeit, Daten aus mehreren Quellen flexibel zu kombinieren, leiden Unternehmen seit langem unter dem Datenverbrauch, den sie verbrauchen. Das Aufkommen neuer Technologien verspricht, all dies zu ändern.

Die Verbesserung von Softwarebereitstellungsmodellen ist ein wichtiger Aspekt bei der Beseitigung von Hindernissen bei der Datennutzung. Eine größere „Datenagilität“ erfordert auch flexiblere Datenbanken und skalierbarere Echtzeit-Streaming-Plattformen. Tatsächlich gibt es mindestens sieben grundlegende Technologien, die kombiniert werden können, um Unternehmen eine flexible Echtzeit-„Datenstruktur“ bereitzustellen.

Im Gegensatz zu den Technologien, die sie ersetzen, lassen sich diese sieben Softwareinnovationen so skalieren, dass sie den Bedürfnissen vieler Benutzer und vielen Anwendungsfällen gerecht werden. Für Unternehmen haben sie die Möglichkeit, schnellere und fundiertere Entscheidungen zu treffen und bessere Kundenerlebnisse zu schaffen.

1. NoSQL-Datenbank

RDBMS dominiert seit fast 30 Jahren den Datenbankmarkt. Angesichts des kontinuierlichen Wachstums des Datenvolumens und der Beschleunigung der Datenverarbeitungsgeschwindigkeit haben traditionelle relationale Datenbanken jedoch ihre Mängel gezeigt. NoSQL-Datenbanken erobern aufgrund ihrer Geschwindigkeit und Skalierbarkeit. Im Fall von Dokumentendatenbanken stellen sie aus softwaretechnischer Sicht ein einfacheres Modell dar. Dieses einfachere Entwicklungsmodell beschleunigt die Markteinführung und hilft Unternehmen, schneller auf Kunden- und interne Benutzeranforderungen zu reagieren.

2. Live-Streaming-Plattform

Die Reaktion auf Kunden in Echtzeit ist entscheidend für das Kundenerlebnis. Es ist kein Geheimnis, dass verbraucherorientierte Branchen im letzten Jahrzehnt enorme Umwälzungen erlebt haben. Dabei geht es um die Fähigkeit eines Unternehmens, in Echtzeit auf Benutzer zu reagieren. Der Umstieg auf ein Echtzeitmodell erfordert Event-Streaming.

Nachrichtengesteuerte Apps gibt es schon seit Jahren. Allerdings sind die heutigen Streaming-Plattformen viel größer und günstiger als je zuvor. Die jüngsten Fortschritte in der Streaming-Technologie haben die Tür zu vielen neuen Möglichkeiten zur Optimierung Ihres Geschäfts geöffnet. Durch die Bereitstellung von Echtzeit-Feedbackschleifen für Softwareentwicklungs- und Testteams kann Event-Streaming Unternehmen auch dabei helfen, die Produktqualität zu verbessern und neue Software schneller zu entwickeln.

3. Docker und Container

Container bieten große Vorteile für Entwickler und Betreiber sowie für die Organisation selbst. Der traditionelle Ansatz zur Infrastrukturisolierung ist die statische Partitionierung, die jeder Arbeitslast einen separaten festen Ressourcenblock zuweist (unabhängig davon, ob es sich um einen physischen Server oder eine virtuelle Maschine handelt). Statische Partitionierung kann die Fehlerbehebung erleichtern, allerdings sind die Kosten für erheblich nicht ausgelastete Hardware hoch. Beispielsweise verbraucht der durchschnittliche Webserver nur 10 % der gesamten verfügbaren Rechenleistung.

Der große Vorteil der Containertechnologie ist ihre Fähigkeit, eine neue Art der Isolierung zu schaffen. Diejenigen, die sich mit Containern am besten auskennen, glauben vielleicht, dass sie durch den Einsatz von Tools wie Ansible, Puppet oder Chef die gleichen Vorteile erzielen können, aber tatsächlich ergänzen sich diese Technologien hervorragend. Unabhängig davon, wie sehr sich Unternehmen auch bemühen, gelingt es diesen Automatisierungstools nicht, die erforderliche Isolation zu erreichen, um Arbeitslasten frei zwischen verschiedenen Infrastruktur- und Hardware-Setups zu verschieben. Derselbe Container kann ohne Änderungen auf Bare-Metal-Hardware in einem lokalen Rechenzentrum oder auf einer virtuellen Maschine in der öffentlichen Cloud ausgeführt werden. Das ist echte Workload-Mobilität.

4. Container-Repositories

Container-Repositories sind entscheidend für die Agilität. Ohne einen DevOps-Prozess zum Erstellen von Container-Images und einen Papierkorb zum Speichern dieser Images müsste jeder Container auf jeder Maschine erstellt werden, bevor er ausgeführt werden könnte. Ein Repository ermöglicht das Starten von Container-Images auf dem Computer, der das Repository liest. Bei der Verarbeitung über mehrere Rechenzentren hinweg wird dies komplexer. Wenn Sie ein Container-Image in einem Rechenzentrum erstellen, wie verschieben Sie das Image im Idealfall durch die Nutzung einer konvergenten Datenplattform?

Ein wichtiges Detail hierbei ist, dass sich die Spiegelungsfunktionen zwischen On-Premises- und Cloud-Computing erheblich von den Spiegelungsfunktionen zwischen den Rechenzentren eines Unternehmens unterscheiden können. Konvergente Datenplattformen werden dieses Problem für Unternehmen lösen, indem sie diese Funktionen unabhängig davon bereitstellen, ob in der Organisation eine Rechenzentrumsinfrastruktur oder eine Cloud-Computing-Infrastruktur verwendet wird.

5. Container-Orchestrierung

Jeder Container scheint über ein eigenes privates Betriebssystem zu verfügen und nicht über eine statische Hardwarepartitionierung. Im Gegensatz zu virtuellen Maschinen erfordern Container keine statische Partitionierung von Rechenleistung und Speicher. Dadurch können Administratoren eine große Anzahl von Containern auf einem Server starten, ohne sich Gedanken über große Speichermengen machen zu müssen. Mit Container-Orchestrierungstools wie Kubernetes wird es sehr einfach, Container zu starten, zu verschieben und an anderer Stelle in der Umgebung neu zu starten.

Nachdem neue Infrastrukturkomponenten vorhanden sind, werden Dokumentdatenbanken wie MapR-DB oder MongoDB, Event-Streaming-Plattformen wie MapR-ES oder Apache Kafka (Orchestrierungstools wie Kubernetes) und nach der Implementierung des DevOps-Prozesses zum Erstellen und Bereitstellen von Software erstellt Bei Docker-Containern muss man die Frage verstehen, welche Komponenten in diesen Containern bereitgestellt werden sollen.

6. Microservices

Historisch gesehen ist das Konzept der Microservices nicht neu. Der Unterschied besteht heute darin, dass unterstützende Technologien (NoSQL-Datenbanken, Event-Streaming, Container-Orchestrierung) mit der Erstellung von Tausenden von Microservices skaliert werden können. Ohne diese neuen Ansätze für Datenspeicherung, Event-Streaming und Architekturorchestrierung wären groß angelegte Microservice-Bereitstellungen nicht möglich. Die für die Verwaltung großer Datenmengen, Ereignisse und Containerinstanzen erforderliche Infrastruktur lässt sich nicht auf das erforderliche Niveau skalieren.

Bei Microservices dreht sich alles um die Bereitstellung von Agilität. Microservices bestehen normalerweise aus einer Funktion oder einem kleinen Satz von Funktionen. Je kleiner und fokussierter die funktionalen Arbeitseinheiten sind, desto einfacher ist es, Dienste zu erstellen, zu testen und bereitzustellen. Diese Dienste müssen entkoppelt werden, sonst verliert das Unternehmen das Versprechen von Microservices mit Agilität. Microservices können von anderen Diensten abhängen, typischerweise jedoch über eine REST-API mit Lastenausgleich oder Event-Streaming. Durch den Einsatz von Event-Streaming können Unternehmen den Verlauf von Ereignissen anhand von Anfrage- und Antwortthemen einfach verfolgen. Dieser Ansatz bietet erhebliche Vorteile bei der Fehlerbehebung, da der gesamte Anfragefluss und alle Daten der Anfrage zu jedem Zeitpunkt wiedergegeben werden können.

Da Microservices einen kleinen Teil der Arbeit kapseln und voneinander entkoppelt sind, gibt es kaum oder gar keine Hindernisse für den Austausch oder die Aktualisierung von Services im Laufe der Zeit. Im Legacy-Modus bedeutete die Verwendung einer engen Kopplung wie RPC, dass alle Verbindungen geschlossen und anschließend wiederhergestellt werden mussten. Der Lastausgleich stellt bei der Implementierung ein großes Problem dar, da die manuelle Konfiguration sie fehleranfällig macht.

7. Functions as a Service

So wie wir gesehen haben, dass Microservices die Branche dominieren, werden wir auch den Aufstieg von Serverless Computing erleben oder es vielleicht genauer als Functions as a Service bezeichnen ( FaaS). FaaS erstellt Microservices so, dass der Code in ein leichtgewichtiges Framework verpackt, in einen Container eingebaut, bei Bedarf (basierend auf einem Auslöser) ausgeführt und dann dank des leichtgewichtigen Frameworks automatisch geladen werden kann. Das Schöne an FaaS ist, dass sich Entwickler fast ausschließlich auf diese Funktionalität konzentrieren können. Daher scheint FaaS die logische Schlussfolgerung des Microservices-Ansatzes zu sein.

Das Auslösen von Ereignissen ist eine Schlüsselkomponente von FaaS. Ohne sie können Funktionen nur dann aufgerufen und Ressourcen verbraucht werden, wenn Arbeit erledigt werden muss. Der automatische Aufruf von Funktionen macht FaaS wirklich wertvoll. Stellen Sie sich vor, jedes Mal, wenn jemand das Profil eines Benutzers liest, gibt es ein Audit-Ereignis, eine Funktion, die ausgeführt werden muss, um das Sicherheitsteam zu benachrichtigen. Genauer gesagt werden möglicherweise nur bestimmte Arten von Datensätzen herausgefiltert. Es kann optional sein, schließlich handelt es sich um eine vollständig anpassbare Geschäftsfunktion. Es ist wichtig zu beachten, dass es sehr einfach ist, einen solchen Workflow mit einem Bereitstellungsmodell wie FaaS durchzuführen.

Ereignisse zusammenfügen

Die Magie hinter dem Auslösen von Diensten besteht eigentlich nur aus Ereignissen in einem Ereignisstrom. Bestimmte Arten von Ereignissen werden häufiger als andere als Auslöser verwendet, aber jedes Ereignis, das ein Unternehmen als Auslöser wünscht, kann zum Auslöser werden. Das auslösende Ereignis kann eine Dokumentaktualisierung sein, bei der der OCR-Prozess für das neue Dokument ausgeführt wird und dann der Text aus dem OCR-Prozess zur NoSQL-Datenbank hinzugefügt wird. Wenn man es interessanter betrachtet, kann die Bilderkennung und -bewertung jedes Mal, wenn ein Bild hochgeladen wird, über ein Framework für maschinelles Lernen erfolgen. Hier gibt es keine grundsätzlichen Einschränkungen. Wenn ein Triggerereignis definiert ist, tritt ein Ereignis ein, das Ereignis löst die Funktion aus und die Funktion schließt ihre Arbeit ab.

FaaS wird die nächste Stufe bei der Einführung von Microservices sein. Es gibt jedoch einen wichtigen Faktor, der bei der Herangehensweise an FaaS berücksichtigt werden muss, nämlich die Anbieterbindung. FaaS verbirgt spezifische Speichermechanismen, spezifische Hardware-Infrastruktur und Orchestrierung, was alles großartige Dinge für Entwickler ist. Aufgrund dieser Abstraktion stellen gehostete FaaS-Angebote jedoch eine der größten Möglichkeiten für die Anbieterbindung dar, die die IT-Branche je gesehen hat. Da diese APIs nicht standardisiert sind, ist die Migration von einem FaaS-Produkt in der öffentlichen Cloud nahezu unmöglich, ohne dass nahezu 100 % der geleisteten Arbeit verloren gehen. Wenn FaaS organisierter angegangen wird und Ereignisse von konvergenten Datenplattformen genutzt werden, wird der Wechsel zwischen Cloud-Anbietern einfacher.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn