Wenn SQL nicht ausreicht: Steuerelemente für massive neue Rechenzentren

Autor: Judy Howell
Erstelldatum: 3 Juli 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Wenn SQL nicht ausreicht: Steuerelemente für massive neue Rechenzentren - Technologie
Wenn SQL nicht ausreicht: Steuerelemente für massive neue Rechenzentren - Technologie

Inhalt



Wegbringen:

Entwickler und Ingenieure müssen kontinuierlich daran arbeiten, die Dienste auf Plattformen zu beschleunigen und zu verbessern, die weit über ihre klassischen Archetypen der 1990er Jahre hinaus gewachsen sind.

Bei all dem Rummel um riesige NSA-Rechenzentren, in denen Millionen von Daten über unser Privatleben gespeichert sind, wurde über eine Sache nicht viel geredet, zumindest nicht über CNN. Es handelt sich um ein technisches Problem, das zusammen mit der Cloud-Technologie, Big Data und den beeindruckenden physischen Datenspeicherzentren, die derzeit auf der ganzen Welt gebaut werden, aufgetreten ist. Also, was ist es? Egal, wer eines der riesigen IT-Systeme verwaltet, auf denen diese Einrichtungen ausgeführt werden, es besteht ein Bedarf an Softwaresystemen, mit denen all diese Daten schnell in die Pipeline und aus der Pipeline gelangen können. Dieses Bedürfnis stellt eine der interessantesten IT-Fragen oder Rätsel dar, mit denen Fachleute heute konfrontiert sind.


Wie viele Experten betonen, geht die heutige extreme Nachfrage nach Datenverarbeitung weit über die traditionellen Ansätze hinaus. Einfach ausgedrückt, die Verwendung einfacher Datenbankstrukturen und Tools wie SQL-Abfrageschnittstellen wird nicht genügend Rechenleistung oder Funktionalität für die in den letzten Jahren entwickelten proprietären Systeme bieten. Die Archive der heutigen großen Technologieunternehmen benötigen extrem skalierbare Technologie. Sie benötigen Datenverarbeitungs-Tools, die Ein- und Ausgabeergebnisse in viel höherem Umfang ermöglichen, als dies mit einem einzelnen Server möglich ist. Sie benötigen Lösungen, die schnell auf Wachstumskurs gebracht werden können, Lösungen mit komplexen Ebenen der künstlichen Intelligenz, Lösungen, die für die einfache Verwaltung durch eine IT-Abteilung entwickelt wurden.

Die Frage ist, wie Unternehmen und Regierungsbehörden die Grenzen des traditionellen Datenverarbeitungswegs überwinden können. Schauen Sie sich hier eine vielversprechende Option an: Software, die Big Data verwaltet und mehrere Rechenzentren verwaltet.


Google File System: Eine große Fallstudie

Die firmeneigene Technologie, mit der Google auf seine Rechenzentren zugreift, ist eines der besten Beispiele für gängige Modelle für die Verarbeitung großer Datenmengen und die Verwaltung mehrerer Rechenzentren. Das 2003 entwickelte Google-Dateisystem (GFS) wurde entwickelt, um die zahlreichen schnellen Änderungen an Datensystemen zu unterstützen, die dazu beitragen, dass so viele neue Informationen auf und von einer einzelnen Plattform abgerufen werden können, auf die Millionen von Nutzern klicken die selbe Zeit. Experten bezeichnen dies als verteiltes Dateisystem und verwenden den Begriff "Datenobjektspeicher", um diese hochkomplexen Techniken zu beschreiben. In Wirklichkeit kratzen diese Begriffe jedoch nicht einmal an der Oberfläche, wenn sie beschreiben, was am Werk ist.

Die Funktionen und Komponenten eines Systems wie GFS sind zwar nicht mehr wegweisend, aber komplex. Viele von ihnen wurden auf dieser Website als relativ neue Innovationen behandelt, die Teil der Grundlagen für ein neues, stets aktuelles und stets vernetztes globales IT-System sind. Zusammengenommen ist ein System wie GFS viel mehr als die Summe seiner Teile: Es ist ein weitgehend unsichtbares, aber äußerst komplexes Netzwerk, in dem einzelne Datenstücke auf diese und jene Weise übertragen werden, die, wenn sie vollständig visuell modelliert werden, wie ein Chaos aussehen würden. Das Verstehen, wohin all die Daten gehen, erfordert viel Energie und Engagement, wie diejenigen, die die Kampfstationen dieser Systeme besetzen, leicht zugeben werden.

"Es gibt zu viele Details, die einen tiefgreifenden Einfluss auf die Benutzerfreundlichkeit haben - einschließlich externer und interner Fragmentierung, logbasierter und direkter Aktualisierungen sowie Transaktionskonsistenz -, um die Funktionsweise in einem einzigen kurzen Satz zusammenzufassen ", sagt Momchil Michailov, CEO und Mitbegründer von Sanbolic.

