Was ist besser – Oracle oder Redis? Oder wie man die Wahl der Plattform rechtfertigt.

– Das ist doch unglaublich, – sagte sie laut, ohne sich an jemanden zu wenden. – Das ist doch unglaublich! So steht es geschrieben – die Hauptaufgabe der Gesellschaft besteht darin, Gewinn im Interesse der AktionĂ€re zu erwirtschaften. Denken Sie mal nach! Sie haben ja gar keine Angst!

Julij Dubov, "Das kleinere Übel"

Wenn Sie solchen Titel sehen, haben Sie sicherlich schon beschlossen, dass der Artikel entweder Unsinn oder Provokation ist. Aber urteilen Sie nicht zu schnell: Mitarbeiter großer Unternehmen, besonders solchen mit staatlicher Beteiligung, mĂŒssen oft verschiedene Plattformen vergleichen, sogar sehr unterschiedliche – wie die, die im Titel erwĂ€hnt werden.

Was ist besser – Oracle oder Redis? Oder wie man die Wahl der Plattform rechtfertigt.

NatĂŒrlich werden DBMS nicht verglichen, da ihre StĂ€rken und SchwĂ€chen gut bekannt sind. In der Regel werden Plattformen miteinander verglichen, die eine bestimmte Anwendungsaufgabe lösen. In diesem Artikel werde ich die Methodik zeigen, die dabei verwendet wird, am Beispiel von Datenbanken, die den Lesern von Habr nicht unbekannt sein sollten. Also,

Motivation

Wenn Sie ein Lernprojekt oder ein Hobbyprojekt starten, können die Motivationen fĂŒr die Wahl einer Plattform vielfĂ€ltig sein: „Diese Plattform kenne ich am besten“, „Hier möchte ich mehr erfahren“, „Die Dokumentation ist hier am besten“
 In einem kommerziellen Unternehmen gibt es nur ein Auswahlkriterium: Wie viel muss ich bezahlen und was bekomme ich dafĂŒr?

NatĂŒrlich möchte man möglichst wenig bezahlen und dafĂŒr viel bekommen. Allerdings mĂŒssen Sie entscheiden, was wichtiger ist – weniger zu bezahlen oder mehr zu erhalten. Jeder Kriterium sollte ein Gewicht zugewiesen werden. Angenommen, uns ist eine qualitativ hochwertige Lösung wichtiger als eine kostengĂŒnstige, dann geben wir dem Kriterium „Kosten“ ein Gewicht von 40 % und dem Kriterium „Möglichkeiten“ 60 %.

Was ist besser – Oracle oder Redis? Oder wie man die Wahl der Plattform rechtfertigt.

In großen Unternehmen ist es normalerweise genau umgekehrt – das Gewicht der Kosten sinkt nicht unter 50 %, in vielen FĂ€llen sogar ĂŒber 60 %. Im Modellbeispiel ist wichtig, dass das Gesamtgewicht der untergeordneten Kriterien eines jeden ĂŒbergeordneten Kriteriums 100 % betragen muss.

Ausschlusskriterien

Der Website db-engines.com Es sind ungefĂ€hr 500 Datenbankverwaltungssysteme bekannt. NatĂŒrlich kann, wenn man aus so vielen Optionen eine Zielplattform auswĂ€hlt, eine Übersicht entstehen, aber kein kommerzielles Projekt. Um den Auswahlraum zu reduzieren, werden Ausschlusskriterien formuliert, und wenn die Plattform diese Kriterien nicht erfĂŒllt, wird sie nicht in Betracht gezogen.

Die Ausschlusskriterien können sich auf technologische Eigenschaften beziehen, zum Beispiel:

  • ACID-Garantien;
  • relationale Datenmodelle;
  • UnterstĂŒtzung der SQL-Sprache (beachten Sie, dass dies nicht dasselbe ist wie das „relationale Modell“);
  • Möglichkeit der horizontalen Skalierung.

