Was ist besser – Oracle oder Redis oder wie man die Wahl der Plattform begründet

„Das ist notwendig“, sagte sie laut und wandte sich an niemanden. - Das ist notwendig! Genau so heißt es: Die Hauptaufgabe eines Unternehmens besteht darin, im Interesse der Aktionäre Gewinne zu erwirtschaften. Nun, denken Sie darüber nach! Sie haben vor nichts Angst!

Yuliy Dubov, „Das kleinere Übel“

Nachdem Sie eine solche Schlagzeile gesehen haben, haben Sie wahrscheinlich bereits entschieden, dass der Artikel entweder Dummheit oder eine Provokation ist. Aber ziehen Sie keine voreiligen Schlüsse: Mitarbeiter großer Konzerne, insbesondere Konzerne mit staatlicher Beteiligung, müssen nicht selten verschiedene Plattformen vergleichen, auch völlig unterschiedliche – zum Beispiel die im Titel.

Was ist besser – Oracle oder Redis oder wie man die Wahl der Plattform begründet

Natürlich vergleicht niemand DBMS auf diese Weise, da ihre Stärken und Schwächen bekannt sind. In der Regel werden Plattformen verglichen, die ein bestimmtes Anwendungsproblem lösen. In dem Artikel werde ich die Methodik, die in diesem Fall verwendet wird, am Beispiel von Datenbanken als einem Thema zeigen, das den Habr-Lesern aus erster Hand bekannt ist. Also,

Motivation

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

Natürlich möchten Sie weniger bezahlen und mehr bekommen. Sie müssen jedoch entscheiden, was wichtiger ist – weniger bezahlen oder mehr bekommen – und jedem Knoten eine Gewichtung zuweisen. Nehmen wir an, dass uns eine qualitativ hochwertige Lösung wichtiger ist als eine günstige, und weisen dem Knoten „Kosten“ eine Gewichtung von 40 % und dem Knoten „Chancen“ eine Gewichtung von 60 % zu.

Was ist besser – Oracle oder Redis oder wie man die Wahl der Plattform begründet

In großen Konzernen ist das Gegenteil meist der Fall – der Kostenanteil sinkt nicht unter 50 %, vielleicht sogar über 60 %. Im Modellbeispiel kommt es lediglich darauf an, dass das Gesamtgewicht der untergeordneten Knoten eines beliebigen übergeordneten Knotens 100 % betragen muss.

Cut-Off-Bedingungen

Site db-engines.com Es sind etwa 500 Datenbankverwaltungssysteme bekannt. Wenn Sie aus so vielen Optionen eine Zielplattform auswählen, erhalten Sie natürlich möglicherweise einen Übersichtsartikel, aber kein kommerzielles Projekt. Um den Auswahlraum zu reduzieren, werden Abschneidekriterien formuliert. Erfüllt die Plattform diese Kriterien nicht, wird sie nicht berücksichtigt.

Abschneidekriterien können sich auf technologische Merkmale beziehen, zum Beispiel:

  • ACID-Garantien;
  • relationales Datenmodell;
  • Unterstützung der SQL-Sprache (beachten Sie, dass dies nicht dasselbe ist wie das „relationale Modell“);
  • 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;
  • Präsenz der Plattform in einer Bewertung (z. B. in den ersten Hundert der db-engines.com-Bewertung);
  • die Präsenz von Experten auf dem Markt (z. B. basierend auf den Ergebnissen der Suche nach dem Namen der Plattform in einem Lebenslauf auf der Website hh.ru).

Schließlich kann es unternehmensspezifische Kriterien geben:

  • Verfügbarkeit von Fachkräften im Personal;
  • Kompatibilität mit dem Überwachungssystem X oder dem Backup-System Y, auf dem die gesamte Unterstützung basiert...

Das Wichtigste ist, dass es eine Liste mit Abschneidekriterien gibt. Andernfalls wird es bestimmt einen Experten (oder „Experten“) geben, der das besondere Vertrauen des Managements genießt und sagen wird: „Warum haben Sie sich nicht für die Plattform Z entschieden? Ich weiß, das ist die beste.“

Geschätzte Kosten

