sql >> Databasteknik >  >> NoSQL >> MongoDB

Det bästa sättet att vara värd för MongoDB på DigitalOcean

MongoDB är #3 open source-databasen och #1 NoSQL-databasen i världen. Det är en plattformsoberoende dokumentorienterad databas som använder JSON-liknande dokument med schema, och som utnyttjas brett över startappar upp till företag på företagsnivå som utvecklar moderna appar. Även om du kan anta att en stor majoritet av molndatabasinstallationerna körs på AWS, Azure eller Google Cloud Platform, drar i synnerhet små och medelstora företag till den utvecklarvänliga molnleverantören DigitalOcean för deras värd för MongoDB® behov. I det här inlägget går vi igenom det bästa sättet att vara värd för MongoDB på DigitalOcean, inklusive de bästa instanstyperna att använda, disktyper, replikeringsstrategi och hanterade tjänsteleverantörer.

DigitalOcean Advantages for MongoDB

Så, vad gör DigitalOcean till ett övertygande alternativ till andra populära MongoDB-värdleverantörer som AWS och Azure? Som nämnts ovan är DigitalOcean mycket utvecklarvänligt med sin enkla och lättförståeliga plattform – du behöver inte bli certifierad genom denna molnleverantör för att kunna få igång din driftsättning med tillförsikt. De erbjuder SSD-baserad molnhosting med okomplicerad prissättning också från bara $5/månad, vilket gör det idealiskt (och prisvärt) för utvecklare att bygga, testa och distribuera sina nya applikationer sömlöst i molnet. Det som är mest imponerande är att du inte kompromissar med prestanda för kostnad. Vi körde prestandatester för MongoDB på DigitalOcean vs. AWS vs. Azure och fann att DigitalOcean-prestanda var i linje med, om inte bättre, på både hög genomströmning och låg latens i distributionen.

DigitalOcean Droplets

DigitalOcean specialiserat sig på SSD-baserade virtuella maskiner som kallas Droplets som är uppdelade i fyra enkla kategorier. Den mest grundläggande droppen är deras standardinstans som använder delad CPU från bara $5/månad. Även om det är lämpligt för applikationer med låg trafik, små databaser och utvecklings-/testmiljöer, rekommenderar vi att du inte använder delade kluster för dina MongoDB-produktionsinstallationer. De erbjuder också en dedikerad CPU-optimerad droppe som är tillräcklig för CPU-intensiva arbetsbelastningar, men erbjuder lågt minne vilket inte är idealiskt för MongoDB-värd.

Om du distribuerar en medelstor MongoDB-arbetsbelastning rekommenderar vi deras mest populära General Purpose Droplet som är en dedikerad instans som erbjuder 4 GB minne för varje vCPU. Detta är vanligtvis mer än tillräckligt för produktionsinstallationer och applikationer med hög trafik, och börjar på 60 USD/månad för 8 GB minne, 2 vCPU:er, 4 TB överföring och 25 GB SSD-diskutrymme. DigitalOcean lanserade också nyligen sina Memory-Optimized Droplets som är dedikerade instanser som är designade för RAM-intensiva applikationer och högpresterande databaser, vilket gör det till en attraktiv lösning för MongoDB-applikationer med tung arbetsbelastning.

Du kan distribuera MongoDB på DigitalOcean i 12 datacenterregioner över hela världen, inklusive USA (New York City och San Francisco), Kanada, Nederländerna, Singapore, Storbritannien , Tyskland och Indien.

DigitalOcean disktyper

En av anledningarna till att MongoDB presterar så bra på DigitalOcean är deras SSD-diskar, som är idealiska för molndatabasinstallationer. De ger stor genomströmning som erbjuder betydande fördelar för att köra ett index på din databas eller reparera en maskin, vilket sparar dig en betydande mängd tid jämfört med en standard MongoDB-distribution på AWS. De erbjuder till och med otroligt låg latens från Amazon AWS US-East till DigitalOcean New Yorks datacenter, vilket är utmärkt för applikationer som kör sin front på mid-tier på AWS, men som vill använda DigitalOcean för sina MongoDB-kluster.

MongoDB-replikeringsstrategier

Om du kör MongoDB på DigitalOcean i produktion är det bästa praxis att distribuera med en replikuppsättning för att säkerställa hög tillgänglighet och dataredundans för dina kluster. DigitalOcean, tillsammans med AWS och Azure, erbjuder ett SLA på 99,99 % drifttid, men även om det låter nära perfekt, motsvarar de 0,01 % 52,6 minuters driftstopp på ett år. Det är nästan en timme där din databas blir otillgänglig för dina kunder, besökare och anställda, vilket kan ha en betydande inverkan på ditt kundbehållande och ditt varumärkes rykte.

MongoDB Replica Sets

Lyckligtvis kan du i hög grad minska risken för att din implementering går ner med förlust av ett datacenter genom att sätta upp en geografiskt distribuerad 3-nodsreplikuppsättning för MongoDB på DigitalOcean. Det finns ett par alternativ för att ställa in den här konfigurationen, den första är en primär-sekundär-arbiter-inställning som tillhandahåller 2 databärande noder och en arbiter som fungerar som en röstande medlem för att avgöra vilken replik som ska ta över i händelse av att en blir otillgänglig . Detta är det mest prisvärda alternativet eftersom medlaren inte har några data och kostar mindre att distribuera, men erbjuder också 1 nod mindre som kan ta över i en failover-händelse. Den optimala replikeringsstrategin skulle vara en primär-sekundär-sekundär inställning som utnyttjar 3 databärande noder och låter dig failover till 2 separata datacenter i händelse av att din primära region går ner.