"Ein verteiltes Dateisystem ist entweder ein verteilter Aggregator lokaler Namespaces und freier Spaces der beteiligten Knoten oder ein lokales Dateisystem, das auf mehreren Knoten ausgeführt wird, die mithilfe einer verteilten Lock Manager-Komponente auf gemeinsam genutzten Speicher zugreifen", sagte er.

Kerry Lebel ist Senior Product Manager bei Automic, einem Unternehmen, das für seine skalierbaren Automatisierungsplattformen bekannt ist. Laut Lebel ist es zwar richtig, ein DFS als ein System zu beschreiben, das Workloads einfach Servern zuweist, die an kostengünstige Hardware angeschlossen sind, aber nicht die ganze Geschichte erzählt.

Keine Bugs, kein Stress - Ihre schrittweise Anleitung zur Erstellung lebensverändernder Software, ohne Ihr Leben zu zerstören

Sie können Ihre Programmierkenntnisse nicht verbessern, wenn sich niemand um die Softwarequalität kümmert.

"Was du am Ende vermisst, ist der coole Faktor von Wie sie tun, was sie tun ", sagte Lebel.

Wenn Sie sich von den technischen Details entfernen und nur über die Grundidee des verteilten Dateisystems nachdenken, wird der "coole Faktor" deutlich, von dem Lebel spricht. Diese Big-Data-Handling-Systeme ersetzen alte Datei- / Ordnersysteme durch Strukturen, die nicht nur mehrere Liefersysteme umfassen, sondern auch einen "objektorientierten" Ansatz, bei dem hier und da eine große Anzahl von Einheiten versenkt werden, um Engpässe zu vermeiden.

Denken Sie zum Beispiel an ein hochmodernes Autobahnsystem, auf dem Hunderttausende von Autos nicht sofort über eine Mehrspurstrecke geschleust werden, sondern zu kleinen Kleeblatt- oder Ochsenbogenzuflüssen hochgeschaufelt werden, die herumgeschleudert und gesendet werden auf verschiedenen Umwegen zu ihren Zielen. Vom Himmel aus sieht alles so choreografiert aus wie eine Schweizer Uhr. Das ist die Art von visuellem Modell, die Ingenieure betrachten, wenn sie sich neue Wege ausdenken, um Informationen um Einschränkungen herum zu leiten, indem sie sie auf verschiedene Ebenen eines mehrschichtigen Daten-Containment-Schemas "kicken". Abgesehen von den Spezifikationen ist dies das oberste Ziel eines Handhabungssystems: Diese in sich geschlossenen Objekte mit ihren eingebetteten Metadaten müssen mit höchster Geschwindigkeit dorthin gelangen, wo sie sein müssen, um Konsistenzziele zu erreichen, einen Endbenutzer zufriedenzustellen oder sogar eine Beobachtung oder Analyse auf höchster Ebene zu informieren.

Ein Blick auf die Kerntechnologie

Ein Artikel von Sean Gallagher, der auf Ars Technica veröffentlicht wurde, unterteilt das GFS-Design in etwas besser handhabbare Teile und gibt Hinweise darauf, was sich bei Google unter dem Blatt befindet.

GFS beginnt mit einem redundanten und fehlertoleranten Modell für das Lesen und Schreiben von Daten. Die Idee dabei ist, dass neue Systeme, anstatt ein bestimmtes Update auf ein einzelnes Laufwerk zu schreiben, Datenblöcke an mehrere Ziele schreiben. Auf diese Weise bleiben andere erhalten, wenn ein Schreibvorgang fehlschlägt. Um dies zu ermöglichen, werden die Daten von einer primären Netzwerkkomponente an andere untergeordnete Einheiten weitergeleitet, wobei die Daten erneut aggregiert werden, wenn ein Client dies "anfordert". All dies wird durch ein Metadatenprotokoll ermöglicht, mit dessen Hilfe festgestellt werden kann, wo sich bestimmte Aktualisierungen und Übertragungsergebnisse im übergeordneten System befinden.

Ein weiterer sehr wichtiger Aspekt dabei ist, wie diese duplikationsintensiven Systeme die Datenkonsistenz erzwingen. Gallagher merkt an, dass das GFS-Design ein gewisses Maß an Konsistenz einbüßt, während es gleichzeitig die "Atomizität" erzwingt oder das Prinzip schützt, wie Daten über mehrere Speichereinheiten hinweg aktualisiert werden, damit sie im Laufe der Zeit übereinstimmen. Googles "entspanntes Konsistenzmodell" scheint der grundlegenden Theorie des BASE-Modells zu folgen, die mehr Flexibilität für einen längeren Zeitraum für die Konsistenzerzwingung bietet.

Wie erreichen andere große Systeme dies?

"Wenn ein ausreichend großer Umfang erreicht ist, werden Inkonsistenzen oder Verfälschungen der Daten unvermeidlich", sagt Michailov. "Daher sollte ein primäres Ziel von verteilten Dateisystemen die Fähigkeit sein, so viele Operationen wie möglich bei Vorhandensein von Korruption auszuführen und gleichzeitig effiziente Methoden zur Behandlung der Korruption bereitzustellen." Michailov erwähnt auch die Notwendigkeit, die Leistung durch sorgfältige Implementierung von Redundanz zu erhalten.

