Typen von Java-Anwendungen
In dieser Lerneinheit werden die verschiedenen Typen von serverseitigen Java-Anwendungen erläutert, um Sie bei der Auswahl einer passenden Cloudlösung zu unterstützen.
Monolithische Anwendungen
Bei einer monolithischen Anwendung handelt es sich um eine Komplettlösung, die sich dennoch für viele verschiedene Projekte eignet. Eine monolithische Anwendung eignet sich gut als Startpunkt für die Erstellung von Prototypen und die ersten Schritte. Eine solche Anwendung kann leicht entwickelt, debuggt, getestet und bereitgestellt werden.
In der Regel werden monolithische Anwendungen auf Anwendungsservern ausgeführt, und die Anwendung wird als Ganzes skaliert.
Microservices
Heutzutage müssen sich Unternehmen anpassen können, Fail-Fast-fähig sein und auch mit Unvorhergesehenem rechnen, um erfolgreich zu sein. Mehr technische Fachkräfte werden eingestellt, um die Zeit bis zur Markteinführung zu verkürzen. Als Ergebnis kann sich jedoch auch das Gegenteil herausstellen. Da der Kommunikationsaufwand steigt, wenn mehr technische Fachkräfte zusammenarbeiten müssen, kann sich die Zeit bis zur Markteinführung auch verlängern. Eine Lösung für ein solches Szenario ist das Teile-und-herrsche-Verfahren.
In einem funktionsübergreifenden Team können Sie Features so unabhängig wie möglich bereitstellen. Jedes Team sollte für den eigenen dedizierten Teil der Software zuständig sein.
Batch-Aufträge
Einige Anwendungen sollen nur kurz ausgeführt werden. Sie führen eine bestimmte Workload aus und werden dann beendet, anstatt auf Anforderungen oder Benutzereingaben zu warten. Batchaufträge sind eine Lösung für diesen Anwendungsfall. Auch wenn einige Batches mehrere Stunden dauern können, müssen Aufträge in einigen Fällen einmal oder in regelmäßigen geplanten Abständen ausgeführt werden.
Serverlose Architekturen
Funktionen werden nur bei einem Ereignis ausgeführt. Eine Funktion wird durch eine bestimmte Art von Ereignis ausgelöst. Unterstützte Trigger sind unter anderem das Reagieren auf Datenänderungen, das Reagieren auf Nachrichten, die Ausführung gemäß einem Zeitplan oder das Empfangen einer HTTP-Anforderung.