Emixa blog

Het experimenteren met nieuwe apps in de gratis sandbox-omgeving van Mendix

Geschreven door Minke van Dooremalen | Marketing Manager | Dec 29, 2023 4:12:25 PM

Ben je nieuw in de wereld van Mendix en wil je zelf hands-on met het platform experimenteren? Of werken jullie al met Mendix, maar wil je een kleine applicatie gebruiken om te experimenteren of een idee te valideren? Dan kun je gebruikmaken van de gratis ‘sandbox-omgeving’. Dit is namelijk de ideale plek om te testen of een applicatie-idee toegevoegde waarde kan hebben. Binnen een sandbox kun je uitgebreid experimenteren en testen. Slaat het idee aan en heeft het business-waarde? Dan kun je overstappen naar een omgeving met een licentie en uitgebreidere afspraken.

Wat is een sandbox?

De letterlijke betekenis van sandbox is zandbak. De term gebruikt men vaak in softwareontwikkelprojecten om aan te geven dat de omgeving die je gebruikt tijdelijk, beperkt of kleiner is dan omgevingen die meer eisen stellen aan functionaliteit, beschikbaarheid of performance.

Volgens Wikipedia worden sandbox-omgevingen vaak gebruikt om software te testen in een volledig geïsoleerde IT-omgeving (zonder netwerk of verbinding met de buitenwereld).

Wat is een Mendix-sandbox?

Elke Mendix-app die je maakt op je eigen lokale machine, draait binnen Mendix Studio Pro, de ontwikkelomgeving van het platform. Maar Studio Pro leent zich niet zo goed voor het beschikbaar maken van apps voor andere gebruikers. En dan komt de sandbox om de hoek kijken. Vanuit Mendix Studio Pro kun je namelijk met een enkele druk op de knop de applicatie naar een sandbox-omgeving overzetten. De applicatie draait nu ‘in de cloud’ en is toegankelijk voor meerdere personen om gebruikt te worden.

Aan een enkel Mendix-project kun je 1 sandbox koppelen. Deze koppeling ontstaat als je een nieuw project aanmaakt voor het bouwen van een Mendix-app. De sandbox is gelimiteerd in functionaliteit, schaalbaarheid, beschikbaarheid en performance. De verschillen met een betaalde omgeving zullen we verderop in dit artikel uitgebreid behandelen.

Vanuit technisch oogpunt draait een sandbox-applicatie in een Docker-container. Die container draait in de Mendix Cloud v4 (free tier) op het cloudplatform van AWS (Amazon Webservices). De specificaties zijn:

  • 1 GB geheugen
  • 1 GB voor bestandsopslag
  • 0,5 GB maximale databasegrootte De applicatie gaat in slaapmodus tijdens inactiviteit en herstart wanneer deze opnieuw wordt gebruikt. In de praktijk zal een app die overdag vaak wordt gebruikt 's nachts vaak in slaapstand gaan.

Verschillen tussen een gratis sandbox en een betaalde licentie

Een betaalde omgeving waarvoor je een jaarlijkse licentievergoeding moet betalen, wordt een gelicentieerde cloudnode genoemd. Zo'n node wordt meestal geleverd met ten minste een productie- en acceptatieomgeving, en vaak wordt er ook een testomgeving gebruikt om eenvoudig applications uit te rollen.

Dit zijn de 11 verschillen tussen een sandbox en een gelicenseerde cloudnode:

Sandbox-Node Gelicenseerde cloudnote
  • U kunt uw eigen domein niet instellen
  • Maximaal 50 gebruikers tegelijkertijd
  • Met live-log kun je de voortgang van je implementatie volgen
  • Geen logbestanden die je kunt downloaden
  • Geen uitgebreide monitoring en waarschuwingen mogelijk
  • Je kunt geen pakket maken van een applicatieversie en deze uitrollen naar een sandbox
  • Geen geplande evenementen
  • Constanten moeten worden ingesteld in het model
  • Dagelijkse back-ups worden slechts 2 weken bewaard
  • Clientcertificaten en toegangsbeperkingsprofielen kunnen niet worden ingesteld
  • De omgeving stopt tijdens inactiviteit en start opnieuw wanneer er nieuwe implementaties plaatsvinden of wanneer je de applicatie start. Dit duurt 10 tot 20 seconden
  • U kunt uw eigen domein instellen
  • Aantal gebruikers volgens de licentieovereenkomsten
  • In de projectomgeving kun je de implementatie live volgen
  • Je hebt toegang tot de huidige logbestanden en een logarchief
  • Standaard bewaking van je CPU, geheugen, threads, sessies, enzovoort
  • Elke keer dat je een nieuwe versie naar de sandbox overbrengt, wordt de huidige versie overschreven. Je hebt meer controle over het maken van pakketten van een versie en het uitrollen ervan naar verschillende omgevingen (test, acceptatie en productie)
  • Je kunt geplande gebeurtenissen in- en uitschakelen
  • Constanten per omgeving instellen
  • Back-ups worden dagelijks/continu en op verzoek tot 1 jaar bewaard
  • Clientcertificaten en profielen voor toegangsbeperkingen kunnen worden ingesteld
  • Je kunt de omgeving zelf starten en stoppen

