Quel est le meilleur - Oracle ou Redis ou Comment justifier le choix de la plateforme

«Eh bien, c'est nécessaire», dit-elle à haute voix sans s'adresser à personne. - Eh bien, c'est nécessaire! Il est donc écrit directement - la tâche principale de l'entreprise est de réaliser des bénéfices dans l'intérêt des actionnaires. Eh bien, vous pensez! Ils n'ont peur de rien!



Julius Dubov, "Le moindre mal"


En voyant un tel titre, vous avez probablement déjà décidé que l'article est soit une stupidité, soit une provocation. Mais ne vous précipitez pas pour tirer des conclusions: les employés de grandes entreprises, en particulier les entreprises avec participation de l'État, doivent souvent comparer différentes plates-formes, y compris des plates-formes complètement différentes, par exemple, comme celles du titre.







Bien sûr, personne ne compare les SGBD comme ça, car leurs forces et leurs faiblesses sont bien connues. En règle générale, les plates-formes qui résolvent un problème appliqué sont sujettes à comparaison. Dans l'article, je montrerai la technique qui est utilisée en même temps, en utilisant l'exemple des bases de données comme sujet qui n'est pas familier par ouï-dire aux lecteurs de Habr. Alors,



Motivation



Lorsque vous démarrez un projet pédagogique ou un projet de loisir, les motivations pour choisir une plateforme peuvent être très diverses: «Je connais le mieux cette plateforme», «je suis intéressé à comprendre celle-ci», «voici la meilleure documentation» ... Dans le cas d'une société commerciale, le critère de sélection est un: combien vais-je devoir payer et que vais-je obtenir pour cet argent.



Naturellement, vous voulez payer moins et obtenir plus. Cependant, il est nécessaire de décider ce qui est le plus important - payer moins ou recevoir plus, et attribuer un poids à chaque nœud. Supposons qu'une solution de haute qualité est plus importante pour nous qu'une solution bon marché, et nous attribuons au nœud «Coût» une pondération de 40% et au nœud «Opportunités» - 60%.







Dans les grandes entreprises, le contraire est généralement le cas - le poids de la valeur ne tombe pas en dessous de 50%, et peut-être plus de 60%. Dans l'exemple de modèle, il est seulement important que le poids total des nœuds enfants de tout nœud parent soit de 100%.



Conditions de coupure



Le site db-engines.com connaît environ 500 systèmes de gestion de bases de données. Naturellement, si vous choisissez une plate-forme cible parmi tant d'options, vous risquez de vous retrouver avec un article de synthèse, mais pas un projet commercial. Afin de réduire l'espace de choix, des critères de coupure sont formulés, et si la plateforme ne répond pas à ces critères, elle n'est pas prise en compte.



Les critères de coupure peuvent concerner des caractéristiques technologiques, par exemple:



  • Garanties ACID;
  • modèle de données relationnelles;
  • Prise en charge du langage SQL (notez que ce n'est pas la même chose que "modèle relationnel");
  • la possibilité de mise à l'échelle horizontale.


Il peut y avoir des critères généraux:



  • disponibilité d'un soutien commercial en Russie;
  • Open source;
  • disponibilité de la plate-forme dans le registre du ministère des télécommunications et des communications de masse;
  • la présence de la plate-forme dans une certaine notation (par exemple, dans la première centaine de la notation db-engines.com);
  • disponibilité d'experts sur le marché (par exemple, sur la base des résultats de la recherche du nom de la plateforme dans le CV sur le site hh.ru).


Après tout, il peut y avoir des critères spécifiques à l'entreprise:



  • disponibilité de spécialistes dans le personnel;
  • compatibilité avec le système de surveillance X ou avec le système de sauvegarde Y, sur lequel toute la maintenance est liée ...


Le plus important est d'avoir une liste de critères de coupure. Sinon, il y aura certainement un expert (ou «expert») qui jouit de la confiance particulière de la direction, qui dira «pourquoi n'avez-vous pas choisi la plateforme Z, je sais que c'est la meilleure».



Prix ​​estimé



Le coût de la solution se compose évidemment du coût des licences, du coût de la maintenance et du coût des équipements.



Si les systèmes sont à peu près de la même classe (par exemple, Microsoft SQL Server et PostgreSQL), alors pour simplifier, nous pouvons supposer que la quantité d'équipement pour les deux solutions sera approximativement la même. Cela vous permettra de ne pas évaluer l'équipement, économisant ainsi beaucoup de temps et d'efforts. Si vous devez comparer des systèmes complètement différents (par exemple, Oracle vs Redis), alors il est évident que pour une évaluation correcte, il est nécessaire de faire le dimensionnement (calcul de la quantité d'équipement). Dimensionner un système inexistant est une tâche très ingrate, ils essaient donc toujours d'éviter une telle comparaison. C'est facile à faire: aucune perte de données et un modèle relationnel sont écrits dans des conditions d'écrêtage, ou vice versa - une charge de 50 000 transactions par seconde.



