MongoDB.Local.London: drie handige tips van developer Siebe

Siebe Vander Henst Siebe Vander Henst
21 October, 2019

Eind september ging fullstack developer Siebe Vander Henst van onze webdivisie Stacked naar Londen voor de MongoDB Conference. Het was een interessante dag boordevol nieuwe insights en boeiende conversaties met de MongoDB-experts. “Er heerst een heel aangename, open sfeer op de beurs waardoor ik me echt thuis voelde.”, aldus Siebe. Hij maakt voor ons verslag van de dag en onthult drie key learnings die hij zeker zal implementeren. Van full text search en GDPR-proof encryption tot de volgorde van je indexen én zelfs praktische hands-on tips van de aanwezige experts: Siebe kijkt met een voldaan gevoel terug naar de conferentie!

 
 

First things first: wat was MongoDB nu weer?

Eerder dit jaar gaf ik een introductie van deze razend populaire data storage tijdens een RMDY Tech Dive. Ben jij al helemaal mee? Spring dan gerust verder naar de volgende alinea!

Toch nog even een recap nodig? Die geef ik graag.

De opensource NoSQL-database bestaat al sinds 2009 maar kent een heuse boost vanaf 2016. Oorzaak? De nieuwe CEO Dev Ittycheria (°2014) die focust op gebruiksvriendelijkheid door het creëren van een totaalpakket. Zo zijn er veel side applicaties om al het werk rond databeheer te vergemakkelijken. Denk maar aan Compass (graphic user interface), Atlas (hosting in de cloud) en Charts (grafieken). Deze kleinere applicaties worden de laatste jaren rondom MongoDB gebouwd waardoor het enorm interessant is om met de database aan de slag te gaan. Omdat de applicaties geschreven zijn door dezelfde developers als die van MongoDB, is alles perfect geïntegreerd en moet je niets aanpassen. Zo kan je met Compass op een heel gemakkelijke manier alle gegevens bekijken, aanpassen en visualiseren terwijl je met een andere database daarvoor naar een derde partij moet gaan. Deze gebruiksvriendelijke mindset naar developers toe maakt het heel aangenaam om aan de slag te gaan met MongoDB. En dat is exact wat ik de voorbije jaren deed én reden te meer om voor de eerste keer naar een MongoDB Local Conference te gaan.

 
 

MongoDB.Local.London

Er staan heel wat talks op het programma en ook een 30-tal aanwezige experts zijn beschikbaar voor allerlei vragen – het belooft een druk gevulde dag te worden! Naast talks is er ook een IoT booth met remote auto’s, een coders lounge, een sponsor area met allerlei providers en een keynote van medeoprichter Eliot Horowitz. Ik ben vooral geïnteresseerd in de nieuwigheden die versie 4.2 met zich meebrengt en hoe ik mijn huidige werking kan optimaliseren. Bijkomend zit ik met enkele praktische issues die ik graag voorleg aan de experts van het MongoDB core team.

“Het leuke aan de conferentie is dat de MongoDB-experts heel erg gericht zijn op hun publiek. Ze vragen voortdurend wat de developer community nog mist in hun applicatie(s) en wat er kan verbeteren. Een heel aangename en welgekomen mindset.”



Ask the experts

Zoals gezegd zijn er dus veel experten aanwezig, elk aan hun eigen booth per applicatie zodat de bezoekende developers specifieke vragen kunnen stellen aan de juiste mensen. Bij de Charts-booth spreek ik Sander De Vos aan, data enabler bij MongoDB, die mij meteen verder helpt met mijn grafiekspecifieke vragen. Iedereen op de conferentie heeft er zijn laptop bij de hand en kan dus snel verder geholpen worden. We komen zelfs tot de vaststelling dat een bepaalde feature nog niet aanwezig is. Een interessante toevoeging die Sander intern probeert te upvoten zodat de aanpassing er sneller komt. Nog één van die voordelen aan deze open community, want een bedrijf dat echt luistert naar haar developers, ontwikkelt ook de leukste en meest gevraagde features.
Ik vraag ook hoe we verschillende projecten best in een MongoDB-cluster steken en hoe we die dan verdelen. En gezien ik toch de experts bij me heb, leg ik ze ook enkele vraagstukken voor over mijn privéproject voor Zonnekamp vzw.

Zo ben ik heel wat praktische tips rijker en kan ik meteen aan de slag thuis en op kantoor!

Learn from the experts


MongoDB 4.2: what’s new?

