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

«C'est nécessaire», dit-elle à voix haute, sans s'adresser à personne. - Ceci est nécessaire! C’est exactement ce qu’il dit : la tâche principale d’une entreprise est de réaliser des bénéfices dans l’intérêt des actionnaires. Eh bien, pensez-y! Ils n'ont peur de rien !

Yuliy Dubov, « Le moindre mal »

Après avoir vu un tel titre, vous avez probablement déjà décidé que l'article était soit une stupidité, soit une provocation. Mais ne vous précipitez pas pour tirer des conclusions : les employés des grandes entreprises, en particulier des entreprises à participation publique, doivent souvent comparer différentes plateformes, y compris des plateformes complètement différentes - par exemple celles du titre.

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

Bien entendu, personne ne compare les SGBD de cette manière, car leurs forces et leurs faiblesses sont bien connues. En règle générale, les plates-formes qui résolvent certains problèmes d'application sont sujettes à comparaison. Dans l'article, je montrerai la méthodologie utilisée dans ce cas, en utilisant l'exemple des bases de données comme sujet familier aux lecteurs Habr. Donc,

Motivation

Lorsque vous démarrez un projet éducatif ou un projet de loisir, les motivations pour choisir une plateforme peuvent être très diverses : « c'est la plateforme que je connais le mieux », « 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 le même : combien devrai-je payer et qu'obtiendrai-je avec cet argent.

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

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

Dans les grandes entreprises, c'est généralement l'inverse : le poids des coûts ne tombe pas en dessous de 50 %, et peut-être même au-dessus de 60 %. Dans l'exemple de modèle, tout ce qui est important est que le poids total des nœuds enfants de tout nœud parent doit être de 100 %.

Conditions de coupure

Site moteurs-db.com Il existe environ 500 systèmes de gestion de bases de données connus. Naturellement, si vous choisissez une plateforme cible parmi tant d’options, vous risquez de vous retrouver avec un article de synthèse, mais pas avec un projet commercial. Afin de réduire l'espace de choix, des critères de coupure sont formulés, et si la plateforme ne satisfait 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 ACIDE ;
  • modèle de données relationnelles ;
  • Prise en charge du langage SQL (attention, ce n'est pas la même chose que le « modèle relationnel ») ;
  • possibilité de mise à l'échelle horizontale.

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

  • disponibilité d'un support commercial en Russie ;
  • Open source;
  • disponibilité de la plateforme au Registre du Ministère des Télécommunications et des Communications de masse ;
  • présence de la plateforme dans certains classements (par exemple, dans les cent premiers classements db-engines.com) ;
  • la présence d'experts sur le marché (par exemple, sur la base des résultats de la recherche du nom de la plateforme dans un CV sur le site hh.ru).

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

  • disponibilité de spécialistes parmi le personnel;
  • compatibilité avec le système de surveillance X ou le système de sauvegarde Y, sur lequel repose tout le support...

Le plus important est qu’il existe une liste de critères de sélection. Sinon, il y aura certainement un expert (ou « expert ») bénéficiant d'une confiance particulière de la part de la direction et 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 du support et du coût du matériel.

Si les systèmes sont à peu près de la même classe (par exemple, Microsoft SQL Server et PostgreSQL), alors par souci de simplicité, nous pouvons supposer que la quantité d'équipement pour les deux solutions sera à peu près 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 procéder à un dimensionnement (calcul de la quantité d'équipement). Dimensionner un système inexistant est une tâche très ingrate, c'est pourquoi ils essaient toujours d'éviter de telles comparaisons. C'est facile à faire : dans les conditions de coupure, aucune perte de données et un modèle relationnel sont écrits, ou vice versa - une charge de 50 XNUMX transactions par seconde.

Pour évaluer les licences, il suffit de demander à l'éditeur ou à ses partenaires le coût d'une licence pour un nombre fixe de cœurs et 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 des bases de données ne peut pas répondre seul à la question des coûts, une seule lettre suffit pour obtenir ces informations.

Différents fournisseurs peuvent avoir des mesures de licence différentes : par nombre de cœurs, volume de données ou nombre de nœuds. La base de secours peut être gratuite, ou elle peut bénéficier d'une licence de la même manière que la base principale. Si des différences dans les paramètres sont découvertes, vous devrez décrire le stand modèle en détail et calculer le coût des licences pour le stand.

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

