Spring Boot, Versionskontrolle und Entwicklungsumgebung und Deployment

msicking

Mitglied
Hallo,

seit einiger Zeit entwickle ich eine Spring-Boot Applikation. Diese läuft auf einem Linux-Server in der Produktionsumgebung der Firma (ohne internet-zugriff).
Ich nutze Eclipse als Entwicklungsumgebung auf meinem Rechner, zum deployment (heißt glaube ich so) wird durch "Maven install" ein jar-file erzeugt, welches ich auf den Ziel-Rechner übertrage (und dort ausführe).

So lange ich allein an dem Projekt arbeitete, war das vorgehen so ok.
Nun kommen neue Kollegen hinzu, und wir werden gemeinsam (an verschiedenen Teilen) daran arbeiten.
Gibt es irgendwelche "Best Practices" zu diesem Vorhaben?

- Sollte ich eine Test-Umgebung identisch zur Live-Umgebung aufbauen, in der wir gemeinsam testen (bisher reichte mir die "Testumgebung" währen der Entwicklung)
- Sollte die Entwicklung weiterhin lokal geschehen, die Änderungen dann in eine Versionsverwaltung auf der Testumgebung einlaufen, anhand derer dann dort Kompiliert wird?
- das auflösen von Paketabhängigkeiten und herunterladen von Paketen wie es von maven automatisch getan wird, wird auf einer Testumgebung wegen fehlender Internetanbindung nicht funktionieren.
- Werden die auf der Testumgebung kompilierten Jars dann in die Live-Umgebung geholt?

Ich freue mich auf euer Feedback, Denkanstöße und Ideen 🙂

Viele Grüße,
Marcel
 
Mal ein paar Punkte:
* Es sollte einen Server geben, auf dem ein Versionskontrollsystem wie git läuft
* Es sollte einen Testserver geben, wo man die Anwendung deployed und ausführt (der braucht kein Internet)
* Es sollte einen CI-Server wie Jenkins geben, der nach definierten Regeln (z.B. nach jedem Commit) die Anwendung baut, Testfälle ausführt und das auf dem Testsystem deployed
* Deployen heißt: Ein Mechanismus die gebaute JAR Datei auf den Server zu bekommen und zu starten - das kann per kopieren, Docker oder sonstwie passiern
* Der CI Server braucht entweder Internet oder man installiert auf einem weiteren Server einen Maven Nexus der dann Internet hat und Routet darüber Maven.

Das alles ist ein durchaus größeres Thema, wenn man es ordentlich machen will.
 
Vielen Dank, das hilft mir sehr, eine korrekte und sinnvolle Umgebung aufzubauen. Ich werde sicherlich nochmal mit fragen hier zurückkommen
 

Zurück
Oben