Pour évaluer les licences, il suffit de demander au vendeur ou à ses partenaires le coût d'une licence pour un nombre fixe de cœurs et d'un support pour une durée déterminée. En règle générale, les entreprises entretiennent déjà des relations solides avec les éditeurs de logiciels, et si le service d'exploitation de la base de données ne peut pas répondre seul à la question des coûts, une lettre suffit pour recevoir ces informations.



Différents fournisseurs peuvent avoir des métriques de licence différentes: par le nombre de cœurs, la quantité de données ou le nombre de nœuds. La base de données de secours peut être gratuite ou elle peut être licenciée de la même manière que la base de données principale. Si seules quelques différences de métriques sont constatées, vous devrez décrire en détail le stand modèle et calculer le coût des licences pour le stand.



Un point important pour une comparaison correcte est les mêmes conditions de support. Par exemple, le support Oracle coûte 22% du prix de la licence par an et le support PostgreSQL ne coûte rien. Est-il correct de comparer? Non, car une erreur qui ne peut pas être éliminée par nous-mêmes a des conséquences complètement différentes: dans le premier cas, des spécialistes du support aideront rapidement à la corriger, et dans le second cas, il y a un risque de retard du projet ou d'arrêt du système fini pour une durée indéterminée.



Il existe trois manières d'égaliser les conditions de calcul:



  1. Utilisez Oracle sans assistance (en réalité, cela ne se produit pas).
  2. Achetez le support PostgreSQL - par exemple, auprès de Postgres Professional.
  3. Incluez les risques associés au manque de soutien.


Par exemple, le calcul des risques peut ressembler à ceci: en cas de panne fatale de la base de données, le temps d'arrêt du système sera de 1 jour ouvrable. Le bénéfice prévu de l'utilisation du système est de 40 milliards de remorqueurs mongols par an, la fréquence des accidents est estimée à 1/400, ainsi, le risque de manque de soutien est estimé à environ 100 millions de remorqueurs mongols par an. Évidemment, le «profit prévu» et le «taux d’accident estimé» sont des quantités virtuelles, mais il vaut bien mieux avoir un tel modèle que de ne pas en avoir.



En réalité, le système peut être trop important, et les pertes de réputation dues à des temps d'arrêt prolongés seront inacceptables, de sorte qu'une assistance sera nécessaire. Si les temps d'arrêt sont autorisés, la suppression du support peut parfois être un bon moyen d'économiser de l'argent.



Supposons qu'après tous les calculs, le coût d'exploitation de la plate-forme A pendant 5 ans se soit avéré être de 800 millions de remorqueurs mongols, le coût d'exploitation de la plate-forme B - 650 millions de remorqueurs et le coût de l'exploitation de la plate-forme C - 600 millions de remorqueurs. La plate-forme C, en tant que gagnante, reçoit un point de poids total pour le coût, et les plates-formes A et B - un peu moins, proportionnellement au nombre de fois qu'elles sont plus chères. Dans ce cas - 0,75 et 0,92 points, respectivement.



Évaluation des opportunités