Die Kosten der Lösung setzen sich selbstverständlich aus den Lizenzkosten, den Supportkosten und den Gerätekosten 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 der Umfang der Ausrüstung für beide Lösungen ungefähr gleich ist. Dies erspart Ihnen die Bewertung der Ausrüstung und spart so viel Zeit und Mühe. 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ößenbestimmung (Berechnung der Gerätemenge) erforderlich ist. Die Dimensionierung eines nicht existierenden Systems ist eine sehr undankbare Aufgabe, daher versuchen sie dennoch, solche Vergleiche zu vermeiden. Dies ist einfach zu bewerkstelligen: Unter den Cut-off-Bedingungen wird kein Datenverlust und ein relationales Modell geschrieben oder umgekehrt – eine Last von 50 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 Datenbankbetriebsabteilung die Kostenfrage nicht alleine beantworten kann, reicht ein Brief, um diese Informationen einzuholen.

Verschiedene Anbieter können unterschiedliche Lizenzierungsmetriken haben: nach Anzahl der Kerne, Datenvolumen oder Anzahl der Knoten. Die Standby-Basis kann kostenlos sein oder auf die gleiche Weise wie die Hauptbasis lizenziert werden. Sollten Unterschiede in den Maßzahlen 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 gleiche Supportbedingungen. Beispielsweise kostet der Oracle-Support 22 % des Lizenzpreises pro Jahr, für den PostgreSQL-Support müssen Sie jedoch nicht bezahlen. Ist es richtig, so zu vergleichen? Nein, denn ein Fehler, der nicht selbst behoben werden kann, hat ganz andere Konsequenzen: Im ersten Fall helfen Ihnen Support-Spezialisten schnell bei der Behebung, im zweiten Fall besteht die Gefahr einer Verzögerung des Projekts oder eines Ausfalls des fertigen Projekts System auf unbestimmte Zeit.

Sie können die Berechnungsbedingungen auf drei Arten angleichen:

  1. Verwenden Sie Oracle ohne Support (in der Realität passiert dies nicht).
  2. Kaufen Sie Support für PostgreSQL – zum Beispiel von Postgres Professional.
  3. Berücksichtigen Sie die Risiken, die mit mangelnder Unterstützung verbunden sind.

Eine Risikoberechnung könnte beispielsweise so aussehen: Im Falle eines schwerwiegenden Datenbankausfalls würde die Systemausfallzeit 1 Werktag betragen. Der prognostizierte Gewinn aus der Nutzung des Systems beträgt 40 Milliarden MNT pro Jahr, die Unfallrate wird auf 1/400 geschätzt, daher wird das Risiko mangelnder Unterstützung auf etwa 100 Millionen MNT pro Jahr geschätzt. Natürlich sind „geplanter Gewinn“ und „geschätzte Unfallhäufigkeit“ virtuelle Werte, aber es ist viel besser, ein solches Modell zu haben, als keines zu haben.

In Wirklichkeit ist das System möglicherweise zu wichtig, als dass die Rufschädigung durch langfristige Ausfallzeiten inakzeptabel wäre, sodass Unterstützung erforderlich ist. Wenn Ausfallzeiten zugelassen werden, kann die Ablehnung des Supports manchmal eine gute Möglichkeit sein, Geld zu sparen.

Nehmen wir an, dass nach allen Berechnungen die Kosten für den Betrieb von Plattform A für 5 Jahre 800 Millionen MNT betragen, die Kosten für den Betrieb von Plattform B 650 Millionen MNT und die Kosten für den Betrieb von Plattform C 600 Millionen MNT. Plattform C erhält als Gewinner den vollen Punkt für den Preis, während Plattform A und B etwas weniger erhalten, je nachdem, wie oft sie teurer sind. In diesem Fall – 0.75 bzw. 0.92 Punkte.

Chancenbewertung

Die Bewertung von Chancen wird in viele Gruppen eingeteilt, deren Anzahl nur durch die Vorstellungskraft des Bewertenden begrenzt ist. Die optimale Option scheint darin zu bestehen, die Fähigkeiten in Teams aufzuteilen, die diese Fähigkeiten nutzen; In unserem Beispiel sind dies Entwickler, Administratoren und Informationssicherheitsbeauftragte. Nehmen wir an, dass die Gewichte dieser Funktionen im Verhältnis 40:40:20 verteilt sind.

