Emixa Blog

Experimentieren mit neuen Apps in der kostenlosen Sandbox Umgebung von Mendix

Geschrieben von: Minke van Dooremalen | Marketing Manager | Dec 29, 2023 4:12:25 PM

Sind Sie neu in der Welt von Mendix und möchten mit der Plattform experimentieren? Oder nutzen Sie bereits Mendix, möchten aber eine kleine Anwendung verwenden, um zu experimentieren oder eine Idee zu validieren? In diesem Fall können Sie die kostenlose "Sandbox-Umgebung" nutzen. Dies ist der ideale Ort, um zu testen, ob eine Anwendungsidee einen Mehrwert bieten kann. In einer Sandbox können Sie ausgiebig experimentieren und testen. Wenn sich die Idee durchsetzt und einen geschäftlichen Wert hat, können Sie in eine lizenzierte Umgebung mit umfassenderen Vereinbarungen wechseln.

Was ist ein Sandkasten?

Die wörtliche Bedeutung von "Sandbox" ist "Sandkasten". Der Begriff wird in Softwareentwicklungsprojekten häufig verwendet, um darauf hinzuweisen, dass die von Ihnen verwendete Umgebung vorübergehend, begrenzt oder kleiner ist als Umgebungen, die höhere Anforderungen an Funktionalität, Verfügbarkeit oder Leistung stellen.

Laut Wikipedia werden Sandbox-Umgebungen häufig zum Testen von Software in einer vollständig isolierten IT-Umgebung (ohne Netzwerk oder Verbindung zur Außenwelt) verwendet.

Was ist eine Mendix Sandbox?

Jede Mendix App, die Sie auf Ihrem lokalen Rechner erstellen, läuft in Mendix Studio Pro, der Entwicklungsumgebung der Plattform. Studio Pro ist jedoch nicht gut geeignet, um Anwendungen für andere Benutzer verfügbar zu machen. An dieser Stelle kommt die Sandbox ins Spiel. Von Mendix Studio Pro aus können Sie die Anwendung mit einem einzigen Mausklick in eine Sandbox-Umgebung übertragen. Die Anwendung läuft nun "in der Cloud" und ist für mehrere Personen zugänglich.

Sie können eine Sandbox mit einem einzigen Mendix Projekt verbinden. Diese Verbindung wird hergestellt, wenn Sie ein neues Projekt erstellen, um eine Mendix App zu erstellen. Die Sandbox ist in ihrer Funktionalität, Skalierbarkeit, Verfügbarkeit und Leistung eingeschränkt. Die Unterschiede zu einer kostenpflichtigen Umgebung werden später in diesem Artikel ausführlich besprochen.

Aus technischer Sicht wird eine Sandbox-Anwendung in einem Docker-Container ausgeführt. Dieser Container läuft in der Mendix Cloud v4 (free tier) auf der AWS (Amazon Web Services) Cloud-Plattform. Die Spezifikationen sind:

  • 1 GB Speicher
  • 1 GB für Dateispeicher
  • 0,5 GB maximale Datenbankgröße Die Anwendung geht bei Inaktivität in den Ruhezustand und startet neu, wenn sie wieder benutzt wird. In der Praxis wird eine Anwendung, die tagsüber häufig genutzt wird, nachts oft in den Ruhezustand gehen.

Unterschiede zwischen einer kostenlosen Sandbox und einer kostenpflichtigen Lizenz

Eine kostenpflichtige Umgebung, für die Sie eine jährliche Lizenzgebühr entrichten müssen, wird als lizenzierter Cloud-Knoten bezeichnet. Ein solcher Knoten wird in der Regel mit mindestens einer Produktions- und einer Abnahmeumgebung geliefert, und häufig wird auch eine Testumgebung für die einfache Bereitstellung von applications verwendet.

Hier sind die 11 Unterschiede zwischen einer Sandbox und einem lizenzierten Cloud-Knoten:

