Les déploiements automatisés
Il est maintenant assez rare de trouver un développeur qui vous dira qu’il ne déploie pas son projet en production de manière automatique. Cela fait aujourd’hui partie intégrante des bonnes pratiques de l’ingénierie logicielle et les outils pour nous aider dans cette tâche sont nombreux.
Pourtant sur un grand nombre de projets que je peux voir passer ou en discutant avec de nombreux développeurs, si le code source est effectivement poussé de manière automatisé, le déploiement complet d’un projet informatique n’est rarement entièrement réalisé sans intervention humaine.
Par exemple, la configuration initiale du projet est très souvent réalisée manuellement. Cette configuration permet généralement de définir les variables d’environnements et projet nécessaire entre autres, à la connexion à la base de données. Et si même on peut justifier que ce paramétrage n’est réalisé qu’une seule fois lors du premier déploiement, qu’en est-il lorsqu’un paramètre doit changer ou qu’un nouveau est ajouté ?
De même, si votre application nécessite la mise en place d’un système de tâches planifiées (CRON), est-il nécessaire que quelqu’un intervienne sur le serveur ou être vous capable de gérer cette configuration lors du déploiement ?
A ces deux exemples, on pourra me répondre qu’il s’agit d’opérations ponctuelles et qui ne sont pas réalisées de manière fréquente. En admettant que cela ne prenne qu’un temps négligeable pour être faites, il vous sera néanmoins nécessaire d’avoir une personne (disponible) ayant les accès requis pour effectuer le travail. Avec une telle contrainte, on peut oublier la mise en place d’une politique de déploiement continu. Sans parler des problèmes de sécurité potentiels liés à l’humain qui effectuera cette tâche.
Sans un processus de déploiement logiciel entièrement automatisé, on oubliera également la possibilité pour notre infrastructure de pouvoir “scaler” si notre produit rencontre un grand succès et est amené à croître rapidement.
N’oubliez pas que déployer son application automatiquement, ce n’est pas simplement pousser du code en production. Il y a un certain nombre de choses à prendre en compte tel que : la mise en place et installation d’un serveur, la gestion de la configuration du projet, une gestion autonome des secrets (notamment pour les accès base de données).