Es können auch allgemeinere Kriterien vorliegen:

  • vorhandene kommerzielle UnterstĂŒtzung in Deutschland;
  • Open Source;
  • vorhandene Plattform im Register des Ministeriums fĂŒr digitale Entwicklung;
  • vorhandene Plattform in irgendeinem Ranking (zum Beispiel in den ersten hundert des Rankings von db-engines.com);
  • vorhandene Experten auf dem Markt (zum Beispiel basierend auf der Suche nach dem Namen der Plattform in LebenslĂ€ufen auf der Website hh.ru).

Schließlich können auch unternehmensspezifische Kriterien relevant sein:

  • Vorhandensein von FachkrĂ€ften im Unternehmen;
  • KompatibilitĂ€t mit dem X-Überwachungssystem oder dem Y-Backup-System, auf das die gesamte Betreuung basiert...

Das Wichtigste ist, dass eine Liste der Ausschlusskriterien vorhanden ist. Andernfalls wird es mit Sicherheit einen Experten (oder „Experten“) geben, der besonderes Vertrauen beim Management genießt und sagt: „Warum habt ihr nicht die Plattform Z gewĂ€hlt? Ich weiß, dass sie die beste ist.“

KostenschÀtzung

Die Kosten der Lösung setzen sich offensichtlich aus den Lizenzkosten, den Betreuungskosten und den Kosten der Hardware zusammen.

Wenn die Systeme etwa der gleichen Klasse sind (zum Beispiel Microsoft SQL Server und PostgreSQL), kann man der Einfachheit halber davon ausgehen, dass die Menge an Hardware fĂŒr beide Lösungen ungefĂ€hr gleich sein wird. Dies spart Zeit und MĂŒhe, da eine Bewertung der Hardware nicht erforderlich ist. Wenn jedoch ganz unterschiedliche Systeme miteinander verglichen werden mĂŒssen (zum Beispiel Oracle vs. Redis), ist es offensichtlich, dass fĂŒr eine korrekte Bewertung ein Sizing (Berechnung der Hardware-Anforderungen) nötig ist. Das Sizing eines nicht existierenden Systems ist eine wenig dankbare Aufgabe, weshalb solche Vergleiche oft vermieden werden. Es ist einfach: In den ausschließenden Bedingungen werden nulldatenverluste und das relationale Modell oder umgekehrt – eine Last von 50.000 Transaktionen pro Sekunde – festgelegt.

Um Lizenzen zu bewerten, genĂŒgt es, beim Anbieter oder dessen Partnern den Preis fĂŒr eine feste Anzahl von Kernen und Support ĂŒber einen bestimmten Zeitraum anzufragen. In der Regel haben Unternehmen bereits stabile Beziehungen zu Softwareanbietern aufgebaut. Wenn die Datenbankabteilung die Kosten nicht selbststĂ€ndig ermitteln kann, reicht eine E-Mail aus, um diese Informationen zu erhalten.

Verschiedene Anbieter können unterschiedliche Lizenzierungsmetriken verwenden: nach Anzahl der Kerne, Datenvolumen oder Anzahl der Knoten. Eine Standby-Datenbank kann kostenlos sein oder genauso lizenziert werden wie die Hauptdatenbank. Wenn Unterschiede in den Metriken festgestellt werden, ist es notwendig, das Modellsetup detailliert zu beschreiben und die Lizenzkosten fĂŒr das Setup zu berechnen.

Ein wichtiger Aspekt fĂŒr einen fairen Vergleich sind identische Supportbedingungen. Zum Beispiel kostet der Support fĂŒr Oracle 22 % der Lizenzkosten pro Jahr, wĂ€hrend fĂŒr PostgreSQL keine GebĂŒhren anfallen. Ist es korrekt, so zu vergleichen? Nein, denn die Auswirkungen eines Fehlers, der nicht selbst behoben werden kann, sind völlig unterschiedlich: Im ersten Fall helfen die Support-Spezialisten schnell, das Problem zu lösen, wĂ€hrend im zweiten Fall das Risiko besteht, dass das Projekt verzögert wird oder das fertige System unbestimmte Zeit stillsteht.

