diferencia entre DevOps y la gestión de la configuración del software

15

¿Cuál es la diferencia entre las operaciones de desarrollo y la gestión de configuración del software?

Para mí, parece ser el mismo siempre y cuando tanto DevOps como Software Configuration Management estén enfocados en:

  1. Estableciendo infraestructura de desarrollo : estar a cargo del control de la versión , la administración de la compilación, la administración de la implementación, la administración de dependencias, la integración y entrega continuas , etc.
  2. Uso de las mejores prácticas para organizar entorno de desarrolladores .
  3. Control de calidad de los procesos de desarrollo: recopilación de métricas de la efectividad del desarrollo, trabajo para eliminar los cuellos de botella en el proceso de desarrollo (realizar pruebas unitarias, evaluar la cobertura de las pruebas unitarias, realizar inspecciones, etc.)
  4. Administración de infraestructura : plataformas de destino y sus características específicas.
  5. Administración de versiones : asegurarse de que la versión se haya entregado al cliente / cliente a tiempo.

Tal vez me esté perdiendo algo? Este enlace muestra que prevalece el uso del término 'Administración de configuración de software'. Pero aún así, ¿qué combinación de palabras preferiría usar para describir el rango de actividades enumeradas: Operaciones de desarrollo o Administración de configuración de software ?

    
pregunta altern 19.01.2012 - 12:23

5 respuestas

17

Los términos describen conceptos y responsabilidades muy similares, y en general son un tanto sinónimos. El término "DevOps" es relativamente nuevo, popularizado por la conferencia Devopsdays Ghent 2009 y, posteriormente, eventos de Devopsdays . Se describe mejor en este diagrama :

Porotraparte,SoftwareConfigurationManagementesuntérminomuchomásestablecidodentrodelaprofesión,yderivadeltérminonoespecíficodelsoftware Configuración Gestión . Software Configuration Management a menudo se hace referencia en un contexto de ingeniería de software, Roger Pressman proporciona una definición simple en "Ingeniería de software: el enfoque de un profesional ":

  

es un conjunto de actividades diseñadas para controlar el cambio al identificar los productos de trabajo que pueden cambiar, establecer relaciones entre ellos, definir mecanismos para administrar diferentes versiones de estos productos de trabajo, controlar los cambios impuestos, y auditar e informar sobre el cambios realizados.

Aunque todos los términos a los que hace referencia son vagos, DevOps parece ser solo una forma menos formal de describir más o menos el mismo conjunto de principios que la gestión de la configuración o la gestión de la configuración del software, visto desde la perspectiva de un desarrollador de software, especialmente priorizando equipos estrechamente acoplados :

  

DevOps es una respuesta a la creciente conciencia de que existe una desconexión entre lo que tradicionalmente se considera una actividad de desarrollo y lo que tradicionalmente se considera una actividad de operaciones. Esta desconexión a menudo se manifiesta como conflicto e ineficiencia.

En el mismo artículo, se notan las similitudes con SCM:

  

Agregar a Wall of Confusion es el desajuste demasiado común en las herramientas de desarrollo y operaciones. Eche un vistazo a las herramientas populares que los desarrolladores solicitan y utilizan a diario. Luego, eche un vistazo a las herramientas populares que los administradores de sistemas solicitan y utilizan a diario. Con algunas excepciones notables, como los rastreadores de errores y quizás SCM , es dudoso que veas mucho interés en usar las herramientas del otro o una integración significativa entre ellas. Incluso si hay alguna superposición en los tipos de herramientas, a menudo las implementaciones serán diferentes en cada grupo.

En cuanto al uso de los términos, su comparación realmente no tiene sentido:

  1. SCM es un subconjunto de CM, no un término competitivo,
  2. DevOps es un término bastante nuevo, no tiene sentido compararlo con los términos establecidos,
  3. DevOps se deriva de las operaciones del desarrollador (obviamente) pero rara vez se expande como tal.
respondido por el yannis 19.01.2012 - 12:56
6

Al ser un administrador de configuración de software sénior durante muchos años (10+) escucho los términos que no coinciden en una variedad de situaciones de la vida real. No es infrecuente para el personal no técnico debido a la naturaleza relativa de las posiciones. Ambos tienen roles, necesidades y requisitos específicos que son similares pero que, sin embargo, se pueden dividir claramente en mi opinión.

