Was ist besser - Oracle oder Redis oder wie man die Wahl der Plattform rechtfertigt

"Nun, das ist notwendig", sagte sie laut, ohne jemanden anzusprechen. - Nun das ist notwendig! Es steht also direkt geschrieben - die Hauptaufgabe des Unternehmens ist es, im Interesse der Aktionäre Gewinn zu erzielen. Na du denkst! Sie haben vor nichts Angst!



Julius Dubov, "Das kleine Böse"


Wenn Sie eine solche Überschrift sehen, haben Sie wahrscheinlich bereits entschieden, dass der Artikel entweder Dummheit oder eine Provokation ist. Aber nicht zu Schlussfolgerungen springen: Mitarbeiter großer Unternehmen, insbesondere Unternehmen mit staatlicher Beteiligung, müssen häufig verschiedene Plattformen vergleichen, auch völlig unterschiedliche, wie zum Beispiel die im Titel.







Natürlich vergleicht niemand DBMS so, weil ihre Stärken und Schwächen bekannt sind. Plattformen, die ein angewandtes Problem lösen, werden in der Regel verglichen. In dem Artikel werde ich die gleichzeitig verwendete Technik am Beispiel von Datenbanken als Thema zeigen, das Habrs Lesern nicht durch Hörensagen vertraut ist. So,



Motivation



Wenn Sie ein Bildungsprojekt oder ein Hobbyprojekt starten, kann die Motivation für die Auswahl einer Plattform sehr unterschiedlich sein: „Ich kenne diese Plattform am besten“, „Ich bin daran interessiert, diese zu verstehen“, „Hier ist die beste Dokumentation“ ... Bei einem kommerziellen Unternehmen ist das Auswahlkriterium eines: Wie viel muss ich bezahlen und was bekomme ich für dieses Geld?



Natürlich möchten Sie weniger bezahlen und mehr bekommen. Es ist jedoch notwendig zu entscheiden, was wichtiger ist - weniger bezahlen oder mehr erhalten und jedem Knoten ein Gewicht zuweisen. Nehmen wir an, dass eine qualitativ hochwertige Lösung für uns wichtiger ist als eine billige, und wir weisen dem Knoten "Kosten" eine Gewichtung von 40% und dem Knoten "Chancen" ein Gewicht von 60% zu.







In großen Unternehmen ist normalerweise das Gegenteil der Fall - das Gewicht des Wertes fällt nicht unter 50% und möglicherweise über 60%. Im Modellbeispiel ist es nur wichtig, dass das Gesamtgewicht der untergeordneten Knoten eines übergeordneten Knotens 100% beträgt.



Abschaltbedingungen



Auf der Website db-engines.com sind etwa 500 Datenbankverwaltungssysteme bekannt. Wenn Sie eine Zielplattform aus so vielen Optionen auswählen, erhalten Sie möglicherweise einen Übersichtsartikel, jedoch kein kommerzielles Projekt. Um den Auswahlraum zu verringern, werden Abschneidekriterien formuliert. Wenn die Plattform diese Kriterien nicht erfüllt, wird dies nicht berücksichtigt.



Cutoff-Kriterien können sich auf technologische Merkmale beziehen, zum Beispiel:



  • ACID garantiert;
  • relationales Datenmodell;
  • SQL-Sprachunterstützung (Hinweis: Dies ist nicht dasselbe wie "relationales Modell").
  • die Möglichkeit der horizontalen Skalierung.


Es kann allgemeine Kriterien geben:



  • Verfügbarkeit kommerzieller Unterstützung in Russland;
  • Open Source;
  • Verfügbarkeit der Plattform im Register des Ministeriums für Telekommunikation und Massenkommunikation;
  • das Vorhandensein der Plattform in einer Bewertung (zum Beispiel in den ersten hundert der Bewertung von db-engines.com);
  • Verfügbarkeit von Experten auf dem Markt (z. B. basierend auf den Ergebnissen der Suche nach dem Plattformnamen im Lebenslauf auf der Website hh.ru).


Schließlich kann es unternehmensspezifische Kriterien geben:



  • Verfügbarkeit von Spezialisten im Personal;
  • Kompatibilität mit dem Überwachungssystem X oder mit dem Backup-System Y, an das alle Wartungsarbeiten gebunden sind ...


Das Wichtigste ist, eine Liste der Abschneidekriterien zu haben. Andernfalls wird es definitiv einen Experten (oder "Experten") geben, der das besondere Vertrauen des Managements genießt und der sagt: "Warum haben Sie sich nicht für Plattform Z entschieden, ich weiß, dass es das Beste ist."



Geschätzte Kosten



Die Kosten der Lösung setzen sich offensichtlich aus den Lizenzkosten, den Wartungskosten und den Ausrüstungskosten zusammen.



