Les termes décrivent des concepts et des responsabilités très similaires et, en général, ils sont quelque peu synonymes. Le terme «DevOps» est relativement nouveau, popularisé par la conférence Devopsdays Gand 2009 et les événements Devopsdays ultérieurs . Il est mieux décrit dans ce diagramme :
D'un autre côté, la gestion de la configuration logicielle est un terme beaucoup plus établi au sein de la profession et dérive du terme de gestion de configuration non spécifique au logiciel . La gestion de la configuration logicielle est souvent référencée dans un contexte de génie logiciel, une définition simple est donnée par Roger Pressman dans "Génie logiciel: approche d'un praticien" :
est un ensemble d'activités conçues pour contrôler le changement en identifiant les produits de travail susceptibles de changer, en établissant des relations entre eux, en définissant des mécanismes de gestion des différentes versions de ces produits de travail, en contrôlant les changements imposés, et en vérifiant et en rendant compte des changements effectués.
Bien que tous les termes que vous référencez soient vagues, DevOps semble être juste une manière moins formelle de décrire plus ou moins le même ensemble de principes que la gestion de la configuration ou la gestion de la configuration logicielle si on les considère du point de vue d'un développeur de logiciels, en particulier en donnant la priorité aux équipes étroitement couplées :
DevOps est une réponse à la prise de conscience croissante qu'il existe un décalage entre ce qui est traditionnellement considéré comme une activité de développement et ce qui est traditionnellement considéré comme une activité opérationnelle. Cette déconnexion se manifeste souvent par un conflit et une inefficacité.
Dans le même article, les similitudes avec SCM sont notées:
Ajout au mur de la confusion est le décalage trop commun dans l'outillage de développement et d'exploitation. Jetez un œil aux outils populaires que les développeurs demandent et utilisent quotidiennement. Jetez ensuite un œil aux outils populaires que les administrateurs système demandent et utilisent quotidiennement. À quelques exceptions notables, comme les suiveurs de bogues et peut-être SCM , il est peu probable que vous constatiez un grand intérêt à utiliser les outils les uns des autres ou une intégration significative entre eux. Même s'il y a un certain chevauchement dans les types d'outils, souvent les implémentations seront différentes dans chaque groupe.
Quant à l'utilisation des termes, votre comparaison n'a pas vraiment de sens:
- SCM est un sous-ensemble de CM, pas un terme compétitif,
- DevOps est un terme assez nouveau, inutile de comparer avec les termes établis,
- DevOps dérive des opérations de développement (évidemment) mais est rarement étendu en tant que tel.
Étant personnellement un gestionnaire de configuration logiciel principal pendant de nombreuses années (10+), j'entends les termes qui ne correspondent pas dans une variété de situations de la vie réelle. Il n'est pas rare pour le personnel non technique en raison de la nature relative des postes. Ils ont tous deux des rôles, des besoins et des exigences spécifiques qui sont similaires mais qui peuvent néanmoins être clairement divisés à mon avis.
Je crois que la meilleure façon de décrire la division de ces rôles est de se concentrer sur leur relativité à l'interaction. Cela signifie que la gestion de la configuration logicielle se concentre sur les systèmes et environnements internes, ainsi que sur l'intégration, le déploiement, la publication et la gestion du code source. Where as Developer Operations (DevOps) se concentre davantage sur l'aspect opérationnel de l'architecture d'application à l'extérieur, tout en maintenant une compréhension claire du code tel qu'il était destiné à être utilisé et de la pratique de son environnement. Si les performances d'une machine montrent des signes de dégradation, la communication entre plusieurs applications est défectueuse, la communication d'entreprise à entreprise (BtB) et / ou les limites de l'architecture par rapport à un environnement de production, vous devriez vous tourner vers les opérations du développeur pour leur diagnostic et Solution.
En règle générale, d'après mon expérience, le gestionnaire de configuration logicielle peut également effectuer ces tâches, mais cela enlève à son objectif principal le suivi, la gestion et le déploiement des configurations d'environnement et des révisions logicielles. Gérer le logiciel qui permet la séparation des tâches, le suivi des bogues et des défauts, le suivi des projets, ainsi que le cycle de vie et le flux de travail du développement logiciel. Ces tâches ne sont pas au cœur des opérations du développeur et sont donc moins impératives, mais elles peuvent toujours être effectuées.
J'ai vu de nombreux cas de confusion de chacun, et dans chacun il y a un croisement limité. Cependant, il est très important de penser aux différences entre les responsabilités de chacun des postes indépendants par rapport à leur objectif principal. Principalement lorsque vous traitez avec des systèmes et du matériel utilisés en interne pour gérer la configuration des environnements et la sortie du produit, vous devriez rechercher un gestionnaire de configuration logicielle. D'autre part, lorsque vous traitez avec les performances du système, la surveillance, la recherche et le diagnostic des systèmes utilisés par vos clients, vous devriez vous tourner vers les opérations de développement ou DevOps.
Or, ce n'est pas une signification comme une diatribe, ni comme une réponse définitive, mais plutôt une identification personnelle des différences de chacune des positions. Je voudrais savoir si je suis bien loin de la base, ou si les choses sont clarifiées par cette réponse.
la source
Il serait difficile de trouver une définition solide pour DevOps. C'est plus une idée qu'un travail à faire. Et c'est une idée trop nouvelle pour que tout le monde s'entende exactement sur ce que cela signifie. Néanmoins, voici mon point de vue.
DevOps n'est vraiment qu'un nouveau terme pour la gestion de la configuration, mais il a été choisi pour montrer que le rôle n'est pas un rôle individuel, c'est une collaboration entre l'équipe de développement et l'équipe d'exploitation.
Historiquement, la gestion de la configuration était effectuée uniquement par l'équipe de développement, puis confiée aux opérations qui verraient tout cela avec une profonde suspicion. Ce qui est assez juste, pour être honnête. Ils en sont responsables. Ils sont les premiers à être appelés à 4h du matin quand ça tourne mal. Ils devraient vraiment participer à son développement.
la source
C'est la simple clarification de la question: DevOps est un terme utilisé pour décrire la coordination ou la relation entre le développement (développement des codes de programme dans l'environnement de développement) et les opérations (assurant une disponibilité maximale de l'environnement de production).
La gestion de la configuration logicielle est un moyen de réaliser cette coordination. SCM impliquait des outils et des techniques pour gérer l'automatisation du processus de passage du développement à la production (opérations)
Pour résumer, SCM connecte Dev et Ops.
la source
Je vois que DEVOPs est à la fin de l'exécution opérationnelle - les scripts d'automatisation du déploiement, les mises en place de l'environnement, ce genre de chose. SCM, d'autre part, concerne l'intégrité des produits et la gestion efficace et la traçabilité des modifications apportées aux produits. J'ai toujours considéré ALM comme faisant partie de SCM - après tout, comment diable pouvez-vous gérer les modifications apportées à un produit si vous n'avez aucune idée des pilotes du changement ou qui les a effectués? Les cadres de déploiement peuvent tomber des deux côtés - et quel côté dépendra invariablement des besoins réglementaires de l'organisation pour laquelle vous travaillez - après tout - voulez-vous qu'un développeur puisse faire un hack rapide qui signifie que votre appareil de dialyse ne fonctionne correctement que 99,99% du temps, ou avez-vous besoin de cette situation pour vous permettre de pirater le code de votre site Web parce que vos développeurs ont des adresses IP codées en dur?
la source