- Client : "Mon site ne fonctionne plus, délai d'attente dépassé !"
- Développeur : "Il faut voir avec l'hébergeur"
- Hébergeur : "Cela provient du code, voyez avec le développeur"
Vous avez déjà vécu cette situation ? C'est qu'il vous manque une couche "DevOps" à votre organisation technique. Ces derniers, si tant est qu'ils ont un accès complet à l'architecture ainsi qu'au code, vont faire le lien entre l'administration système et le développement, et seront en mesure de résoudre ce genre de problème efficacement.
La conteneurisation est une technique qui permet de créer et de gérer des environnements d'exécution isolés pour les applications. Docker est une plateforme de conteneurisation open-source populaire qui permet aux développeurs de packager, de distribuer et d'exécuter facilement des applications dans des conteneurs. Ces derniers sont très légers et peuvent être démarrés et arrêtés en quelques secondes, ce qui permet aux développeurs de travailler et de déployer des applications plus rapidement.
De plus, les conteneurs Docker sont portables, ce qui signifie que vous pouvez les exécuter sur n'importe quel système d'exploitation ou plateforme cloud qui prend en charge Docker. En utilisant cette technologie, vous pouvez également automatiser le déploiement et la gestion de vos applications à l'aide d'outils tels que Docker Compose et Kubernetes. Docker Compose permet de définir et d'exécuter des applications multi-conteneurs, tandis que Kubernetes est une plateforme d'orchestration de conteneurs qui permet de déployer, de mettre à l'échelle et de gérer des applications conteneurisées sur un cluster de machines.
Le versionnage est une pratique courante dans le développement d'applications qui permet de garder une trace des modifications apportées à un projet au fil du temps. Git est un système de contrôle de version distribué populaire qui permet aux développeurs de suivre les changements et de collaborer sur des projets avec leurs pairs.
Avec Git, chaque fois qu'un développeur effectue une modification dans le code, il peut créer une "révision" ou un "commit" qui enregistre cette modification. Chaque commit est accompagné d'un message qui décrit les changements apportés, ce qui facilite la collaboration et la compréhension du code.
Git utilise également des branches pour permettre aux développeurs de travailler sur plusieurs versions d'un même projet simultanément. Les branches sont des copies du code source qui permettent aux développeurs de travailler sur des fonctionnalités spécifiques ou des correctifs sans affecter la version principale du projet.
En cas de problème, il est alors possible grâce à ce système de remonter finement l'historique, pour détecter rapidement l'origine, et remettre en état.
Les DevOps sont donc les garants d'une bonne transition entre développement et exploitation. Grâce à des outils comme Docker et GIT, ils vont pouvoir définir une stratégie de déploiement et de maintien sur tous les environnements, que ce soit en développement, en recette, en production. Ils vont notamment mettre en place des processus pour automatiser ces aspects.
De plus, ils font partie intégrante de l'assurance qualité. Ils vont s'assurer de déployer des outils de surveillance et de détection de problèmes. Et lorsqu'il y a détection, ils seront alors en mesure de définir précisément la cause et d'en informer la partie à même de corriger, les développeurs ou les administrateurs système.
Chez Maespirit, nous pensons que ce rôle est crucial pour fiabiliser un projet. Nos DevOps doivent avoir une connaissance du code ainsi qu'un accès complet à l'architecture système, pour mener à bien leur mission garantissant la performance et la disponibilité de l'applicatif.