Bereitstellung von Kotlin-Anwendungen: Von VPS zur Cloud ohne Schmerz

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Ihr Kotlin-Code funktioniert lokal. Was nun?

\n\n

Sie haben eine tolle Anwendung in Kotlin geschrieben. Sie funktioniert perfekt auf Ihrem Laptop, Tests bestehen, Endpunkte antworten sofort. Aber die wahre Magie beginnt erst, wenn die Anwendung das Licht der Welt erblickt – auf einem echten Server, wo die Benutzer sie sehen.

\n\n

Die Bereitstellung von Kotlin-Anwendungen ist nicht einfach nur "eine JAR-Datei auf den Server werfen". Es ist eine ganze Wissenschaft, die die Wahl der Infrastruktur, die Einrichtung der Umgebung, die Gewährleistung von Sicherheit und Ausfallsicherheit umfasst. In diesem Artikel werden wir die drei gängigsten Ansätze durchgehen: klassisches VPS, modernes Docker und flexible Cloud-Plattformen. Sie erfahren, wie Sie Kotlin-Anwendungen mit jeder dieser Optionen bereitstellen, erhalten fertige Codebeispiele und verstehen, welcher Weg für Ihr Projekt am besten geeignet ist.

\n\n

Vorbereitung: Was Sie vor der Bereitstellung von Kotlin wissen müssen

\n\n

Bevor wir in die Details eintauchen, stellen wir sicher, dass wir die Grundlagen haben. Für die Bereitstellung einer Kotlin-Anwendung benötigen Sie:

\n\n
    \n
  • Ein erstelltes Artefakt – normalerweise eine JAR-Datei (für Spring Boot, Ktor) oder eine WAR-Datei (für ältere Java EE-Projekte). Kotlin wird in JVM-Bytecode kompiliert, daher funktionieren alle Standard-Java-Tools einwandfrei.
  • \n
  • Java Runtime Environment (JRE) – mindestens Version 11, besser 17 oder 21. Kotlin nutzt aktiv die Funktionen neuerer Java-Versionen.
  • \n
  • Ein Build-System – Gradle oder Maven. Wir werden Gradle verwenden, da es der De-facto-Standard für Kotlin-Projekte ist.
  • \n
\n\n

Beispiel für einen einfachen Befehl zum Erstellen einer Kotlin-Anwendung:

\n\n
./gradlew clean build
\n\n

Nach der Ausführung erscheint im Ordner build/libs/ eine JAR-Datei, die bereit zum Ausführen ist.

\n\n

Bereitstellung von Kotlin auf VPS: Ein Klassiker, der funktioniert

\n\n

Ein virtueller privater Server (VPS) ist wie eine eigene Wohnung. Sie haben die volle Kontrolle über die Umgebung, tragen aber auch die gesamte Verantwortung für Reinigung und Sicherheit. Dieser Ansatz ist ideal für kleinere Projekte, Startups oder wenn Sie maximale Flexibilität benötigen.

\n\n

VPS-Auswahl und Server-Einrichtung

\n\n

Für Kotlin-Anwendungen eignet sich jeder VPS mit Linux (Ubuntu 22.04 LTS ist eine ausgezeichnete Wahl). Mindestanforderungen: 1-2 GB RAM, 20-30 GB SSD. Wir empfehlen Anbieter mit gutem Support: DigitalOcean, Vultr, Hetzner oder Timeweb (für russische Benutzer).

\n\n

Nach dem Kauf des Servers aktualisieren wir zuerst die Pakete und installieren Java:

\n\n
sudo apt update && sudo apt upgrade -y\nsudo apt install openjdk-17-jre-headless -y\njava -version
\n\n

Jetzt erstellen wir einen einfachen Benutzer zum Ausführen der Anwendung (niemals als root ausführen!):

\n\n
sudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp
\n\n

Starten der Kotlin-Anwendung auf VPS

\n\n

Kopieren Sie die JAR-Datei über SCP oder SFTP auf den Server:

\n\n
scp build/libs/myapp-1.0.0.jar kotlinapp@ihr-server:/home/kotlinapp/app.jar
\n\n

Starten Sie nun die Anwendung. Der Einfachheit halber verwenden wir nohup, damit der Prozess beim Schließen von SSH nicht stirbt:

\n\n
nohup java -jar /home/kotlinapp/app.jar --server.port=8080 &
\n\n

Aber das ist nur der erste Schritt. Im echten Leben benötigen Sie:

\n
    \n
  • Einen Systemd-Dienst – für den automatischen Neustart der Anwendung nach Abstürzen und beim Serverstart.
  • \n
  • Nginx – als Reverse Proxy für HTTPS, Lastverteilung und statische Dateien.
  • \n
  • Monitoring – zumindest einfaches Logging und Uptime-Prüfung.
  • \n
\n\n

Beispiel eines systemd-Dienstes für eine Kotlin-Anwendung (/etc/systemd/system/kotlinapp.service):

\n\n
[Unit]\nDescription=Kotlin Application\nAfter=network.target\n\n[Service]\nUser=kotlinapp\nWorkingDirectory=/home/kotlinapp\nExecStart=/usr/bin/java -jar /home/kotlinapp/app.jar --server.port=8080\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target                

Blogs

Buchempfehlungen