In de nieuwe versie 4.2 steken heel wat nieuwe updates, en daar kijk ik enorm naar uit! De features waar ik het meest enthousiast over ben is de full text search en de client side field encryption. Het zijn alleszins features die invloed zullen hebben op mijn huidige en toekomstige projecten.
Met full text search kan je over alle documenten in je database heen zoeken op een bepaald woord. Dat was voorheen niet mogelijk en zal dus voor heel wat meer efficiëntie zorgen. Vergelijk het gerust met een search in Verkenner of Finder. Stel, je hebt een database met filmrecensies, daarin kan je nu met één query (zoekvraag) alle documenten doorzoeken op een woord. Het resultaat is een bepaalde sortering van alle documenten (recensies) waar dat woord in voorkomt, de frequentie dat het voorkomt en de match met de zoekvraag. Zo zit er ook een spellingscorrectie in waardoor een tikfout niet per definitie zorgt voor een beperkt zoekresultaat; de search zal ook woorden tonen die 1 of 2 letters afwijken. Wil je de resultaten ook nog gemarkeerd zien? Dat kan! Je kan dit als developer ook zeer gemakkelijk opzetten. Achterliggend maakt MongoDB namelijk gebruik van de Apache Lucene API die meteen connecteert zonder synchronisatie of grote aanpassingen, wat voorheen met Elastic Search (derde partij) wel het geval was.
Wanneer we live zitten op de nieuwe versie, implementeren we bij Stacked alvast deze search in de RMDY CV-tool, een interne tool die we ontwikkelden voor alle RMDY-consultants.

Een andere, zeer belangrijke, nieuwe feature is de client side field encryption. Hiermee worden de velden van jouw keuze geëncrypteerd met twee sleutels: eentje op de server en een andere bij diegene die de data in de database plaatst. De beveiliging hiervan is ijzersterk. Enkel de persoon die de data erin plaatste kan de info lezen, aanpassen en verwijderen. Zelfs als de server ooit gehackt wordt, zijn de data onbruikbaar en onleesbaar zonder de andere sleutel. Wil je gegevens verwijderen? Dan verwijder je de sleutel en zijn de data voor eeuwig weg.
In het hele GDPR-verhaal wordt dit een belangrijke tool in de toekomst. De implementatie ervan is ook heel gemakkelijk want je moet geen configuratie uitvoeren. Je duidt zelf aan welke velden een encryptie nodig hebben, het is namelijk niet de bedoeling om een gehele database automatisch te encrypteren. Voor onze bestaande projecten gaan we dat zeker invoeren en ook voor toekomstige projecten wordt het een grote troef. Omdat we bij Stacked zeer binnenkort gebruik maken van deze nieuwe MongoDB-versie kunnen we garanderen dat jouw gevoelige data op de beste manier beveiligd wordt. Ik test alvast de feature uit met mijn privéproject.

Performantie optimaliseren met indexen

Net als bij elke database, zit er ook in MongoDB een index om data te structureren. Hoe je het structureert, heeft gevolgen op hoe lang je zoektocht naar bepaalde data duurt. Zonder indexsysteem in een bibliotheek, zou je namelijk ook nooit een boek terugvinden, of je zou er heel erg lang over doen. Bij MongoDB is dat niet anders. Alleen kan je bij een virtuele database verschillende indexen creëren waardoor je bv. een index op naam hebt én eentje op datum, lengte, enzovoort. Een index kan ook zeer complex zijn en het is net die complexiteit die je met een goede volgorde moet opbouwen om tot de hoogste performantie te komen. De belangrijkste standaardvorm is de ESR-index:
 
· Equality first: eerst definieer je een bepaalde waarde.
vb. velden die het woord ‘appel’ bevatten
· Sort next: je kiest welke sortering je wil
vb. alle velden met het woord ‘appel’, gesorteerd op creatiedatum van het veld
· Range last: je kiest een bereik waarin je wil zoeken
vb. zoek enkel in data waarbij de prijs per kilo van de appels onder 2€ ligt.
Volg je deze indexregels tijdens je query (zoektocht), zal die query optimaal verlopen. Tijdens een korte demo zie ik hoe de ene database met index A 41% van de CPU gebruikt en de andere database met index B slechts 4%. Wat een verschil! En dat louter door een indexvolgorde.

Is dit dan nieuw?

Nee hoor, maar de talk bracht deze handige tips & tricks wel weer onder de aandacht. Bovendien zijn er op de MongoDB-conferentie ook developers aanwezig die er nog nooit eerder mee werkten of net gestart zijn, en dan is zo’n info van onmisbare waarde om de performantie van je applicatie naar een hoger niveau te brengen.

We gaan alvast deze handige index toepassen wanneer we MongoDB uitrollen naar meer van onze projecten!
 
 

MongoDB: voor en door developers

Conclusie van deze ééndagsconferentie? Een dikke aanrader! De talks, demo’s en randanimatie zijn zowel voor gevorderden als beginners. De experts staan open voor alle vragen en geven specifieke raad, of dat nu om een technisch issue gaat of de vraag of MongoDB wel iets voor jouw bedrijf of project is. Omdat de local meetups best klein zijn (ongeveer 350 bezoekers), kom je ook gemakkelijk in contact met andere developers en gaat networken heel vlot. Ik ken nu heel wat andere developers en zit in een MongoDB Slack-kanaal waardoor ik me echt thuis voel in een dedicated community. En ik kan uiteraard niet wachten om aan de slag te gaan met de nieuwe versie!


Maak jij ook deel uit van de MongoDB community?
Wil je hier graag mee aan de slag?

Contacteer ons