Sandbox Knotenpunkt Lizenzierte Cloud Node
  • Sie können nicht Ihre eigene Domain einrichten
  • Maximal 50 Benutzer gleichzeitig
  • Das Live-Protokoll ermöglicht es Ihnen, den Fortschritt Ihrer Bereitstellung zu verfolgen
  • Keine Protokolldateien, die Sie herunterladen können
  • Keine umfassende Überwachung und Alarmierung möglich
  • Sie können kein Paket einer Anwendungsversion erstellen und es in einer Sandbox bereitstellen
  • Keine geplanten Veranstaltungen
  • Konstanten müssen im Modell gesetzt werden
  • Tägliche Backups werden nur 2 Wochen lang aufbewahrt.
  • Client-Zertifikate und Zugriffsbeschränkungsprofile können nicht eingestellt werden
  • Die Umgebung wird bei Inaktivität angehalten und neu gestartet, wenn neue Bereitstellungen erfolgen oder wenn Sie die Anwendung starten. Dies dauert 10 bis 20 Sekunden
  • Sie können Ihre eigene Domain einrichten
  • Anzahl der Benutzer gemäß den Lizenzvereinbarungen
  • In der Projektumgebung können Sie Ihre Bereitstellung live verfolgen
  • Sie haben Zugang zu den aktuellen Protokolldateien und einem Protokollarchiv
  • Standardüberwachung von CPU, Speicher, Threads, Sitzungen usw.
  • Jedes Mal, wenn Sie eine neue Version in die Sandbox übertragen, wird die laufende Version überschrieben. Sie haben mehr Kontrolle über die Erstellung von Paketen einer Version und deren Bereitstellung in verschiedenen Umgebungen (Test, Abnahme und Produktion)
  • Sie können geplante Ereignisse ein- und ausschalten
  • Konstanten pro Umgebung einstellen
  • Backups werden täglich/kontinuierlich und auf Anfrage bis zu 1 Jahr aufbewahrt.
  • Client-Zertifikate und Profile für Zugriffsbeschränkungen können festgelegt werden
  • Sie können die Umgebung selbst starten und stoppen

Können Sie die Einschränkungen anders lösen?

Wenn Sie bei der Verwendung von Sandbox-Umgebungen auf echte Probleme stoßen, müssen Sie eine kostenpflichtige Umgebung mit einer Lizenz erwerben. Sie können dann Ihre Mendix Projekte in der Mendix Cloud bereitstellen. Sie können auch Ihre Cloud-Umgebung verwenden, wenn Ihre Lizenz diese Option unterstützt. Denken Sie zum Beispiel an Azure, Google Cloud, SAP Cloud und Pivotal. Mendix hat zu diesem Zweck Mendix for Private Cloud, das einen Kubernetes-Cluster verwendet (siehe Mendix for Private Cloud). Als Entwickler haben Sie über das Plattformportal die gleichen Möglichkeiten wie auf der öffentlichen Mendix Cloud . Wenn Sie sich dagegen entscheiden, sollten Sie bedenken, dass Sie die Infrastruktur, Konfiguration und Wartung von applications auf diesen Cloud-Plattformen selbst verwalten müssen.

Einige Einschränkungen lassen sich manchmal mit einer Umgehungslösung beheben, aber diese solutions sind oft nicht ideal. Betrachten Sie die folgenden Probleme und solutions:

Kein Einblick in die Überwachung von Diagrammen und Informationen → Verwenden Sie Google Analytics Widgets in Ihrem Modell. Diese Widgets liefern mehr Informationen über die Nutzung der Anwendung, z. B. die Anzahl der Nutzer und wann sich diese Nutzer anmelden.

Keine Protokolldateien aus dem letzten Zeitraum, in dem die Anwendung lief, verfügbar → Verwenden Sie das Protokollierungsmodul aus dem Mendix Appstore, um Protokollmeldungen in die Datenbank zu schreiben. Auf diese Weise bauen Sie Ihr eigenes Logging-Archiv auf. Beachten Sie, dass Sie nur begrenzten Platz in Ihrer Datenbank haben. Sie können diese Log-Meldungen auch extern über eine REST-Schnittstelle z.B. zu Datadog oder einer ähnlichen Plattform schreiben. Sie können auch eine andere Datenbank wählen.