Creo que la mejor manera de describir la división de estos roles es enfocarse en su relatividad a la interacción. Esto significa que Software Configuration Management se enfoca en los sistemas y entornos internos, junto con la integración, implementación, lanzamiento y administración del código fuente. Where as Developer Operations (DevOps) se enfoca más en el aspecto operacional de la arquitectura de aplicaciones enfrentadas externamente, al tiempo que mantiene una comprensión clara del código, ya que fue diseñado para el uso y la práctica de su entorno. Si el rendimiento de una máquina muestra signos de degradación, la comunicación entre múltiples aplicaciones es defectuosa, las comunicaciones y / o las limitaciones de la arquitectura de empresa a empresa (BtB) en relación con un entorno de producción, entonces deberá consultar las Operaciones del desarrollador para su diagnóstico y solución.

Por lo general, en mi experiencia, el Administrador de configuración de software también puede hacer estas cosas, pero esto elimina su enfoque central de seguimiento, administración y despliegue de configuraciones de entorno y revisiones de software. Administrar el software que permite la separación de tareas, el seguimiento de errores y defectos, el seguimiento de proyectos y el ciclo de vida y flujo de desarrollo del software. Estas tareas no son el foco principal de las operaciones del desarrollador y, por lo tanto, son menos imperativas, pero aún se pueden realizar.

He visto muchos ejemplos de la confusión de cada uno, y en cada uno hay algunos cruces limitados. Sin embargo, es muy importante pensar en las diferencias entre las responsabilidades de cada una de las posiciones independientes en relación con su enfoque principal. Principalmente, cuando se trata de sistemas y hardware utilizados internamente para administrar la configuración de los entornos y el lanzamiento del producto, debe buscar un Administrador de configuración de software. Por otro lado, cuando se trata del rendimiento del sistema, la supervisión, la investigación y el diagnóstico de los sistemas utilizados por sus clientes, debe consultar las Operaciones de desarrollo o DevOps.

Ahora, esto no es un significado como una perorata, ni una respuesta definitiva, sino una identificación personal de las diferencias de cada una de las posiciones. Me gustaría saber si estoy fuera de lugar o si las respuestas se aclaran con claridad.

    
respondido por el Phyro 03.03.2015 - 18:33
4

Sería difícil encontrar una definición sólida para DevOps. Es más una idea que un trabajo por hacer. Y es una idea demasiado nueva para que todos estén de acuerdo en lo que significa exactamente. Sin embargo, aquí está mi opinión.

DevOps es solo un nuevo término para la administración de la configuración, pero se eligió para mostrar que el rol no es un rol de una persona, es una colaboración entre el equipo de desarrollo y el equipo de operaciones.

Históricamente, la gestión de la configuración la realizaría únicamente el equipo de desarrollo y luego se entregaría a las operaciones, quienes lo verían todo con profunda sospecha. Lo cual es justo, para ser honesto. Ellos son los responsables de ello. Son los primeros en ser llamados a las 4am cuando sale mal. Realmente deberían tener alguna participación en su desarrollo.

    
respondido por el pdr 19.01.2012 - 12:41
1

Esta es la simple aclaración de la pregunta: DevOps es un término utilizado para describir la coordinación o relación entre Desarrollo (desarrollo de los códigos de programa en el entorno de desarrollo) y Operaciones (que garantizan el tiempo de producción máximo).

Software Configuration Management es un medio para lograr esta coordinación. SCM involucró herramientas y técnicas para gestionar la automatización del proceso de pasar del desarrollo a la producción (operaciones)

Para resumir, SCM conecta Dev y Ops.

    
respondido por el Kindson The Genius 17.12.2018 - 02:45
-1

Veo que DEVOPs se encuentra en el extremo de ejecución operacional: scripts de automatización de despliegue, buildouts de entorno, ese tipo de cosas. SCM, por otro lado, trata sobre la integridad de los productos y la gestión y trazabilidad efectivas de los cambios en los productos. Siempre he considerado a ALM como parte de SCM. Después de todo, ¿cómo puede gestionar los cambios en un producto si no tiene idea de los impulsores del cambio o quién los hizo? Los marcos de implementación podrían caer en cualquier lado, y de qué lado dependerá invariablemente de las necesidades regulatorias de la organización para la que trabaja, después de todo, ¿quiere que un desarrollador pueda hacer un truco rápido que signifique que su máquina de diálisis solo funciona correctamente? 99.99% ¿Alguna vez, o necesita esa situación para permitirle piratear el código de su sitio web porque sus desarrolladores tienen direcciones IP codificadas?

    
respondido por el Jack 23.06.2014 - 08:20

Lea otras preguntas en las etiquetas