Kun je de beperkingen anders oplossen?

Als je echte problemen ondervindt bij het gebruik van sandbox-omgevingen, moet je een betaalde omgeving met een licentie aanschaffen. Je kunt er dan voor kiezen om je Mendix projecten uit te rollen in de Mendix Cloud . Je kunt ook je cloudomgeving gebruiken als je licentie die optie ondersteunt. Denk bijvoorbeeld aan Azure, Google Cloud, SAP Cloud en Pivotal. Mendix heeft hiervoor Mendix for Private Cloud, dat gebruikmaakt van een Kubernetes-cluster (zie Mendix for Private Cloud). Als ontwikkelaar heb je via het platformportaal dezelfde mogelijkheden als in het publieke Mendix Cloud . Als je ervoor kiest om hier geen gebruik van te maken, houd er dan rekening mee dat je alles voor de infrastructuur, configuratie en het onderhoud van applications op deze cloudplatformen zelf moet beheren.

Sommige beperkingen kunnen soms opgelost worden met een workaround, maar deze solutions zijn vaak niet ideaal. Beschouw de volgende problemen en solutions:

Geen inzicht in de monitoring van grafieken en informatie → Gebruik Google Analytics-widgets in je model. Deze widgets geven meer informatie over het gebruik van de applicatie en tonen bijvoorbeeld het aantal gebruikers en wanneer deze gebruikers inloggen.

Geen logbestanden beschikbaar van de laatste periode dat de applicatie draaide → Gebruik de loggingmodule uit de Mendix Appstore om logberichten naar de database te schrijven. Op deze manier bouw je je eigen logboekarchief. Houd er rekening mee dat je beperkte ruimte hebt in je database. Je kunt deze logberichten ook extern wegschrijven via een REST-interface naar bijvoorbeeld Datadog of een vergelijkbaar platform. Je kunt ook een alternatieve database kiezen.

Geen eigen domeinnaam waarop de app draait → Om de URL van de sandbox te verbergen, kun je een domein registreren of een pagina op een bestaand domein gebruiken waarop een iframe zichtbaar is met de URL van de sandbox(voorbeeldcode vind je hier). Je kunt de applicatie dan aanroepen via deze eigen domeinnaam. Iframes hebben beperkingen, bijvoorbeeld wanneer de schermgrootte van je app verandert.

Tip voor gevorderden: Als je deeplinks gebruikt, moet je daar rekening mee houden (geef de deeplink door aan het iframe, bijvoorbeeld met JavaScript).

Geen geavanceerde back-upfunctionaliteit → Stel regelmatig een back-up veilig door deze lokaal te downloaden. Voor een sandbox worden back-ups maximaal 2 weken bewaard. Een nog betere optie is om functionaliteit te ontwikkelen voor het exporteren en importeren van uw gegevens. In een sandbox kun je alleen een door Mendix gemaakte back-up terugzetten en niet zelf uploaden.

Wil je meer dan 1 GB aan bestanden opslaan → Als je een applicatie gebruikt die veel bestanden wil opslaan, overweeg dan om gebruik te maken van externe cloudopslag en deze te integreren via een REST API. Denk bijvoorbeeld aan AWS S3 of Dropbox, oplossingen die een lage prijs per GB bieden.

Geen geplande events → Om processen te triggeren die u dagelijks moet uitvoeren, moet u uw sandboxapplicatie aanroepen vanuit een andere cloudapplicatie. Bijvoorbeeld gegevens synchronisatie kan nog steeds dagelijks worden uitgevoerd. Google Scheduler, AWS Cloudwatch of de (CRM-)applicatie die u al gebruikt, kunnen dit probleem voor u oplossen.

Kan ik productie applications draaien in een sandbox?

Ja, dat kan. Je moet echter wel rekening houden met bovenstaande (technische) beperkingen. Daarnaast hebben sandbox-omgevingen een lagere SLA en beperktere uptime-garanties. Natuurlijk is Mendix Support beschikbaar als er problemen optreden in je omgeving. Je kunt hiervoor een ticket aanmaken.

Is dit, eventueel in combinatie met workarounds, voldoende voor de eisen die je stelt aan de omgeving voor je applicatie? Dan kun je met een gerust hart een sandbox gebruiken voor productie applications!