Det bästa sättet att vara värd för #MongoDB på DigitalOceanClick To Tweet

MongoDB Sharding

MongoDB sharding är en avancerad form av distribution som låter dig skala ut dina data horisontellt över flera maskiner. Detta är en mycket komplex konfiguration att installera och hantera, eftersom varje fragment innehåller flera replikuppsättningar och kan distribueras över olika datacenterplatser för hög tillgänglighet. Sharding är idealiskt för mycket stora datamängder eller driftsättningar med hög genomströmning som kräver mer kapacitet som du kan få med en enda server. Där den typiska distributionen skalas vertikalt genom att lägga till mer kapacitet till en server när det behövs, låter sönderdelning dig skala horisontellt genom att dela upp din data och ladda över flera maskiner. När du har ställt in din sharded miljö kan du lägga till fler shards efter behov för att stödja din applikationstillväxt.

På ScaleGrid erbjuder vi fristående, 2 repliker + Arbiter, 3 kopior och avancerade Sharding-konfigurationer för att vara värd för MongoDB på DigitalOcean under vår dedikerade värdplan som börjar med en mikroplansstorlek för $35/ månad upp till en X4XLarge-plan med 16 kärnor, 48 GB RAM och 950 GB lagringsutrymme. Du kan också anpassa din MongoDB-replikuppsättning med ett obegränsat antal repliker för dina applikationsbehov.

Managed MongoDB Hosting på DigitalOcean

Nu kommer vi till den ultimata frågan – ska du själv hantera din MongoDB på DigitalOcean-distributioner eller utnyttja en helt hanterad Database-as-a-Service (DBaaS)-plattform? Svaret handlar om din tid, kunskap och all-time-tillgänglighet för att hantera alla kritiska problem som kommer upp med din implementering.

Förvaltnings- och underhållsuppgifter

MongoDB DBaaS-plattformar låter dig automatisera alla dina tidskrävande hanterings- och underhållsoperationer som versionsuppgraderingar, skalning, gratis säkerhetskopiering, återställning, provisionering, avprovisionering, replikering, komprimering, indexering hantering, OS-lappning och loggrotationer. Beroende på storleken på din distribution kan detta ta dig 1-2 dagar per månad, upp till en heltidsarmé av MongoDB-experter som arbetar dygnet runt. En stor fördel med att utnyttja en DBaaS-plattform är att du eliminerar risken för mänskliga fel eftersom hanteringen är automatiserad åt dig. Det håller också dina MongoDB-kluster på DigitalOcean helt säkra och uppdaterade så att du inte öppnar dina distributioner för potentiella buggar eller hot som kan uppstå med en försummad databas.

Övervaka prestanda

Övervakning är också en stor komponent för att hantera en MongoDB-distribution. Med en DBaaS-plattform kan du automatisera varningar på alla dina MongoDB-mätvärden så att du blir informerad i det ögonblick som ett oönskat tröskelvärde uppnås, och få tillgång till en avancerad övervakningskonsol för att analysera alla dina MongoDB- och OS-mått över dina primära och sekundära instanser och över vilken tidsperiod som helst. Dessutom, med en DBaaS som ScaleGrid, kan du utnyttja Slow Query Analyzer som låter dig visualisera långsamma frågor och optimera dem innan de börjar påverka din implementeringsprestanda.

Felsökningssupport

Sist, men absolut inte minst, är tillgängligheten till support. Om du har väckts klockan 04:00 av ett frenetiskt samtal från din chef som undrar varför din ansökan ligger nere och hur snabbt du kan få upp den igen, vet du exakt vad jag pratar om. Varje minut av driftstopp kan orsaka dig tusentals dollar i affärer, och mycket värre, ett säkerhetsbrott kan stänga ner ditt företag helt och hållet och sätta en evig fläck på ditt rykte. Genom att utnyttja en DBaaS-plattform kan du komma före över 90 % av dessa kritiska problem och ha ett team av MongoDB-experter vid din sida 24/7 för de oundvikliga 10 % för att hjälpa dig att snabbt identifiera och lösa problemen för att få din implementering tillbaka till ett friskt, löpande tillstånd.

På ScaleGrid identifierade vi DigitalOcean som en kommande rockstjärna för värd för MongoDB och cloud computing i allmänhet redan 2013, och var den första DBaaS plattform för att lansera stöd för MongoDB DigitalOcean. Fortfarande idag är vi den enda fullt hanterade DBaaS-plattformen som låter dig automatisera din hosting för MongoDB på DigitalOcean och utnyttja företagsklassade databashanteringsverktyg för att optimera din distributionsprestanda, säkerhet och tillgänglighet i molnet. Om du är intresserad av att prova några av de avancerade funktionerna hos en DBaaS för MongoDB på DigitalOcean, kan du starta en gratis 30-dagars provperiod utan att behöva kreditkort för att utforska automatiseringsverktygen, och kolla in sidan Jämför MongoDB-leverantörer för att se hur vi hanterar MongoDB Atlas, mLab, ObjectRocket och Compose för MongoDB.


  1. Hur designar man redis pub/sub för ett snabbmeddelandesystem?

  2. MongoDB forEach()

  3. Transaktioner i MongoDB

  4. redis scan returnerar tomma resultat men markören inte är noll