Zu den Entwicklungsfunktionen gehören:

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

Die Liste der Kriterien sowie deren Gewichtung sind sehr subjektiv. Selbst wenn Sie dasselbe Problem lösen, variieren diese Listen, Elementgewichtungen und Antworten je nach Zusammensetzung Ihres Teams erheblich. Facebook verwendet beispielsweise MySQL zum Speichern von Daten und Instagram basiert auf Cassandra. 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 und dafür mit der Notwendigkeit von angewandtem Sharding bezahlt hat, während Kevin Systrom die Skalierung mithilfe der Plattform aufgebaut hat und dabei den einfachen Zugriff auf Daten geopfert hat.

Zu den Verwaltungsfunktionen gehören:

  • Backup-Systemfunktionen;
  • einfache Überwachung;
  • einfache Kapazitätsverwaltung – Festplatten und Knoten;
  • Datenreplikationsfunktionen.

Bitte beachten Sie, dass Fragen quantitativ formuliert sein müssen. Sie können sich sogar darauf einigen, wie eine bestimmte Funktion bewertet werden soll. Versuchen wir zum Beispiel, Backup-Tools am Beispiel der mit dem Oracle DBMS gelieferten Tools zu bewerten:

Werkzeug
Kommentar
Auswertung

imp/exp
Hochladen und Laden von Daten
0.1

Sicherung beginnen/beenden
Kopieren von Dateien
0.3

RMAN
Inkrementelle Kopierfunktion
0.7

ZDLRA
Nur inkrementelles Kopieren, schnellste Wiederherstellung auf den Punkt
1.0

Liegen keine klaren Bewertungskriterien vor, ist es sinnvoll, mehrere Experten um Bewertungen zu bitten und diese dann zu mitteln.

Abschließend listen wir einfach die Informationssicherheitsfunktionen auf:

  • Verfügbarkeit von Passwortverwaltungsrichtlinien;
  • die Möglichkeit, externe Authentifizierungstools (LDAP, Kerberos) anzuschließen;
  • Vorbild des Zugangs;
  • Auditfähigkeiten;
  • Verschlüsselung von Daten auf Datenträgern;
  • Verschlüsselung bei der Übertragung über das Netzwerk (TLS);
  • Datenschutz durch den Administrator.

Leistungstest

Unabhängig davon möchte ich davor warnen, Ergebnisse von Belastungstests, die nicht von Ihnen durchgeführt wurden, als Argumente zu verwenden.

Erstens können sich die Datenstruktur und das Lastprofil der getesteten Anwendungen erheblich von dem Problem unterscheiden, das Sie lösen möchten. Vor etwa 10 bis 15 Jahren prahlten Datenbankanbieter gerne mit den in TPC-Tests erzielten Ergebnissen, doch heute nimmt offenbar niemand mehr diese Ergebnisse ernst.

Zweitens hängt die Systemleistung stark davon ab, für welche Plattform der Code ursprünglich geschrieben wurde und auf welcher Ausrüstung der Test durchgeführt wurde. Ich habe viele Tests gesehen, bei denen Oracle mit PostgreSQL verglichen wurde. Die Ergebnisse reichen von der bedingungslosen Überlegenheit eines Systems bis zur ebenso bedingungslosen Überlegenheit eines anderen.

Und schließlich, drittens, wissen Sie nichts darüber, wer den Test durchgeführt hat. Beide Qualifikationen sind wichtig und beeinflussen die Qualität der Einrichtung des Betriebssystems und der Plattform sowie die Motivation, die die Testergebnisse stärker beeinflusst als alle anderen Faktoren zusammen.

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

Erlebe die Kraft effektiver Ergebnisse

Das Ergebnis aller durchgeführten Arbeiten sollte schließlich eine Tabelle sein, in der alle Schätzungen kombiniert, multipliziert und zusammengefasst werden:

Was ist besser – Oracle oder Redis oder wie man die Wahl der Plattform begründet

Wie Sie wissen, können Sie durch Ändern der Skalen und Anpassen der Bewertungen jedes gewünschte Ergebnis erzielen, aber das ist eine ganz andere Geschichte ...

Source: habr.com

Kommentar hinzufügen