"Wenn Sie beispielsweise Metadaten (Daten zu den Daten) auf jeder Festplatte erstellen, kann die Festplatte die richtige Datenstruktur wiederherstellen, wenn die Spiegelkopie beschädigt ist", so Michailov. "Darüber hinaus können RAID-Ebenen verwendet werden, um Speicherfehler auf Dateisystemaggregator- oder gemeinsam genutzten Volume-Manager-Ebenen zu bekämpfen."

Bei der Erörterung eines anderen Konsistenzmodells konzentriert sich Lebel auf ein System namens Hadoop Distributed File System (HDFS), das er als "Industriestandard" bezeichnet.

Laut Lebel wird in HDFS jeder Datenblock dreimal auf verschiedenen Knoten und auf zwei verschiedenen Racks repliziert. Die Daten werden Ende-zu-Ende geprüft. Fehler werden an NameNode gemeldet, einen Datenhandler, der beschädigte Blöcke beseitigt und neue erstellt.

All dies unterstützt die Arten von "sauberen Daten", die für die Integrität eines dieser Massendatensysteme so wichtig sind.

Pflege eines DFS

Ein weiterer ganz anderer Blick auf GFS geht auf einen Artikel von Wired-Autor Steven Levy vom Oktober 2012 zurück. Es ist viel kürzer, den Softwareansatz für die kollektive Top-Down-Netzwerkverarbeitung von Google zu charakterisieren.

"Im Laufe der Jahre", schreibt Levy, "hat Google auch ein Softwaresystem entwickelt, mit dem es seine unzähligen Server so verwalten kann, als wären sie eine riesige Einheit. Seine internen Entwickler können sich wie Marionettenmeister verhalten und Tausende von Computern zur Ausführung ausliefern." Aufgaben so einfach wie die Ausführung einer einzelnen Maschine. "

Dazu gehört auch eine Vielzahl von Wartungsarbeiten auf Cyber- und Umgebungsbasis, von dedizierten Testteams, die versuchen, Serversysteme zu "beschädigen", bis hin zu sorgfältig kontrollierten Temperaturen in den Hallen der Datenkrypta.

Levy erwähnt auch ergänzende Technologien für GFS, wie MapReduce, ein Cloud-Anwendungstool, und Hadoop, eine Analyse-Engine, die einige Designprinzipien mit GFS teilt. Diese Tools haben ihre eigenen Auswirkungen darauf, wie große Rechenzentrums-Handlingsysteme entworfen werden und welche Entwicklungen in Zukunft zu erwarten sind. (Weitere Informationen zu diesen Technologien finden Sie in The Evolution of Big Data.)

Michailov glaubt, dass MapReduce das Potenzial hat, immer größere Rechenzentrums-Systeme zu unterstützen, und spricht von einer "einzigen Implementierung" von gemeinsam genutzten und aggregierten Dateisystemen, die "die Namensknoten eines aggregierten Dateisystems in einem gemeinsam genutzten Cluster mit SSDs zur Speicherung behalten könnten . "

Für seinen Teil sieht Lebel eine Abkehr von der Stapelverarbeitung (der von Hadoop unterstützten Methode) zur Stream-Verarbeitung, die diese Datenoperationen näher an die Echtzeit bringt.

"Je schneller wir die Daten verarbeiten und den Entscheidungsträgern in Unternehmen oder unseren Kunden zur Verfügung stellen können, desto größer ist der Wettbewerbsvorteil", sagt Lebel, der auch vorschlägt, die oben genannte Verarbeitungsterminologie durch Begriffe zu ersetzen, die sich auf das Wesentliche konzentrieren Endbenutzer. Indem Lebel über "synchrone" Aktivitäten oder mit Endbenutzeraktionen synchronisierte Aktivitäten und "asynchrone" Aktivitäten nachdenkt, die hinsichtlich der Implementierung flexibler sind, können Unternehmen mithilfe von SLAs und anderen Ressourcen die Funktionsweise eines bestimmten Service-Systems definieren .

Das alles läuft in gewisser Weise darauf hinaus, dass Entwickler und Ingenieure kontinuierlich daran arbeiten müssen, die Dienste auf Plattformen zu beschleunigen und zu verbessern, die weit über ihre klassischen Archetypen aus den 1990er Jahren hinausgewachsen sind. Das bedeutet, die Maschinerie der Daten kritisch zu betrachten und Engpässe so zu überwinden, dass nicht nur eine wachsende Bevölkerung unterstützt wird, sondern dass sich die exponentiellen Veränderungen mit einer Geschwindigkeit vollziehen, die Experten als "die nächste industrielle Revolution" bezeichnen. Es ist wahrscheinlich, dass diejenigen, die an diesen Fronten am meisten Fuß fassen, die Märkte und Volkswirtschaften der Zukunft dominieren werden.