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.
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).
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:
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 |
---|---|
|
|
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.
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.
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.
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:
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.
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).
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.
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!