Kein eigener Domainname, unter dem die Anwendung läuft → Um die URL der Sandbox zu verbergen, können Sie eine Domain registrieren oder eine Seite auf einer bestehenden Domain verwenden, auf der ein Iframe mit der URL der Sandbox sichtbar ist(Beispielcode finden Sie hier). Sie können dann die Anwendung über diesen eigenen Domänennamen aufrufen. Iframes haben Einschränkungen, zum Beispiel wenn sich die Bildschirmgröße Ihrer Anwendung ändert.

Tipp für Fortgeschrittene: Wenn Sie Deeplinks verwenden, müssen Sie dies berücksichtigen (übergeben Sie den Deeplink an den iframe, z. B. mit JavaScript).

Keine erweiterte Backup-Funktionalität → Sichern Sie regelmäßig ein Backup, indem Sie es lokal herunterladen. Bei einer Sandbox werden Backups maximal 2 Wochen lang aufbewahrt. Eine noch bessere Option ist die Entwicklung von Funktionen zum Exportieren und Importieren Ihrer Daten. In einer Sandbox können Sie nur ein Backup wiederherstellen, das von Mendix erstellt wurde, und Sie können es nicht selbst hochladen.

Sie möchten mehr als 1 GB an Dateien speichern → Wenn Sie eine Anwendung verwenden, die viele Dateien speichern möchte, sollten Sie die Verwendung eines externen Cloud-Speichers in Betracht ziehen und diesen über eine REST-API integrieren. Denken Sie z. B. an AWS S3 oder Dropbox, Lösungen, die einen niedrigen Preis pro GB bieten.

Keine geplanten Ereignisse → Um Prozesse auszulösen, die Sie täglich durchführen müssen, müssen Sie Ihre Sandbox-Anwendung von einer anderen Cloud-Anwendung aus aufrufen. Beispielsweise kann die Synchronisierung der Daten von weiterhin täglich erfolgen. Google Scheduler, AWS Cloudwatch oder die (CRM-)Anwendung, die Sie bereits verwenden, können dieses Problem für Sie lösen.

Kann ich die Produktion applications in einer Sandbox ausführen?

Ja, das können Sie. Allerdings müssen Sie die oben genannten (technischen) Einschränkungen berücksichtigen. Darüber hinaus haben Sandbox-Umgebungen eine geringere SLA und eingeschränktere Betriebszeitgarantien. Natürlich steht Ihnen der Mendix Support zur Verfügung, falls Probleme in Ihrer Umgebung auftreten sollten. Sie können dafür ein Ticket erstellen.

Ist dies, eventuell in Kombination mit Workarounds, ausreichend für die Anforderungen, die Sie an die Umgebung für Ihre Anwendung haben? Dann können Sie getrost eine Sandbox für die Produktion verwenden applications!

Meiner Erfahrung nach funktioniert eine Sandbox für kleine, nicht missions- oder prozesskritische Anwendungen applications gut, insbesondere wenn nicht viele Benutzer die Anwendung gleichzeitig nutzen. Seit der Einführung von Sandbox-Umgebungen gibt es immer noch Anwendungen, die ich stabil in einer Sandbox verwende.

Wie erfolgt die Bereitstellung in einer Sandbox?

Wenn Sie eine neue Anwendung in der Mendix Plattform erstellen, wird auch die URL Ihrer Anwendung festgelegt. Hinweis: Diese URL kann nachträglich nicht mehr geändert werden!

Ihre App ist dann unter folgender URL verfügbar: https://<app-name-numberXXX-sandbox.mxapps.io. Diese URL wird auf der Grundlage des Namens generiert, den Sie beim Erstellen Ihrer neuen App verwendet haben. Nach der ersten Bereitstellung ist Ihre App über diese URL zugänglich.

Um eine neue Version in einer Sandbox-Umgebung bereitzustellen, klicken Sie auf "Ausführen" im Menü "Ausführen". Hinweis: Ihre Änderungen werden sofort auf den Teamserver (SVN) übertragen, und Ihre Version wird in der Sandbox-Cloud überschrieben. Wenn Sie lokal testen, wählen Sie unbedingt die Option "Lokal ausführen".

Kann ich eine Produktions- und eine Test-Sandbox haben?