Wenn die Systeme ungefähr derselben Klasse angehören (z. B. Microsoft SQL Server und PostgreSQL), können wir der Einfachheit halber davon ausgehen, dass die Anzahl der Geräte für beide Lösungen ungefähr gleich ist. Auf diese Weise können Sie die Geräte nicht bewerten, wodurch Sie viel Zeit und Mühe sparen. Wenn Sie völlig unterschiedliche Systeme vergleichen müssen (z. B. Oracle vs. Redis), ist es offensichtlich, dass für eine korrekte Bewertung eine Größenanpassung (Berechnung der Gerätemenge) erforderlich ist. Die Dimensionierung eines nicht existierenden Systems ist eine sehr undankbare Aufgabe, daher versuchen sie immer noch, einen solchen Vergleich zu vermeiden. Dies ist einfach: Datenverlust ohne Daten und ein relationales Modell werden unter Beschneidungsbedingungen geschrieben oder umgekehrt - eine Last von 50.000 Transaktionen pro Sekunde.



Um Lizenzen zu bewerten, reicht es aus, den Anbieter oder seine Partner nach den Kosten einer Lizenz für eine feste Anzahl von Kernen und Support für einen festen Zeitraum zu fragen. In der Regel haben Unternehmen bereits enge Beziehungen zu Softwareanbietern. Wenn die Datenbankabteilung die Kostenfrage nicht alleine beantworten kann, reicht ein Brief aus, um diese Informationen zu erhalten.



Verschiedene Anbieter haben möglicherweise unterschiedliche Lizenzierungsmetriken: nach Anzahl der Kerne, Datenmenge oder Anzahl der Knoten. Die Standby-Datenbank kann kostenlos sein oder auf die gleiche Weise wie die Hauptdatenbank lizenziert werden. Wenn nur einige Unterschiede in den Metriken festgestellt werden, müssen Sie den Modellstand detailliert beschreiben und die Lizenzkosten für den Stand berechnen.



Ein wichtiger Punkt für einen korrekten Vergleich sind die gleichen Unterstützungsbedingungen. Beispielsweise kostet der Oracle-Support 22% des Lizenzpreises pro Jahr, und der PostgreSQL-Support kostet nichts. Ist es richtig zu vergleichen? Nein, denn ein Fehler, der nicht alleine behoben werden kann, hat ganz andere Konsequenzen: Im ersten Fall helfen Support-Spezialisten schnell, ihn zu beheben, und im zweiten Fall besteht die Gefahr einer Projektverzögerung oder Ausfallzeit des fertigen Systems auf unbestimmte Zeit.



Es gibt drei Möglichkeiten, die Berechnungsbedingungen auszugleichen:



  1. Verwenden Sie Oracle ohne Unterstützung (in Wirklichkeit passiert dies nicht).
  2. Kaufen Sie PostgreSQL-Support - zum Beispiel bei Postgres Professional.
  3. Berücksichtigen Sie Risiken, die mit mangelnder Unterstützung verbunden sind.


Die Berechnung von Risiken kann beispielsweise folgendermaßen aussehen: Im Falle eines schwerwiegenden Datenbankfehlers beträgt die Ausfallzeit des Systems 1 Werktag. Der geplante Gewinn aus der Nutzung des Systems beträgt 40 Milliarden mongolische Tugriks pro Jahr, die Unfallhäufigkeit wird auf 1/400 geschätzt, und das Risiko mangelnder Unterstützung wird auf etwa 100 Millionen mongolische Tugriks pro Jahr geschätzt. Natürlich sind „geplanter Gewinn“ und „geschätzte Unfallrate“ virtuelle Größen, aber es ist viel besser, ein solches Modell zu haben, als keines zu haben.



In der Realität ist das System möglicherweise zu wichtig, und die Reputationsverluste aufgrund längerer Ausfallzeiten sind inakzeptabel, sodass Unterstützung erforderlich ist. Wenn Ausfallzeiten zulässig sind, kann das Löschen des Supports manchmal ein guter Weg sein, um Geld zu sparen.



Angenommen, nach all den Berechnungen betrugen die Kosten für die Betriebsplattform A für 5 Jahre 800 Millionen mongolische Tugriks, die Kosten für die Betriebsplattform B - 650 Millionen Tugriks und die Kosten für die Betriebsplattform C - 600 Millionen Tugriks. Plattform C erhält als Gewinner einen vollen Punkt für die Kosten und Plattform A und B - etwas weniger, je nachdem, wie oft sie teurer sind. In diesem Fall - 0,75 bzw. 0,92 Punkte.



Chancenbewertung



