Cosa non ti piace di MongoDB Atlas?
La mia storia con Mongo è iniziata quando ho iniziato una nuova posizione nel settore del software, e avevano una versione legacy del loro prodotto software che utilizzava Atlas.
Rispetto alle nostre altre spese infrastrutturali, Mongo era significativamente più alto per la quantità di calcolo e archiviazione che usavamo ($3K al mese). Questo è un servizio gestito, quindi ci si aspetterebbe di pagare un premio. Ok, certo, ma poi mi aspetto grande funzionalità, prestazioni e supporto.
Il problema principale è iniziato con Mongo quando abbiamo avuto bisogno di eliminare alcuni dati perché legano i livelli di CPU e memoria alla dimensione dell'archiviazione, quindi stavamo pagando troppo. La nostra applicazione funzionerebbe bene su un cluster dedicato M10 (il livello più piccolo), ma era automaticamente scalato a un M50 a causa dell'archiviazione. Questo è già un po' deludente perché stanno costringendo i clienti a pagare per più calcolo e memoria di quanto necessario.
Quindi abbiamo iniziato a eliminare alcuni dati, ma poi abbiamo incontrato problemi. Il processo di eliminazione dei dati era davvero lento e rallentava anche l'intero cluster, causando ritardi e problemi di prestazioni per i nostri utenti finali. Ma aspetta, questo non ha senso perché stiamo pagando per più CPU e RAM di quanto necessario, quindi perché dovremmo avere questo problema?
Ci sono voluti tre mesi per eliminare 500GB di dati. Nel frattempo, la nostra bolletta è rimasta la stessa perché non puoi reclamare lo spazio senza compattare il database. Ok, va bene. Quindi abbiamo eseguito compact(), ma abbiamo liberato solo ~100GB sui cluster secondari.
Il supporto ci ha dato uno script da eseguire che può vedere quanto spazio può essere liberato.
Alla fine, abbiamo dovuto attivare un piano di supporto aggiuntivo costoso che ci è costato $500 USD al mese per ottenere supporto per eseguire un comando di re-sync. Questo avrebbe dovuto richiedere alle persone del supporto 10 minuti, ma invece ci hanno fatto perdere tempo andando avanti e indietro sul ticket, impiegando tre settimane per risolvere.
Un anno dopo, abbiamo avuto bisogno di eliminare altri dati. Abbiamo trascorso altri cinque mesi eliminando 800GB di dati. Poi abbiamo eseguito compact() e liberato 300GB. Dove sono i nostri altri 500GB? Abbiamo contattato alcune persone di Mongo, che non potevano fare molto se non suggerirci di ottenere finanziamenti per coprire il supporto di $500 per un mese. Sì, abbiamo ottenuto il credito di $500, ma quando sono andato a riattivare il supporto, ci avrebbe addebitato per tre mesi per un mese perché Mongo ti fattura retroattivamente per tre mesi quando riattivi. Wow, siamo partiti male, ora sono oltre frustrato; questo è un furto in pieno giorno.
Ad oggi, sto ancora lottando per reclamare un po' di spazio, ma a questo punto, consiglierò al nostro CEO che il nostro team di sviluppo metta un po' di impegno nel allontanarsi completamente da Mongo.
Devo anche menzionare che Mongo ci ha consigliato di utilizzare le loro funzionalità di archivio online, ma quando abbiamo fatto i conti, era ancora piuttosto costoso, e avremmo dovuto fare un lavoro significativo per far funzionare la nostra applicazione tra i cluster regolari e l'archivio online. Quindi era significativamente più logico mettere i dati in AWS S3, poi eliminarli in Mongo.
Se posso riassumere la mia esperienza con Mongo, e riconosco che la mia è probabilmente abbastanza diversa dalla maggior parte, eccola qui:
Sovrapprezzo per le prestazioni che ottieni
Modello di fatturazione subdolo dove legano CPU e memoria all'archiviazione
Supporto terribile e costoso
Addebiti extra subdoli sulla riattivazione del supporto
Soluzioni di escalation del supporto scadenti - non potevano semplicemente attivare il 'supporto' gratuito
Prestazioni del database scadenti
Operazioni di eliminazione lente
Blocco dell'ecosistema
Aggiornamenti forzati - nessun rilascio LTS
Lasciami riassumere in questo modo: se il tuo comando compact() non libera lo spazio disponibile sul tuo cluster, allora fornisci al cliente supporto gratuito per farlo.
Odio avere a che fare con Mongo. Niente è semplice, tutto è costoso e le prestazioni fanno schifo.
Se stai considerando di usare Mongo, trova qualcos'altro. Anche se devi impiegare un po' più di tempo per imparare AWS Dynamo, S3 o Aurora, dovresti farlo; risparmierai tempo e denaro a lungo termine.
Mongo, meriti questa recensione negativa. Ti ho dato molte opportunità per risolvere le cose e ho sollevato problemi, ma semplicemente non ti importa.
Volevamo allontanarci da Mongo prima; ora non posso liberarmene abbastanza velocemente. Recensione raccolta e ospitata su G2.com.