Vous pouvez égaliser les conditions de calcul de trois manières :

  1. Utilisez Oracle sans support (en réalité, cela n'arrive pas).
  2. Achetez le support pour PostgreSQL - par exemple, auprès de Postgres Professional.
  3. Tenez compte des risques liés au manque de soutien.

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

En réalité, le système est peut-être trop important pour que le coût en termes de réputation d'une interruption à long terme soit inacceptable. Une assistance sera donc nécessaire. Si les temps d’arrêt sont autorisés, refuser l’assistance 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 plateforme A pendant 5 ans s'avère être de 800 millions de MNT, le coût d'exploitation de la plateforme B est de 650 millions de MNT et le coût d'exploitation de la plateforme C est de 600 millions de MNT. La plate-forme C, en tant que gagnante, reçoit un point complet pour le prix, tandis que les plates-formes A et B en reçoivent un peu moins, proportionnellement à leur prix. 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. L'option optimale semble être de diviser les capacités en équipes qui utiliseront ces capacités ; dans notre exemple, il s'agit de développeurs, d'administrateurs et de responsables de la sécurité de l'information. Supposons que les poids de ces fonctions soient distribués selon la formule 40:40:20.

Les fonctions de développement comprennent :

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

La liste des critères, ainsi que leurs pondérations, sont très subjectives. Même lorsque vous résolvez le même problème, ces listes, poids des éléments et réponses varieront considérablement en fonction de la composition de votre équipe. Par exemple, Facebook utilise MySQL pour stocker des données et Instagram est construit sur 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 le besoin de partitionnement appliqué, tandis que Kevin Systrom a construit la mise à l'échelle à l'aide de la plate-forme, sacrifiant la facilité d'accès aux données.

Les fonctions d'administration comprennent :

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

Veuillez noter que les questions doivent être formulées de manière quantitative. Vous pouvez même vous mettre d’accord sur la manière d’évaluer une fonction particulière. Essayons par exemple d'évaluer les outils de sauvegarde en utilisant l'exemple des outils fournis avec le SGBD Oracle :

Outil
commentaire
Évaluation

diablotin/exp
Téléchargement et chargement de données
0.1

début/fin de sauvegarde
Copie de fichiers
0.3

RMAN
Capacité de copie incrémentielle
0.7

ZDLRA
Copie incrémentielle uniquement, récupération la plus rapide jusqu'au point
1.0

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

Enfin, nous listons simplement les fonctions de sécurité de l'information :

  • disponibilité de politiques de gestion des mots de passe ;
  • la possibilité de connecter des outils d'authentification externes (LDAP, Kerberos) ;
  • modèle d'accès;
  • capacités d'audit ;
  • cryptage des données sur disque ;
  • cryptage lors de la transmission sur le réseau (TLS) ;
  • protection des données auprès de l'administrateur.

Test de performance

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

Premièrement, la structure des données et le profil de charge des applications testées peuvent différer considérablement du problème que vous allez résoudre. Il y a environ 10 à 15 ans, les fournisseurs de bases de données aimaient afficher les résultats obtenus lors des tests TPC, mais aujourd'hui, il semble que personne ne prenne ces résultats au sérieux.

Deuxièmement, les performances du système dépendent fortement de la plate-forme pour laquelle le code a été initialement écrit et de l'équipement sur lequel le test a été effectué. J'ai vu de nombreux tests où Oracle était comparé à 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 de qui a fait le test. Les deux qualifications sont importantes, car elles influencent la qualité de la configuration du système d’exploitation et de la plateforme, ainsi que la motivation, qui influence les résultats des tests plus que tous les autres facteurs combinés.

Si les performances sont un facteur critique, effectuez le test vous-même, de préférence avec l'aide des personnes qui configureront et maintiendront 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 combinées, multipliées et résumées :

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

Comme vous le comprenez, en changeant les échelles et en ajustant les notes, vous pouvez obtenir n'importe quel résultat souhaité, mais c'est une toute autre histoire...

Source: habr.com

Ajouter un commentaire