MongoDB, JSON en Java
De workshop gaf ik bij een grote financiële instelling, waar ze gebruik maken van Microsoft SQL Server. Er draait daarnaast meerdere grote Oracle-instances, maar ook MySQL is flink in zwang. Maar de developmentafdeling wilde graag van legacy af en men was benieuwd of MongoDB geschikt was voor een geconverteerde applicatie waar ze mee bezig waren. De conclusie was al snel dat MongoDB juist erg goed paste, omdat ze veel in Java programmeren. MongoDB slaat data op via JSON en dat werkt één op één met Java. Probleemloos!
Ik heb daar toen een complete OTAP opgezet, een ontwikkeling / test / acceptatie / productie omgeving. Een van de eisen – want een financiële instelling – was dat het allemaal heel veilig ingericht moest worden. Helemaal dichtgetimmerd. Daarom heb ik daar ook SSL geïmplementeerd en MongoDB draait dus compleet op SSL en je komt niet binnen zonder certificaat.
Meer applicaties
Dat de ontwikkelaars erg tevreden zijn met MongoDB, bleek wel toen de OTAP-omgeving nog maar net operationeel was en ze meteen een tweede applicatie overzetten. Zo enthousiast waren ze erover en ze zijn van plan om langzaamaan steeds meer applicaties te migreren naar dit platform.
Het platform draait overigens op Percona Server voor MongoDB, omdat de organisatie daar ook al MySQL van hadden. En het mooie is dat Percona ook een heel mooie open source suite heeft voor management en monitoring. Dat kun je zo installeren en haalt de statistische data probleemloos uit MongoDB.
Google gebruikt het
Inmiddels ben ik behoorlijk gecharmeerd van NoSQL en MongoDB in het bijzonder, dat is wel duidelijk. Het is een prachtig open-source product, met een trotse community. Het zijn ook niet de minste bedrijven die MongoDB gebruiken, want wat dacht je van Google? UPS? Facebook, ebay, Cisco?
Het is ook niet zo vreemd, want een van de mooie eigenschappen van NoSQL is dat het horizontaal schaalt. En dat is een groot verschil met Oracle, bijvoorbeeld, dat verticaal schaalt. Je kan de server groter maken, meer processoren toevoegen en het geheugen uitbreiden; maar op een gegeven moment houdt dat ook op.
MongoDB daarentegen schaalt horizontaal en als je tot de conclusie komt dat ‘het niet meer past’, de server raakt vol, dan zet je er gewoon een server naast (Sharding) en dan ga je weer verder. Zo kun je clusters neerzetten van duizenden machines, als het nodig is. Als je ziet dat er een piek is in de datatoevoer, dan voeg je wat extra machines toe. Als het niet meer nodig is, dan haal je het weer weg. En dat maakt het heel flexibel.
Een MongoDB-omgeving is zo opgezet
En omdat het naadloos samenwerkt met Java (maar ook met andere ontwikkeltalen, vrees niet, .NET-ters!), is het een heel snelle ontwikkelomgeving. Wat je vaak ziet is dat er een omgeving wordt opgezet, zonder dat er een DBA aan te pas komt. Een developer zet in no-time een MongoDB server op – bij wijze van spreken gewoon onder zijn bureau – en gaat ermee ‘spelen’. Het werkt!
Maar als je het serieuzer wilt aanpakken, als het allemaal wat groter wordt en je tegen performanceproblemen aanloopt, dan is het natuurlijk wel zo handig om iemand in te schakelen die er net wat meer verstand van heeft.
Ik kan het elke developer en elke DBA aanraden, ga ermee aan de slag! Ja, je gaat een relatieloze tijd in, maar je krijgt er zo’n vrijheid voor terug!
Downloaden kan hier: https://github.com/mongodb/mongo