Die Bedingungen fĂŒr die Berechnung kann man auf drei Arten angleichen:

  1. Oracle ohne Support nutzen (in der RealitÀt kommt das nicht vor).
  2. Support fĂŒr PostgreSQL erwerben – beispielsweise bei der Firma Postgres Professional.
  3. Die Risiken einberechnen, die mit fehlendem Support verbunden sind.

Beispielsweise könnte die Berechnung der Risiken so aussehen: Im Falle eines irreparablen Datenbankausfalls betrĂ€gt die Ausfallzeit des Systems einen Arbeitstag. Der geplante Gewinn aus der Nutzung des Systems liegt bei 40 Milliarden mongolischen Tugrik pro Jahr, die AusfallhĂ€ufigkeit wird auf 1 zu 400 geschĂ€tzt. Somit wird das Risiko eines fehlenden Supports auf etwa 100 Millionen mongolische Tugrik pro Jahr geschĂ€tzt. Offensichtlich sind sowohl der „geplante Gewinn“ als auch die „geschĂ€tzte AusfallhĂ€ufigkeit“ virtuelle GrĂ¶ĂŸen. Es ist jedoch weitaus besser, ein solches Modell zu haben, als keines.

In der RealitĂ€t könnte das System von zu großer Bedeutung sein, und die reputationsschĂ€digenden Verluste durch lĂ€ngere Ausfallzeiten könnten unakzeptabel sein, weshalb UnterstĂŒtzung erforderlich wird. Wenn jedoch Ausfallzeiten toleriert werden können, kann der Verzicht auf Support manchmal eine sinnvolle Möglichkeit zur Kostensenkung sein.

Angenommen, die Betriebskosten der Plattform A betragen ĂŒber einen Zeitraum von 5 Jahren 800 Millionen mongolische Tögrigs, die von Plattform B 650 Millionen Tögrigs und die von Plattform C 600 Millionen Tögrigs. Plattform C erhĂ€lt als Sieger den vollen Punkt fĂŒr die Kosten, wĂ€hrend die Plattformen A und B entsprechend ihrer höheren Kosten etwas weniger Punkte erhalten: 0,75 und 0,92 Punkte respektive.

Bewertung der Möglichkeiten

Die Bewertung der Möglichkeiten lÀsst sich in zahlreiche Gruppen unterteilen, deren Anzahl nur durch die Fantasie des Bewertenden begrenzt ist. Eine optimale Option scheint die Aufteilung nach den Teams zu sein, die diese Möglichkeiten nutzen werden; in unserem Beispiel handelt es sich um Entwickler, Administratoren und Mitarbeiter der Informationssicherheit. Angenommen, das Gewicht dieser Funktionen verteilt sich wie folgt: 40:40:20.

Zu den Funktionen der Entwicklung gehören:

  • Benutzerfreundlichkeit bei der Datenmanipulation;
  • Skalierbarkeit;
  • Vorhandensein sekundĂ€rer Indizes.

Die Liste der Kriterien sowie deren Gewichtungen ist sehr subjektiv. Selbst bei der Lösung derselben Aufgabe können diese Listen, die Gewichtungen der Punkte und die Antworten stark variieren, abhĂ€ngig von der Zusammensetzung Ihres Teams. So verwendet Facebook fĂŒr die Datenspeicherung MySQL, wĂ€hrend Instagram auf Cassandra basiert. 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, was die Notwendigkeit der angewandten Shardierung mit sich brachte, wĂ€hrend Kevin Systrom das Skalierungspotenzial der Plattform nutzte und dabei den Zugang zu den Daten opferte.

