Kann mir jemand sagen, was für Entscheidungskriterien existieren für das Hosten einer Springboot-Software?
Wo liegt der Unterschied ob ich es auf einem gewöhnlichem virtuellen Server auf dem Host (mit Linux) oder z.B. bei AWS (in der Cloud) mache?
Was hat welche Vor- und Nachteile?
Was genau ist deine Frage? Warum man überhaupt eine Spring Boot Anwendung nutzen sollte oder, warum man es auf einem VPS oder in der Cloud deployen/betreiben sollte?
Falls letzteres: Das ist ziemlich orthogonal zu Spring Boot. Diese Frage kann man sich bei jeder Form von Anwendung stellen. Meistens ist der Grund: Verringerte Wartungs- und Betriebskosten sowieo höhere Skalierbarkeit der Anwendung in der Cloud. Hinzu kommt, dass du mit einem VPS ja quasi _nur_ einfach einen (virtuellen) Rechner hingestellt bekommst und dich um den Rest selbst kümmern musst, wohingegen du bei einer Cloud-Lösung als Platform as a Service Lösung eine sehr umfangreiche Bandbreite an diversen Services angeboten bekommst, um eine Microservice Infrastruktur aufzubauen. Das aufzubauen, zu warten/aktuell zu halten, Pflegeoberflächen dafür zu schaffen, korrekt miteinander zu integrieren und zu dokumentieren wäre die reinste Hölle bzw. unschaffbar, wenn du "einfach nur" einen VPS anmietest.
Kommt aber immer auf deine ganz konkreten Anforderungen an.
Was genau ist deine Frage? Warum man überhaupt eine Spring Boot Anwendung nutzen sollte oder, warum man es auf einem VPS oder in der Cloud deployen/betreiben sollte?
Falls letzteres: Das ist ziemlich orthogonal zu Spring Boot. Diese Frage kann man sich bei jeder Form von Anwendung stellen. Meistens ist der Grund: Verringerte Wartungs- und Betriebskosten sowieo höhere Skalierbarkeit der Anwendung in der Cloud. Hinzu kommt, dass du mit einem VPS ja quasi _nur_ einfach einen (virtuellen) Rechner hingestellt bekommst und dich um den Rest selbst kümmern musst, wohingegen du bei einer Cloud-Lösung als Platform as a Service Lösung eine sehr umfangreiche Bandbreite an diversen Services angeboten bekommst, um eine Microservice Infrastruktur aufzubauen. Das aufzubauen, zu warten/aktuell zu halten, Pflegeoberflächen dafür zu schaffen, korrekt miteinander zu integrieren und zu dokumentieren wäre die reinste Hölle bzw. unschaffbar, wenn du "einfach nur" einen VPS anmietest.
Kommt aber immer auf deine ganz konkreten Anforderungen an.
Jep meine das letzere. Jedoch kann man eine Spring Boot Applikation ganz einfach starten wenn sie vorhanden ist, was bei den Micro Services auch der Fall ist. Bei den Micro Services muss man jedoch einen Schritt davor noch machen und das wäre das Image zu erstellen welches dann ausgeführt wird.
Ich sehe aber eben denn Sinn nicht ob auf dem Linux Server eine Applikation als Spring ausgeführt wird oder einfach daraus ein Image generiert und danach das Image ausgeführt wird. Beides sollte nun bei der Spring Software auf das gleiche kommen ausser das man bei der Cloud Lösung noch einen Schritt mehr hat und glaube auch ein bisschen teurer ist als der VPS.
Den Vorteil sehe ich auch das die Cloud Lösung auf gleich ein Load Balancing anbietet, bei welchem man sich nicht selber darum kümmern muss, wo ich aber denke dass es auch schon bereits Lösungen bei VPS gibt.
Also ich möchte eine Software hosten welches für eine Android Applikation als Backend dienen soll. Nun weiss ich nicht ob diese Software auf einem VPS oder in der Cloud eingeführt werden soll. Kenne die Pro und Contras nicht. Was würdest du empfehlen und aus welchem Grund?
Das ist ja jetzt nochmal ein anderes Thema: Vorteile von Containerisierung gegenüber Installieren und Ausführen von Prozessen und deren Abhängigkeiten auf dem nativen System.
Der Vorteil von Containerisierung ist ja nicht nur, dass man die Anwendung bzw. das System dann eben auch auf einer Cloud-Plattform laufen lassen kann. Ein weiterer Vorteil davon ist, dass du damit eine komplette Laufzeitumgebung (installiertes JRE, installierte Linux-Tools, die eventuell noch gebraucht werden, installierter Apache/nginx als Gateway, ...) und deine Anwendung selbst definieren kannst und reproduzierbar überall schnell ausrollen kannst. Es entfallen dadurch massivst! Kosten in dem Operations bzw. der Aufrechterhaltung des Betriebs und Wartung der Systeme. Bzw. findet eine Verlangerung statt hinzu den Entwicklern, die nun dafür sorgen müssen, dass ihre Systeme laufen. Stichwort: DevOps.
Was das Thema Kosten angeht, hast du mit einer Cloud-basierten Lösung einfach ein viel flexibleres Kostenmodell. Bei Cloud-Lösungen zahlst du meinst auf die 100ms. genau die verbrauchte CPU Zeit und die benötigten Speicherressourcen. Bei einer VPS Lösung zahlst du pro Server und musst vorher schätzen, wie groß er denn sein muss. Bei Cloud-Lösungen kann dieses Provisioning dynamisch und flexibel gehandhabt werden, inklusive dem Punkt des Load Balancings bzw. horizontaler Skalierung.
Jep meine das letzere. Jedoch kann man eine Spring Boot Applikation ganz einfach starten wenn sie vorhanden ist, was bei den Micro Services auch der Fall ist. Bei den Micro Services muss man jedoch einen Schritt davor noch machen und das wäre das Image zu erstellen welches dann ausgeführt wird.
Ich sehe aber eben denn Sinn nicht ob auf dem Linux Server eine Applikation als Spring ausgeführt wird oder einfach daraus ein Image generiert und danach das Image ausgeführt wird.
Irgendwas hast du bei Micro Service falsch verstanden, ob die als Image (vermutlich meinst du sowas wie Docker-Image?) existieren oder nicht, ist dafür völlig egal. Genauso ist Cloud nicht gleich Microservices.
Wenn deine Spring-Boot Anwendung von der Domäne her ein Micro-Service ist, ist sie unabhängig von der "Verpackung" ein Micro-Service, egal ob als Verzeichnis mit *.class, als Jar oder als Docker-Image oder VM-Image.
Container machen einiges einfacher, sind aber kein Must-Have und sind auch kein Kriterium für Cloud vs VPS, du kannst Container auch auf ganz normalen Servern laufen lassen.
Beides sollte nun bei der Spring Software auf das gleiche kommen ausser das man bei der Cloud Lösung noch einen Schritt mehr hat und glaube auch ein bisschen teurer ist als der VPS.
Den Vorteil sehe ich auch das die Cloud Lösung auf gleich ein Load Balancing anbietet, bei welchem man sich nicht selber darum kümmern muss, wo ich aber denke dass es auch schon bereits Lösungen bei VPS gibt.
Mit typischen "Cloud"-Lösungen kannst du durchaus auch günstiger fahren als mit VPS, kommt sehr auf die Nutzung sowie den Schnitt zwischen Cloud und VPS an.
Also ich möchte eine Software hosten welches für eine Android Applikation als Backend dienen soll. Nun weiss ich nicht ob diese Software auf einem VPS oder in der Cloud eingeführt werden soll. Kenne die Pro und Contras nicht. Was würdest du empfehlen und aus welchem Grund?
Reicht es dir, einmalig einen Server zu mieten und den dauerhaft für deine Anwendung zu nutzen?
Oder hast du viele sich ändernde Anforderungen und brauchst viel Skalierbarkeit?
Willst du nur einmalig einen Server aufsetzen, oder hast du Zeit und Lust, dich mit Konfigurationen im Cloud-Bereich auseinanderzusetzen?