In der Grundeinstellung ist dies nicht direkt von einem Mendix Projekt aus möglich. Es gibt jedoch einen Workaround, um eine Testumgebung zu erstellen. Dies bietet Vorteile, wenn Sie neue Funktionen zuerst testen wollen, bevor Sie sie in die "Produktions"-Sandbox übertragen.

Leider sind immer einige manuelle Aktionen erforderlich. Folgen Sie dem nachstehenden Schritt-für-Schritt-Plan, um eine Testumgebung neben Ihrer Anwendung zu erstellen:

  • 1. Erstellen Sie ein neues, leeres Projekt mit demselben Namen wie die .mpr-Datei der bestehenden Anwendung, die in der "Produktions"-Sandbox läuft.

Tipp für Fortgeschrittene: Wenn Sie wirklich eine andere URL für Ihre Testumgebung wünschen, geben Sie z.B. "SurveyBuilder-test" im Projektnamen an. Benennen Sie dann die .mpr in diesem Projekt über TortoiseSVN oder SmartSVN in genau denselben Namen um wie die .mpr Ihrer Produktionsanwendung und übertragen Sie diese zuerst, bevor Sie mit Schritt 4 fortfahren.

  • Stellen Sie diese in der Sandbox bereit (siehe "Wie stelle ich in einer Sandbox bereit").
  • Sie haben nun ein leeres Mendix Projekt mit einer Sandbox, die Sie als Testumgebung verwenden können.

Wenn Sie die Änderungen an Ihrer Anwendung zunächst in der Testumgebung testen möchten, gehen Sie wie folgt vor:

Kopieren Sie alle Dateien aus dem Verzeichnis Ihrer Produktionsanwendung, mit Ausnahme der Verzeichnisse .svn und .mendix-cache (wenn Sie diese nicht sehen, prüfen Sie View->Hidden items).

  • Sie haben nun Ihre leere Testanwendung mit dem Mendix Modell Ihrer Produktionsanwendung überschrieben.
  • Nehmen Sie jetzt die gewünschten Änderungen vor.
  • Wenn Sie jetzt Ihre "Testanwendung" bereitstellen (siehe "Wie stelle ich in einer Sandbox bereit"), können Sie einige Dinge testen.
  • Wenn die Änderungen zufriedenstellend sind, können Sie dieselben Kopier-/Einfügeschritte in Ihrer Produktionsanwendung wiederholen und schließlich in Ihrer "Produktionsumgebung" einsetzen. Wie ich bereits erwähnt habe, erfordert die Erstellung einer Testumgebung in einer Sandbox viel manuelle Arbeit. In der kostenpflichtigen Version ist das natürlich alles schön automatisiert.

Letzte Tipps

  • Bei der Arbeit mit Sandboxen brauchen Sie manchmal etwas Geduld. Der Bereitstellungsprozess verläuft nicht immer so schnell wie in einer lizenzierten Umgebung.
  • Sie können den Debugger verwenden, den Sie auch in Ihrer lokalen Umgebung einsetzen.
  • Stellen Sie sicher, dass Sie im After Startup Ihres Modells einen Administrator und einen Benutzer anlegen, falls sie nicht bereits vorhanden sind.
  • Stellen Sie sicher, dass, wie bei Mendix Anwendungen, die auf einem lizenzierten Knoten laufen, Ihre Sicherheits- und Zugriffsregeln in Ordnung sind.

Ich wünsche Ihnen viel Spaß bei der Nutzung der Mendix Sandbox. Experimentieren und lernen Sie! Und wenn Sie Fragen haben, zögern Sie nicht, uns zu kontaktieren.

Möchten Sie mehr erfahren?

In der Technologiebranche gibt es zahlreiche Möglichkeiten, den digitalen Wandel voranzutreiben. Möchten Sie die digitale Situation Ihres Unternehmens verbessern? Und suchen Sie einen Partner, der Sie bei der Erreichung dieses Ziels unterstützen kann? Dann ist Emixa der richtige Partner für Sie. Wir übersetzen komplexe Sachverhalte in einfache, benutzerfreundliche IT-Lösungen , die Ihre digitale Transformation beschleunigen und Ihr Unternehmen auf ein höheres Niveau bringen.Zögern Sienicht, uns zu kontaktieren. Wir würden uns freuen, Sie kennenzulernen!