Zu den Verwaltungsfunktionen gehören:

  • Backup-Systemmöglichkeiten;
  • Benutzerfreundliches Monitoring;
  • Einfaches Management der KapazitĂ€ten – Disk und Nodes;
  • Datenreplikationsmöglichkeiten.

Bitte beachten Sie, dass die Formulierungen der Fragen eine quantitative Bewertung ermöglichen sollten. Man kann sogar vereinbaren, wie eine bestimmte Funktion bewertet wird. Lassen Sie uns beispielsweise versuchen, die Backup-Tools am Beispiel der mit der Oracle-Datenbank gelieferten Tools zu bewerten:

Ein Tool
Kommentar
Bewertung

imp/exp
Datenexport und -import
0.1

Backup starten/abschließen
Dateien kopieren
0.3

RMAN
Möglichkeit zur inkrementellen Sicherung
0.7

ZDLRA
Nur inkrementelle Sicherung, schnellere Wiederherstellung zu einem bestimmten Zeitpunkt
1.0

Wenn klare Bewertungskriterien fehlen, kann es sinnvoll sein, mehrere Experten um ihre Bewertungen zu bitten und diese dann zu mitteln.

Lassen Sie uns schließlich die Funktionen der Informationssicherheit auflisten:

  • Vorhandensein von Passwortverwaltungspolitiken;
  • Möglichkeit der Anbindung externer Authentifizierungsmittel (LDAP, Kerberos);
  • Rollenbasiertes Zugriffsmodell;
  • Auditmöglichkeiten;
  • VerschlĂŒsselung der Daten auf der Festplatte;
  • VerschlĂŒsselung wĂ€hrend der Übertragung ĂŒber das Netzwerk (TLS);
  • Schutz der Daten vor dem Administrator.

Leistungstest

Ich möchte ausdrĂŒcklich davon abraten, Ergebnisse von Lasttests, die nicht von Ihnen durchgefĂŒhrt wurden, als Argumente zu nutzen.

ZunÀchst einmal können die Datenstruktur und das Lastprofil der getesteten Anwendungen erheblich von der Aufgabe abweichen, die Sie lösen möchten. Vor etwa 10-15 Jahren prahlten Datenbankhersteller gerne mit Ergebnissen aus TPC-Tests, aber heute scheint niemand diese Ergebnisse ernst zu nehmen.

Zweitens hĂ€ngt die Systemleistung erheblich davon ab, fĂŒr welche Plattform der Code ursprĂŒnglich geschrieben wurde und auf welcher Hardware der Test durchgefĂŒhrt wurde. Ich habe viele Tests gesehen, in denen Oracle mit PostgreSQL verglichen wurde. Die Ergebnisse reichen von der uneingeschrĂ€nkten Überlegenheit eines Systems bis hin zur ebenso uneingeschrĂ€nkten Überlegenheit des anderen.

Und schließlich wissen Sie drittens nichts darĂŒber, wer den Test durchgefĂŒhrt hat. Sowohl die Qualifikation, die die QualitĂ€t der Betriebssystem- und Plattformkonfiguration beeinflusst, als auch die Motivation, die die Testergebnisse stĂ€rker beeinflusst als alle anderen Faktoren zusammen, sind entscheidend.

Wenn die Leistung ein kritischer Faktor ist, fĂŒhren Sie den Test selbst durch, idealerweise unter Beteiligung von Fachleuten, die das industrielle System konfigurieren und warten werden.

Ergebnis

Letztendlich sollte das Ergebnis all dieser Arbeit eine Tabelle sein, in der alle Bewertungen zusammengefasst, multipliziert und addiert sind.

Was ist besser – Oracle oder Redis? Oder wie man die Wahl der Plattform rechtfertigt.

Wie Sie verstehen, können Sie durch die Anpassung der Gewichte und die Korrektur der Bewertungen jedes gewĂŒnschte Ergebnis erzielen, aber das ist eine ganz andere Geschichte


Quelle: habr.com

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster