¿Qué es lo que no te gusta de MongoDB Atlas?
Mi historia con Mongo comenzó cuando empecé un nuevo puesto de software, y tenían una versión heredada de su producto de software usando Atlas.
En comparación con nuestras otras facturas de infraestructura, Mongo era significativamente más alto por la cantidad de computación y almacenamiento que usábamos ($3K por mes). Este es un servicio gestionado, por lo que se esperaría pagar una prima. Ok, seguro, pero entonces espero gran funcionalidad, rendimiento y soporte.
El problema principal comenzó con Mongo cuando necesitábamos eliminar algunos datos porque vinculan los niveles de CPU y memoria al tamaño de almacenamiento, por lo que estábamos pagando de más. Nuestra aplicación funcionaría bien con un clúster dedicado M10 (el nivel más pequeño), pero se había escalado automáticamente a un M50 debido al almacenamiento. Esto ya es un poco decepcionante porque están obligando a los clientes a pagar por más computación y memoria de la que necesitan.
Así que comenzamos a eliminar algunos datos, pero luego nos encontramos con problemas. El proceso de eliminación de datos era realmente lento y también ralentizaba todo nuestro clúster, causando retrasos y problemas de rendimiento para nuestros usuarios finales. Pero espera, esto no tiene sentido porque estamos pagando por más CPU y RAM de la que necesitamos, entonces, ¿por qué tendríamos este problema?
Nos tomó tres meses eliminar 500GB de datos. Mientras tanto, nuestra factura permaneció igual porque no puedes reclamar el espacio sin compactar la base de datos. Ok, bien. Así que ejecutamos compact(), pero solo liberamos ~100GB en los clústeres secundarios.
El soporte nos dio un script para ejecutar que puede ver cuánto almacenamiento se puede liberar.
Al final, tuvimos que activar un plan de soporte adicional costoso que nos costó $500 USD por mes para obtener soporte para ejecutar un comando de re-sincronización. Esto debería haber tomado a su personal de soporte 10 minutos, pero en su lugar, nos hicieron perder el tiempo yendo y viniendo en el ticket, tardando tres semanas en resolverlo.
Un año después, necesitábamos eliminar más datos. Pasamos otros cinco meses eliminando 800GB de datos. Luego ejecutamos compact() y liberamos 300GB. ¿Dónde están nuestros otros 500GB? Contactamos a algunas personas en Mongo, quienes realmente no pudieron hacer mucho más que sugerir que obtuviéramos financiamiento para cubrir los $500 de soporte por un mes. Sí, obtuvimos el crédito de $500, pero cuando fui a reactivar el soporte, nos iba a cobrar por tres meses por un mes porque Mongo te factura retroactivamente por tres meses cuando reactivas. Vaya, comenzamos en un mal lugar, ahora estoy más que frustrado; esto es un robo a plena luz del día.
Hasta el día de hoy, sigo luchando para reclamar algo de almacenamiento, pero en este punto, voy a recomendar a nuestro CEO que nuestro equipo de desarrollo ponga algo de esfuerzo en alejarse completamente de Mongo.
También necesito mencionar que Mongo recomendó que usáramos sus características de archivo en línea, pero cuando hicimos los números, seguía siendo bastante caro, y tendríamos que hacer un trabajo significativo para que nuestra aplicación funcionara entre los clústeres regulares y el archivo en línea. Así que era significativamente más lógico simplemente poner los datos en AWS S3, luego eliminarlos en Mongo.
Si puedo resumir mi experiencia con Mongo, y reconozco que la mía probablemente es bastante diferente a la de la mayoría, aquí está:
Sobrevalorado para el rendimiento que obtienes
Modelo de facturación engañoso donde vinculan CPU y memoria al almacenamiento
Soporte terrible y caro
Cargos extra engañosos al reactivar el soporte
Malas soluciones de escalamiento de soporte - no podían simplemente activar 'soporte' gratuito
Rendimiento deficiente de la base de datos
Operaciones de eliminación lentas
Bloqueo del ecosistema
Actualizaciones forzadas - sin lanzamientos LTS
Déjame resumirlo de esta manera: si tu comando compact() no libera el espacio que está disponible en tu clúster, entonces proporciona al cliente soporte gratuito para hacerlo.
Odio tratar con Mongo. Nada es simple, todo es caro, y el rendimiento apesta.
Si estás considerando usar Mongo, encuentra otra cosa. Incluso si tienes que tomarte un poco más de tiempo para aprender AWS Dynamo, S3 o Aurora, deberías hacerlo; ahorrarás tiempo y dinero a largo plazo.
Mongo, mereces esta crítica negativa. Te he dado muchas oportunidades para resolver las cosas y he escalado problemas, pero simplemente no te importa.
Queríamos alejarnos de Mongo antes; ahora no puedo deshacerme de él lo suficientemente rápido. Reseña recopilada por y alojada en G2.com.