Mijn ervaring is dat voor kleine, niet-missie- of proceskritische applications een sandbox prima werkt, vooral als er niet veel gebruikers tegelijkertijd gebruik maken van de applicatie. Sinds de introductie van sandbox-omgevingen zijn er nog steeds apps die ik stabiel gebruik in een sandbox.

Hoe deploy ik naar een sandbox?

Wanneer je een nieuwe applicatie aanmaakt in het Mendix platform, wordt ook de URL van je applicatie bepaald. Opmerking: deze URL kan achteraf niet worden gewijzigd!

Je app is dan beschikbaar op de URL: https://<app-naam-nummerXXX-sandbox.mxapps.io. Deze URL wordt gegenereerd op basis van de naam die je hebt gebruikt bij het maken van je nieuwe app. Na je eerste implementatie zal je app toegankelijk zijn via deze URL.

Om een nieuwe versie uit te rollen naar een sandboxomgeving, klik je op 'Uitvoeren' in het menu 'Uitvoeren'. Opmerking: je wijzigingen worden onmiddellijk vastgelegd op de teamserver (SVN) en je versie wordt overschreven op de zandbakcloud. Als je lokaal test, zorg er dan voor dat je de optie 'Lokaal uitvoeren' kiest.

Kan ik een productie- en test-sandbox hebben?

In de basisopstelling is dit niet direct mogelijk vanuit één Mendix project. Er is echter een workaround om een testomgeving aan te maken. Dit biedt voordelen als je nieuwe functies eerst wilt testen voordat je ze overbrengt naar de 'productie' sandbox.

Helaas zijn er altijd enkele handmatige acties nodig. Volg het onderstaande stappenplan om naast je applicatie een testomgeving te maken:

  • 1. Maak een nieuw leeg project met dezelfde naam als je .mpr-bestand als de bestaande applicatie die draait in de 'productie' sandbox.

Advanced tip: wil je echt een afwijkende URL hebben voor je testomgeving? Geef dan bij de naam van het project bijvoorbeeld op: “SurveyBuilder-test”. Je hernoemt daarna in dit project de .mpr via TortoiseSVN of SmartSVN naar exact dezelfde naam als je productie app .mpr en commit dit eerst voordat je naar stap 4 gaat.

  • Implementeer dit naar de sandbox (zie "Hoe implementeer ik naar een sandbox").
  • Je hebt nu een leeg Mendix project met een zandbak die je kunt gebruiken als testomgeving.

Als je de wijzigingen aan je applicatie eerst wilt testen op de testomgeving, doe dan het volgende:

Kopieer/plak alle bestanden uit de directory van je productietoepassing, behalve de .svn en .mendix-cache directories (als je ze niet ziet, controleer View->Hidden items).

  • Je hebt nu je lege testapplicatie overschreven met het Mendix model van je productietoepassing.
  • Breng nu de gewenste wijzigingen aan.
  • Als je nu implementeert naar je 'testapplicatie' (zie "Hoe implementeer ik naar een sandbox"), kun je een paar dingen testen.
  • Als de wijzigingen bevredigend zijn, kun je dezelfde copy/paste stappen herhalen in je productietoepassing en uiteindelijk implementeren op je 'productieomgeving'. Zoals ik al zei, vereist het maken van een testomgeving in een sandbox veel handmatig werk. In de betaalde versie is dit natuurlijk allemaal netjes geautomatiseerd.

Laatste tips

  • Als je met sandboxes werkt, moet je soms geduld hebben. Het implementatieproces verloopt niet altijd zo snel als in een gelicentieerde omgeving.
  • Je kunt de debugger gebruiken die je ook in je lokale omgeving gebruikt.
  • Zorg ervoor dat u een beheerder en gebruiker aanmaakt in de After Startup van uw model als deze er nog niet zijn.
  • Zorg ervoor, net als bij Mendix apps die op een gelicentieerd knooppunt draaien, dat uw beveiligings- en toegangsregels in orde zijn.

Ik wens je veel plezier met het gebruik van de Mendix zandbak. Experimenteer en leer! En als je vragen hebt, aarzel dan niet om contact met ons op te nemen.

Wil je meer weten?

Er zijn volop mogelijkheden om de digitale transformatie in de technologiesector te stimuleren. Wilt u de digitale staat van uw organisatie verbeteren? En bent u op zoek naar een partner die u kan helpen dit doel te bereiken? In dat geval is Emixa de juiste partner voor u. Wij vertalen complexe vraagstukken in eenvoudige, gebruiksvriendelijke IT oplossingen die uw digitale transformatie versnellen en uw bedrijf naar een hoger niveau tillen. Aarzelniet om contact met ons op te nemen. Wij ontmoeten u graag!