Aller au contenu principal

Capistrano

Overview

Capistrano est un outil de déploiement automatisé écrit en Ruby, conçu initialement pour les applications web (notamment Ruby on Rails). Il permet de définir des tâches de déploiement et des workflows via un DSL Ruby, exécutés sur des serveurs distants via SSH.

Le modèle de Capistrano s’appuie sur des releases versionnées, des symlinks et des hooks, ce qui facilite les déploiements répétables et les rollbacks. Il est orienté principalement vers le déploiement applicatif plutôt que le configuration management système complet.

Capistrano est surtout utilisé dans des contextes où l'écosystème Ruby est déjà présent ou hérité


Informations essentielles

PropriétéValeur
Site officielhttps://capistranorb.com/
LicenceMIT
NationalitéInternational (projet open source)
TypeDéploiement applicatif, orchestration légère
DéploiementOn-prem, cloud (VM, serveurs), hybride
DifficultéDébutant à intermédiaire
TechnologiesRuby, SSH

TL;DR

Capistrano est adapté si tu veux industrialiser le déploiement d’applications (souvent web) sur des serveurs via SSH. Il structure les releases, les hooks de déploiement et les tâches associées dans un DSL Ruby relativement lisible. L’outil est bien adapté à des workflows classiques de déploiement en “rolling” ou par “releases” versionnées. En revanche, il ne gère pas l’état de la configuration système de manière globale comme un outil de configuration management. Il convient mieux à des environnements applicatifs relativement stables qu’à des architectures très dynamiques basées sur des conteneurs éphémères.


Compatibilité et intégrations

  • Systèmes : serveurs Linux/Unix accessibles en SSH
  • Intégration naturelle avec l’écosystème Ruby et Rails
  • Peut être déclenché depuis des outils CI/CD (Jenkins, GitLab CI, GitHub Actions, etc.)
  • Fonctionne avec des SCM classiques (Git, SVN) pour récupérer le code à déployer

Avantages

  • Simplifie les déploiements répétables d'applications
  • Gestion de releases et de rollbacks intégrée
  • DSL Ruby relativement lisible pour décrire les tâches
  • Intégration historique avec l'écosystème Ruby on Rails

Limites

  • Focus sur le déploiement applicatif, pas sur la configuration système complète
  • Dépendance à Ruby pouvant être un frein si ce n'est pas déjà présent dans l'environnement
  • Moins adapté aux architectures modernes full-containers et orchestrateurs (Kubernetes, etc.)

Ressources