Die Bewertung von Chancen ist in viele Gruppen unterteilt, deren Anzahl nur durch die Vorstellungskraft der Person, die die Bewertung vornimmt, begrenzt ist. Die beste Option scheint die Aufteilung der Fähigkeiten in Teams zu sein, die diese Fähigkeiten nutzen werden. In unserem Beispiel sind dies Entwickler, Administratoren und Informationssicherheitsbeauftragte. Nehmen wir an, dass die Gewichte dieser Funktionen auf 40:40:20 verteilt sind.



Entwicklungsfunktionen umfassen:



  • einfache Datenmanipulation;
  • Skalierung;
  • das Vorhandensein von Sekundärindizes.


Die Liste der Kriterien ist ebenso wie ihre Gewichte sehr subjektiv. Selbst wenn Sie dasselbe Problem lösen, unterscheiden sich diese Listen, Artikelgewichte und Antworten je nach Zusammensetzung Ihres Teams erheblich. Zum Beispiel verwendet Facebook MySQL, um Daten zu speichern, und Instagram baut auf Cassandra auf. Es ist unwahrscheinlich, dass die Entwickler dieser Anwendungen solche Tabellen ausgefüllt haben. Man kann nur vermuten, dass Mark Zuckerberg sich für ein vollwertiges relationales Modell entschieden hat, das dafür bezahlt wurde, dass angewandtes Sharding erforderlich ist, während Kevin Systrom die Skalierung mithilfe der Plattform festlegte und den Komfort des Datenzugriffs opferte.



Zu den Verwaltungsfunktionen gehören:



  • Backup-Systemfunktionen;
  • einfache Überwachung;
  • Komfort des Kapazitätsmanagements - Festplatten und Knoten;
  • Datenreplikationsfunktionen.


Bitte beachten Sie, dass der Wortlaut der Fragen quantifizierbar sein muss. Sie können sogar vereinbaren, wie eine bestimmte Funktion bewertet werden soll. Versuchen wir beispielsweise, die Sicherungstools am Beispiel der mit dem Oracle DBMS gelieferten Tools zu bewerten:



Werkzeug Ein Kommentar Bewertung
imp / exp Daten hochladen und herunterladen 0,1
Backup starten / beenden Dateien kopieren 0,3
RMAN Inkrementelle Kopierfähigkeit 0,7
ZDLRA Nur inkrementelle Kopie, schnellste Wiederherstellung bis zum Punkt 1.0


Wenn es keine klaren Bewertungskriterien gibt, ist es sinnvoll, mehrere Experten zu bitten, Noten zu vergeben und diese dann zu mitteln.



Lassen Sie uns abschließend nur die Informationssicherheitsfunktionen auflisten:



  • Verfügbarkeit von Richtlinien zur Kennwortverwaltung;
  • die Fähigkeit, externe Authentifizierungstools (LDAP, Kerberos) zu verbinden;
  • Vorbild des Zugangs;
  • ;
  • ;
  • (TLS);
  • .




Unabhängig davon möchte ich davor warnen, die Ergebnisse von Lasttests, die Sie nicht durchgeführt haben, als Argumente zu verwenden.



Erstens können sich die Datenstruktur und das Lastprofil der getesteten Anwendungen erheblich von der Aufgabe unterscheiden, die Sie lösen werden. Vor ungefähr 10-15 Jahren liebten Datenbankanbieter es, die TPC-Benchmark-Ergebnisse zur Schau zu stellen, aber jetzt scheint niemand diese Ergebnisse ernst zu nehmen.



Zweitens hängt die Leistung des Systems stark von der Plattform ab, für die der Code ursprünglich geschrieben wurde, und von der Hardware, auf der der Test durchgeführt wurde. Ich habe viele Benchmarks gesehen, die Oracle mit PostgreSQL verglichen haben. Die Ergebnisse reichen von der bedingungslosen Überlegenheit eines Systems bis zur ebenso bedingungslosen Überlegenheit eines anderen.



Und drittens wissen Sie nichts darüber, wer den Test durchgeführt hat. Beide Qualifikationen, die sich auf die Qualität des Betriebssystems und die Anpassung der Plattform auswirken, sind wichtig, ebenso wie die Motivation, die die Testergebnisse stärker beeinflusst als alle anderen Faktoren zusammen.



Wenn die Leistung ein kritischer Faktor ist, führen Sie den Test selbst durch, vorzugsweise mit Hilfe von Spezialisten, die das Produktionssystem konfigurieren und warten.



Ergebnis



Schließlich sollte das Ergebnis aller geleisteten Arbeit eine Tabelle sein, in der alle Schätzungen zusammengefasst, multipliziert und zusammengefasst werden:







Wie Sie verstehen, können Sie durch Ändern der Gewichte und Anpassen der Schätzungen jedes gewünschte Ergebnis erzielen, aber dies ist eine völlig andere Geschichte ...



All Articles