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 officiel | https://capistranorb.com/ |
| Licence | MIT |
| Nationalité | International (projet open source) |
| Type | Déploiement applicatif, orchestration légère |
| Déploiement | On-prem, cloud (VM, serveurs), hybride |
| Difficulté | Débutant à intermédiaire |
| Technologies | Ruby, 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
- Site officiel : https://capistranorb.com/
- Documentation : https://capistranorb.com/documentation/getting-started/
- Repository GitHub : https://github.com/capistrano/capistrano