Que n’aimez-vous pas à propos de MongoDB Atlas?
Mon histoire avec Mongo a commencé lorsque j'ai commencé un nouveau poste en développement logiciel, et ils avaient une version héritée de leur produit logiciel utilisant Atlas.
Comparé à nos autres factures d'infrastructure, Mongo était nettement plus élevé pour la quantité de calcul et de stockage que nous utilisions (3K $ par mois). C'est un service géré, donc on s'attend à payer une prime. D'accord, mais alors je m'attends à une grande fonctionnalité, performance et support.
Le principal problème a commencé avec Mongo lorsque nous avons eu besoin de supprimer certaines données parce qu'ils lient les niveaux de CPU et de mémoire à la taille de stockage, donc nous payions trop. Notre application fonctionnerait bien sur un cluster dédié M10 (le plus petit niveau), mais elle avait automatiquement évolué vers un M50 à cause du stockage. C'est déjà un peu décevant parce qu'ils forcent les clients à payer pour plus de calcul et de mémoire qu'ils n'en ont besoin.
Nous avons donc commencé à supprimer certaines données, mais nous avons ensuite rencontré des problèmes. Le processus de suppression des données était vraiment lent et ralentissait également tout notre cluster, causant des retards et des problèmes de performance pour nos utilisateurs finaux. Mais attendez, cela n'a aucun sens parce que nous payons pour plus de CPU et de RAM que nous n'en avons besoin, alors pourquoi aurions-nous ce problème ?
Il nous a fallu trois mois pour supprimer 500 Go de données. Entre-temps, notre facture est restée la même parce que vous ne pouvez pas récupérer l'espace sans compacter la base de données. D'accord, très bien. Nous avons donc exécuté compact(), mais nous n'avons libéré qu'environ 100 Go sur les clusters secondaires.
Le support nous a donné un script à exécuter qui peut voir combien de stockage peut être libéré.
Finalement, nous avons dû activer un plan de support supplémentaire coûteux nous coûtant 500 USD par mois pour obtenir le support pour exécuter une commande de resynchronisation. Cela aurait dû prendre 10 minutes à leur personnel de support, mais au lieu de cela, ils nous ont fait tourner en rond avec le ticket, prenant trois semaines pour résoudre le problème.
Un an plus tard, nous avons eu besoin de supprimer encore plus de données. Nous avons passé cinq mois supplémentaires à supprimer 800 Go de données. Ensuite, nous avons exécuté compact() et libéré 300 Go. Où sont nos autres 500 Go ? Nous avons contacté des personnes chez Mongo, qui ne pouvaient vraiment pas faire grand-chose d'autre que de suggérer que nous obtenions un financement pour couvrir le support de 500 $ pour un mois. Oui, nous avons obtenu le crédit de 500 $, mais quand j'ai voulu réactiver le support, cela allait nous facturer pour trois mois pour un mois parce que Mongo vous facture rétroactivement pour trois mois lorsque vous réactivez. Wow, nous avons commencé dans une mauvaise situation, maintenant je suis au-delà de la frustration ; c'est du vol en plein jour.
À ce jour, je me bats toujours pour récupérer du stockage, mais à ce stade, je vais recommander à notre PDG que notre équipe de développement mette des efforts pour s'éloigner complètement de Mongo.
Je dois également mentionner que Mongo nous a recommandé d'utiliser leurs fonctionnalités d'archivage en ligne, mais lorsque nous avons fait les calculs, c'était encore assez cher, et nous devrions faire un travail significatif pour faire fonctionner notre application entre les clusters réguliers et l'archive en ligne. Donc, il était beaucoup plus logique de simplement mettre les données dans AWS S3, puis de les supprimer dans Mongo.
Si je peux résumer mon expérience avec Mongo, et je reconnais que la mienne est probablement assez différente de la plupart, la voici :
Trop cher pour la performance que vous obtenez
Modèle de facturation sournois où ils lient CPU et mémoire au stockage
Support terrible et coûteux
Frais supplémentaires sournois lors de la réactivation du support
Mauvaises solutions d'escalade du support - ils ne pouvaient pas simplement activer un 'support' gratuit
Mauvaise performance de la base de données
Opérations de suppression lentes
Verrouillage de l'écosystème
Mises à niveau forcées - pas de versions LTS
Permettez-moi de le résumer ainsi : si votre commande compact() ne libère pas l'espace disponible sur votre cluster, alors fournissez au client un support gratuit pour le faire.
Je déteste traiter avec Mongo. Rien n'est simple, tout est cher, et la performance est médiocre.
Si vous envisagez d'utiliser Mongo, trouvez autre chose. Même si vous devez prendre un peu plus de temps pour apprendre AWS Dynamo, S3 ou Aurora, vous devriez le faire ; vous économiserez du temps et de l'argent à long terme.
Mongo, vous méritez cette critique négative. Je vous ai donné de nombreuses occasions de résoudre les problèmes et j'ai escaladé les problèmes, mais vous vous en fichez.
Nous voulions nous éloigner de Mongo avant ; maintenant je ne peux pas m'en débarrasser assez vite. Avis collecté par et hébergé sur G2.com.