Der Grundgedanke hinter Continuous Integration/Continuous Deployment (CI/CD), auch bekannt als Continuous Delivery, ist es, den Entwicklungs- und Bereitstellungsprozess so viel wie möglich zu automatisieren. Durch diesen Ansatz kann die für die Entwicklung und Bereitstellung von Anwendungen benötigte Zeit verringert und dabei gleichzeitig die Gesamtqualität durch engere Testschleifen verbessert werden. Außerdem erhalten die Entwickler so früher Feedback und können an Problemen arbeiten, wenn sie sich noch daran erinnern, wie ein bestimmter Teil des Codes entwickelt wurde.
Bei Mansystems haben wir eine CI/CD-Plattform in unsere SMART Digital Factory [LINK] integriert, um die Implementierung dieser DevOps-Prozesse während der Anwendungsentwicklung und während des Test- und Bereitstellungsprozesses zu vereinfachen. Die SMART Digital Factory von Mansystems ist für Low-Code-Entwicklungsplattformen wie Mendix optimiert. Sie soll es ermöglichen, DevOps-Pipelines innerhalb von Minuten anzulegen, ohne dass IT-Unternehmen eine externe Lösung anschaffen, bereitstellen und warten müssen, die nicht auf Low-Code-Plattformen ausgelegt ist.
Erste Schritte
Mit der SMART Digital Factory von Mansystems können Entwicklungsteams täglich Anwendungsupdates innerhalb einer Testumgebung definieren und bereitstellen. So können Mendix-Entwicklungsteams, die in der Mendix-Cloud arbeitet, den letzten Commit nehmen, die Testumgebung stoppen, den neuesten Code in die Umgebung übertragen und die Testumgebung wieder starten. Sie können sogar automatisch Backups von Daten und Einstellungen erstellen.
Die SMART Digital Factory ermöglicht außerdem die Durchführung von Code Reviews, Modultests und User-Interface-Tests. Am nächsten Morgen erhalten die Entwickler die Ergebnisse per E-Mail und können mögliche Fehler beheben. Aber warum einen ganzen Tag warten? Warum die Tests nicht noch am gleichen Mittag laufen lassen? Oder sogar jede Stunde oder bei jedem Commit, wenn wir schon dabei sind?
Sicherheitstests
Diese Tests beschränken sich übrigens nicht nur auf Code-Updates. Sie können auch Sicherheitsscans einbeziehen, indem Sie eine vorkonfigurierte Datenbank definieren, einen ersten Scan laufen lassen und diesen als Baseline festlegen. Wenn CI/CD jetzt einen Sicherheitsscan durchführt, werden Unterschiede zwischen der Baseline und dem neuesten Code sofort bemerkt. Sie können dann entscheiden, ob diese Unterschiede beabsichtigt oder ein ungewollter Nebeneffekt einer anderen Änderung sind.
Nach Behebung unbeabsichtigter Änderungen und erneuter Durchführung des Sicherheitsscans können Sie eine neue Baseline zur zukünftigen Verwendung festlegen. Das Beste daran ist, dass durch diesen Ansatz die Sicherheit der Anwendungsentwicklung in einem integrierten DevSecOps-Prozess zusammengefasst wird. Im Gegensatz zu einem – wenn überhaupt – vielleicht einmal pro Jahr durchgeführten Sicherheitsscan führt dieser Prozess Entwicklern die Konsequenzen ihrer Handlungen auf die Cybersicherheit sofort vor Augen.
Lasttests
Die Erstellung einer Baseline aus einem Backup vereinfacht auch die Durchführung von Lasttests. Ein solcher Test kann nun bequem ausgeführt werden, um eine Baseline für dieselbe Hardware und Datenbank zu erstellen, die in der Produktionsumgebung verwendet wird. Alle Unterschiede zwischen den Umgebungen kommen sofort ans Licht. Läuft ein Baseline-Test zum Beispiel mehr als 10 % langsamer, wäre eine erneute Prüfung aller geänderter Funktionen angebracht.
DTAP-Pipeline
Die englische Abkürzung DTAP steht für „Development, Testing, Acceptance and Production“ (Entwicklung, Test, Akzeptanz und Produktion) und ist der Standardsatz an Prozessen, die Unternehmen zur Erstellung und Bereitstellung von Anwendungen verwenden. Jetzt kann der gesamte DTAP-Prozess automatisiert werden.
Unternehmen können bei Bedarf sogar Umgebungen zur Durchführung spezieller manueller Tests erstellen (z.B. Leistungstests), ohne dass der größere automatisierte Testprozess verlangsamt wird.
Das Beste daran ist aber, dass Teams Punkte im Prozess setzen können, die es ermöglichen jeden Schritt des Prozesses rückgängig zu machen.
Schnittstellen
Die CI/CD-Plattform der SMART Digital Factory verfügt über Plug-and-Play-Schnittstellen zu folgenden Tools:
- Mendix-Cloud
- Erstellung/Transport von Bereitstellungspaketen
- Starten/Stoppen von Umgebungen
- Erstellung/Wiederherstellung von Backups
- Setzen/Wiederherstellen von Savepoints (Backup, Bereitstellungspaket und Einstellungen)
- Application Code Reviewer
- Revision von Reviews
- Berechnung der Codeabdeckung auf Basis von Snapshots der APM-Statistiken
- Application Test Suite
- Ausführen der Testsuite
- Application Performance Monitor
- Erstellung von Snapshots/Zurücksetzen von Zählern
- Application Load Test
- Ausführen eines Lasttests und Vergleich mit einer Baseline
- Application Mode Security
- Ausführen eines Sicherheitsscans und Vergleich mit einer Baseline
- Mendix-Modultest
- Ausführen aller Modultests
- Versenden von E-Mails
Alternativen
Sowohl im Bereich Open Source als auch bei kommerziellen Anbietern sind viele verschiedene CI/CD-Lösungen verfügbar. Um allerdings Ihre Mendix-Anwendung in eine CI/CD-Pipeline zu integrieren, müssen Sie z. B. bei der Open-Source-CI/CD-Plattform Jenkins erst Jenkins bereitstellen und konfigurieren, eine Pipeline entwickeln und IT-Experten mit den entsprechenden DevOps-Fähigkeiten finden, um sie zu warten. Die SMART Digital Factory von Mansystems bietet einen Ansatz für eine reibungslosere Integration von CI/CD, der die bestmögliche Nutzererfahrung direkt in derselben Mendix-Cloud bietet, in der die Low-Code-Anwendungen auch entwickelt und getestet werden.