Aujourd'hui, la plupart des entreprises adoptent une certaine forme de philosophie de gestion de la configuration et de la configuration. Ils automatisent leurs pipelines. Certaines entreprises pourraient se concentrer sur les processus de libération de logiciels, tandis que d'autres pourraient être davantage axés sur la gestion des processus plus large.
La libération de l'ingénierie est souvent confondue avec DevOps. Il y a une bonne raison. Les rôles et les responsabilités se chevauchent souvent. DevOps peut être considéré comme un superset de l'ingénierie de libération.
Release Engineering
La libération de l'ingénierie est une discipline qui se concentre sur le déploiement de logiciels. Il essaie de créer des logiciels de meilleure qualité à un rythme fiable et prévisible. Son mandat est d'améliorer le pipeline de construction et de libération du logiciel. Voici quelques choses qui relevaient l'ingénierie qui souligne:
- Implémente le contrôle de la version - Release Engineering essaie d'ajouter la traçabilité et la fiabilité du code. Le code est donc maintenu dans des référentiels de contrôle de version comme Git, SVN, Perforce, etc. Les équipes de développement utilisent ces systèmes de contrôle de version pour mieux suivre l'évolution du code.
- Automatise les pipelines de construction et de libération - Release Engineering se concentre sur la recherche d'outils d'automatisation pour améliorer la vitesse et la fiabilité du processus de libération. Du premier code de code au contrôle de version au produit final atteignant le client, la libération de l'ingénierie continue d'améliorer le processus. L'intégration continue et la livraison continue (CI / CD) joue un rôle important dans les systèmes de construction / libération automatisés modernes.
- Gestion de la configuration - Au fur et à mesure que le code logiciel passe à travers divers cycles du développement, des tests, de la mise en scène et de la production, la gestion de la configuration garantit que les attributs du produit sont cohérents tout au long du cycle de vie du logiciel.
- Production et déploiement - Chaque logiciel qui va au client dans un environnement de production doit être étroitement lié à son origine. Donc, s'il y a un problème, les entreprises peuvent le retracer à la source.
DevOps
DevOps a un mandat plus large. Il se concentre sur la création de collaboration interfonctionnelle entre les équipes.
Dans le passé, les équipes de développement et les équipes d'opérations ont travaillé dans leurs propres silos. Lorsque les équipes de développement ont déployé leur code en production, il y aurait des discussions animées sur qui assumerait la responsabilité de tout problème de production. De plus, l'équipe de développement voudrait les plus récentes et les plus cool fonctionnalités déployées, tandis que l'équipe des opérations voudrait éviter de prendre des risques. Cela a conduit à un conflit constant entre les deux groupes.
Le but des pratiques DevOps était de rapprocher le développement et les opérations. Voici certaines choses sur lesquelles DevOps se concentrent:
- Configuration et provisionnement des infrastructures - Traditionnellement, les services informatiques planifiés et provisiés infrastructure. DevOps Philosophy encourage une approche plus centrée sur les développeurs. Le pipeline est créé pour faciliter le processus de développement pour passer par les différentes étapes et cycles sans frottement. Les développeurs ont plus de responsabilité sur la façon dont leurs applications se comportent en production.
- Gestion de la configuration - Les équipes DevOps ont une vue plus large de la gestion de la configuration. Bien que la libération d'ingénierie puisse l'utiliser uniquement pour les produits logiciels, les pratiques DevOps trouvent des moyens de mettre en œuvre la gestion de la configuration à tous les aspects d'une organisation. Le but est d'aider toute l'organisation à gérer une opération plus fluide grâce à l'automatisation.
- CI / CD - L'intégration continue et la livraison continue sont une grande partie de la philosophie DevOps. Une pratique de DevOps mature utilise CI / CD pour automatiser les tâches informatiques traditionnelles en utilisant l'infrastructure comme code.
- Surveillance et améliorations organisationnelles - Les pratiques DevOps mettent l'accent sur la collecte de données sur les processus pour analyser et améliorer. Ainsi, la collecte de données, la transformer en intelligence exploitable et l'utiliser pour améliorer les processus actuels est une responsabilité DevOps importante.
En conclusion
En raison de l'intersection des problèmes d'amélioration des processus logiciels, l'ingénierie de libération est souvent confondue avec DevOps. Mais DevOps a une plus grande portée. Alors que la libération de l'ingénierie peut vivre en tant que département séparé, DevOps nécessite plus d'intégration avec le flux de travail global de l'organisation. Il est plus facile de configurer une pratique d'ingénierie de libération car les étapes sont concrets. DevOps nécessite une compréhension du comportement organisationnel, de la culture du travail et de l'infrastructure. Le succès DevOps ne concerne pas seulement le produit, il s'agit de toute l'organisation.
Une étude plus approfondie
Vers les définitions de l'ingénierie de libération et DevOps