L'évaluation des opportunités est divisée en plusieurs groupes, dont le nombre n'est limité que par l'imagination de la personne qui évalue. La meilleure option semble être la division des capacités en équipes qui utiliseront ces capacités; dans notre exemple, il s'agit des développeurs, des administrateurs et des responsables de la sécurité de l'information. Supposons que les poids de ces fonctions soient distribués sous la forme 40:40:20.



Les fonctions de développement comprennent:



  • facilité de manipulation des données;
  • mise à l'échelle;
  • la présence d'index secondaires.


La liste des critères, tout comme leur pondération, est très subjective. Même en résolvant le même problème, ces listes, poids des éléments et réponses différeront considérablement en fonction de la composition de votre équipe. Par exemple, Facebook utilise MySQL pour stocker des données, et Instagram est construit au-dessus de Cassandra. Il est peu probable que les développeurs de ces applications aient rempli de tels tableaux. On ne peut que deviner que Mark Zuckerberg a choisi un modèle relationnel à part entière, en le payant avec la nécessité d'un partitionnement appliqué, tandis que Kevin Systrom a mis à l'échelle au moyen de la plate-forme, sacrifiant la commodité de l'accès aux données.



Les fonctions d'administration comprennent:



  • capacités du système de sauvegarde;
  • facilité de surveillance;
  • commodité de la gestion de la capacité - disques et nœuds;
  • capacités de réplication des données.


Veuillez noter que la formulation des questions doit être quantifiable. Vous pouvez même vous mettre d'accord sur la façon d'évaluer une fonction particulière. Essayons, par exemple, de noter les outils de sauvegarde en utilisant l'exemple des outils fournis avec le SGBD Oracle:



Outil Un commentaire Évaluation
imp / exp Télécharger et télécharger des données 0,1
commencer / terminer la sauvegarde Copie de fichiers 0,3
RMAN Capacité de copie incrémentielle 0,7
ZDLRA Copie incrémentielle uniquement, récupération au point le plus rapide 1.0


S'il n'y a pas de critères d'évaluation clairs, il est logique de demander à plusieurs experts de fournir des notes et de les faire la moyenne.



Enfin, énumérons simplement les fonctionnalités de sécurité des informations:



  • disponibilité des politiques de gestion des mots de passe;
  • la possibilité de connecter des outils d'authentification externes (LDAP, Kerberos);
  • modèle d'accès;
  • ;
  • ;
  • (TLS);
  • .




Par ailleurs, je voudrais mettre en garde contre l'utilisation des résultats de tests de charge qui n'ont pas été effectués par vous comme arguments.



Premièrement, la structure des données et le profil de charge des applications testées peuvent différer considérablement de la tâche que vous allez résoudre. Il y a environ 10 à 15 ans, les fournisseurs de bases de données aimaient afficher les résultats de référence TPC, mais maintenant personne ne semble prendre ces résultats au sérieux.



Deuxièmement, les performances du système dépendent assez fortement de la plate-forme pour laquelle le code a été initialement écrit et du matériel sur lequel le test a été effectué. J'ai vu de nombreux benchmarks comparer Oracle à PostgreSQL. Les résultats vont de la supériorité inconditionnelle d'un système à la supériorité tout aussi inconditionnelle d'un autre.



Et enfin, troisièmement, vous ne savez rien sur qui a effectué le test. Les deux qualifications, qui affectent la qualité du système d'exploitation et la personnalisation de la plate-forme, sont importantes, ainsi que la motivation, qui affecte les résultats des tests plus que tous les autres facteurs combinés.



Si la performance est un facteur critique, effectuez le test vous-même, de préférence avec l'aide de spécialistes qui configureront et entretiendront le système de production.



Résultat



Enfin, le résultat de tout le travail effectué devrait être une feuille de calcul, où toutes les estimations sont rassemblées, multipliées et résumées:







Comme vous le comprenez, en changeant les poids et en ajustant les estimations, vous pouvez obtenir n'importe quel résultat souhaité, mais c'est une histoire complètement différente ...



All Articles