Déploiement d'applications Kotlin : du VPS au cloud sans douleur

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Votre code Kotlin fonctionne en local. Et ensuite ?

\n\n

Vous avez écrit une super application en Kotlin. Elle fonctionne parfaitement sur votre ordinateur portable, les tests passent, les endpoints répondent instantanément. Mais la vraie magie commence seulement lorsque l'application sort dans la nature — sur un vrai serveur, où les utilisateurs pourront la voir.

\n\n

Le déploiement d'applications Kotlin n'est pas simplement "mettre un fichier JAR sur un serveur". C'est toute une science qui inclut le choix de l'infrastructure, la configuration de l'environnement, la garantie de la sécurité et de la tolérance aux pannes. Dans cet article, nous allons analyser les trois approches les plus populaires : le VPS classique, le Docker moderne et les plateformes cloud flexibles. Vous apprendrez comment déployer des applications Kotlin sur chacune de ces options, obtiendrez des exemples de code prêts à l'emploi et comprendrez quelle voie est la meilleure pour votre projet.

\n\n

Préparation : ce qu'il faut savoir avant le déploiement Kotlin

\n\n

Avant de plonger dans les détails, assurons-nous d'avoir les bases. Pour déployer une application Kotlin, vous aurez besoin de :

\n\n
    \n
  • Un artefact compilé — généralement un fichier JAR (pour Spring Boot, Ktor) ou un fichier WAR (pour les anciens projets Java EE). Kotlin est compilé en bytecode JVM, donc tous les outils Java standard fonctionnent parfaitement.
  • \n
  • Un environnement d'exécution Java (JRE) — au minimum la version 11, mais de préférence 17 ou 21. Kotlin utilise activement les fonctionnalités des nouvelles versions de Java.
  • \n
  • Un système de build — Gradle ou Maven. Nous utiliserons Gradle, car c'est la norme de facto pour les projets Kotlin.
  • \n
\n\n

Exemple de commande simple pour compiler une application Kotlin :

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

Après exécution, un fichier JAR prêt à être exécuté apparaîtra dans le dossier build/libs/.

\n\n

Déploiement Kotlin sur VPS : un classique qui fonctionne

\n\n

Un serveur privé virtuel (VPS) est comme un appartement personnel. Vous obtenez un contrôle total sur l'environnement, mais vous assumez également toute la responsabilité du nettoyage et de la sécurité. Cette approche est idéale pour les petits projets, les startups ou lorsque vous avez besoin d'une flexibilité maximale.

\n\n

Choix du VPS et configuration du serveur

\n\n

Pour les applications Kotlin, n'importe quel VPS avec Linux convient (Ubuntu 22.04 LTS est un excellent choix). Configuration minimale : 1-2 Go de RAM, 20-30 Go SSD. Nous recommandons les fournisseurs avec un bon support : DigitalOcean, Vultr, Hetzner ou Timeweb (pour les utilisateurs russes).

\n\n

Après l'achat du serveur, la première chose à faire est de mettre à jour les paquets et d'installer Java :

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

Créons maintenant un utilisateur simple pour exécuter l'application (ne lancez jamais en tant que root !) :

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

Lancement d'une application Kotlin sur VPS

\n\n

Copions le fichier JAR sur le serveur via SCP ou SFTP :

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

Lançons maintenant l'application. Pour simplifier, utilisons nohup pour que le processus ne meure pas à la fermeture de SSH :

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

Mais ce n'est que la première étape. Dans la vraie vie, vous aurez besoin de :

\n
    \n
  • Un service Systemd — pour redémarrer automatiquement l'application après des pannes et au démarrage du serveur.
  • \n
  • Nginx — comme proxy inverse pour HTTPS, l'équilibrage de charge et les fichiers statiques.
  • \n
  • La surveillance — au moins une journalisation simple et une vérification de l'uptime.
  • \n
\n\n

Exemple de service systemd pour une application Kotlin (/etc/systemd/system/kotlinapp.service) :

\n\n
[Unit]\nDescription=Application Kotlin\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

Book Recommendations