Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/308857081
CITACIONES LEE
109 8.520
4 autores , incluso:
Binish Tanveer
VER EL PERFIL
Algunos de los autores de esta publicación también están trabajando en estos proyectos relacionados:
Todo el contenido que sigue a esta página fue subido por Ramtin Jabbari el 09 de marzo de 2018.
RESUMEN 1. INTRODUCCIÓN
Contexto: DevOps, la combinación de Desarrollo y Operaciones, es una nueva forma Existe un interés considerable en "DevOps" por parte de los
de pensar en el dominio de la ingeniería de software que recientemente recibió profesionales. Numerosas consultorías ofrecen sus servicios para ayudar
mucha atención. Dado que DevOps es un término nuevo y un concepto novedoso a las organizaciones a adoptar y aprovechar los beneficios de DevOps.
introducido recientemente, todavía no se ha logrado un entendimiento común de lo Varias conferencias recientes y revisiones sistemáticas sobre el tema
que implica. En consecuencia, las definiciones de DevOps a menudo solo representan sugieren que los investigadores de ingeniería de software también
una parte que es relevante para el concepto. tienen un gran interés en el tema.
La investigación en ingeniería de software a veces es criticada por
Objetivo: Este estudio tiene como objetivo caracterizar DevOps reempaquetar términos y conceptos existentes, lo que a menudo da como
explorando los componentes centrales de las definiciones de resultado definiciones inconsistentes para el mismo concepto [45]. Por lo
DevOps reportadas en la literatura, especificando prácticas tanto, el uso inconsistente de términos y, por lo tanto, de los conceptos
propuestas explícitamente para DevOps e investigando las conduce a dificultades para encontrar investigaciones relevantes, ya que los
similitudes y diferencias entre DevOps y otros métodos existentes autores se refieren a la misma contribución conceptual con términos
en ingeniería de software. totalmente diferentes [12, 52].
Método: Se realizó un estudio de mapeo sistemático que utilizó A menudo, las distinciones han obstaculizado en lugar de fomentar el
seis bases de datos electrónicas: IEEE, ACM, Inspec, Scopus, Wiley progreso y la colaboración en los campos. Por ejemplo, en varias áreas
Online Library y Web of Science. de la ingeniería de software después de décadas de investigación,
Resultado: Se han seleccionado 44 estudios que informan una hemos tenido un artículo que sugiere que nuestra investigación no es
definición de DevOps, 15 estudios que declaran explícitamente las tan diferente [3, 21].
prácticas de DevOps y 15 estudios que indican cómo DevOps se Como DevOps es un tema reciente, no existe una definición
relaciona con otros métodos existentes. En algunos casos, los artículos estándar para DevOps [48]. Por lo tanto, en este artículo intentamos
indicaron una combinación de una definición, prácticas y relaciones con conceptualizar DevOps a través de las siguientes contribuciones:
otros métodos; el número total de estudios primarios fue de 49. • Analice y compare las definiciones de DevOps de la literatura
Conclusión: Propusimos una definición de DevOps que puede superar las de investigación.
inconsistencias sobre las diversas definiciones existentes de estudios de
• Identificar y clasificar las prácticas asociadas con DevOps.
investigación individuales. Además, se han presentado las prácticas
propuestas explícitamente para DevOps, así como la relación con otros • Compare DevOps con otros métodos de desarrollo.
métodos de desarrollo de software. Seguimos un enfoque de estudio de mapeo sistemático [30, 47] para
lograr las contribuciones. La atención se centra en la literatura científica
y revisada por pares.
Conceptos de CCS
El resto del documento está estructurado de la siguiente manera: La
• Creación de software y su ingeniería → Creación y gestión de Sección 2 describe el trabajo relacionado. La sección 3 presenta el
software; método de investigación. A continuación, en la Sección 4 presentamos
los resultados, seguidos de discusiones y conclusiones en las Secciones 5
y 6, respectivamente.
Palabras clave
Definición de DevOps; Práctica de DevOps; Método de desarrollo de
2. TRABAJO RELACIONADO
software
En el trabajo relacionado, proporcionamos una descripción general de
los estudios secundarios, que revisan los estudios primarios sobre el
El permiso para hacer copias digitales o impresas de todo o parte de este trabajo para uso personal o
en el salón de clases se otorga sin cargo siempre que las copias no se hagan o distribuyan con fines
tema de DevOps, y detallan cómo estos se relacionan con nuestras
lucrativos o comerciales y que las copias lleven este aviso y la cita completa en el primera página. Se contribuciones para sintetizar / integrar la evidencia relacionada con el
deben respetar los derechos de autor de los componentes de este trabajo que son propiedad de tema.
terceros distintos de ACM. Se permite resumir con crédito. Copiar de otra manera, o volver a publicar,
Erich et al. [ 13, 15] realizó una literatura sistemática
publicar en servidores o redistribuir a listas, requiere permiso específico previo y / o una tarifa. Solicite
permisos a permissions@acm.org. revisar cómo la relación entre desarrollo y operaciones puede influir
Talleres XP '16, 24 de mayo de 2016, Edimburgo, Escocia, Reino Unido en el desarrollo de los sistemas de información (SI). En particular,
intentaron identificar los conceptos principales de DevOps y los
©c 2016 ACM. ISBN 978-1-4503-4134-9 / 16/05. . . $ 15.00 DOI: http://dx.doi.org/10.1145/2962695.2962707
desafíos que ocurren al usar
ellos en el desarrollo de SI, que estaban específicamente
Tabla 1: Cadenas de búsqueda, bases de datos utilizadas y
relacionados con el desarrollo y las operaciones. También
resultados de la búsqueda realizada el 4 de septiembre de 2015
investigaron cómo DevOps puede mitigar los desafíos identificados.
Además, mencionaron cultura, automatización, medición, Base de datos Cadena de búsqueda No.
de
intercambio, servicios, aseguramiento de la calidad, etc. como
documentos
conceptos para DevOps, pero los problemas relacionados con el IEEE ("DevoOps") 46
desarrollo de SI no han sido reportados. En su trabajo de ACM ("DevOps") y (Publicación 85
investigación, no encontraron pruebas sólidas en la literatura sobre lishedAs: diario O Pub-
cómo abordar los desafíos del uso de DevOps identificados en su lishedAs: procediendo)
estudio. Se ha destacado el potencial para una mayor investigación Inspec 1969-2016: (("DevOps") WN 41
Todos los campos)
sobre la relación entre DevOps y el desarrollo de SI. Erich et al. no
Scopus TITLE-ABS-KEY (“DevOps”) Y 51
consideró la definición de DevOps, la identificación de las prácticas
(LIMIT-TO (SRCTYPE, “p”) O LIMIT-TO
de DevOps y su relación con los otros métodos que han sido objeto (SRC- TYPE, “j”))
de nuestro estudio.
Smeds et al. [ 51] tenía como objetivo especificar el concepto de Wiley On- "DevOps" en todos los campos 7
DevOps y lo que los profesionales perciben como impedimentos biblioteca de línea
para adoptar DevOps. Definieron DevOps proponiendo tres Web of Sci- TEMA :( “DevOps”) Periodo de tiempo: 8
ence Todos los años.
atributos principales, a saber, capacidades, cultura y tecnología. El
Total 238
estudio no proporcionó una definición sintetizada a través de un
Duplicados (detección automática) - 79
análisis sistemático de las definiciones existentes, que es una de las Duplicados (detección manual) -1
contribuciones de nuestro estudio. Eliminar procedimientos -
Además, complementamos el trabajo existente evaluando la No revisado por pares - 10
23
consistencia de las de fi niciones basadas en 49 estudios primarios. Irrelevante -
Se ha utilizado un enfoque sistemático para derivar las definiciones. No disponible en texto - 26
Para investigar y comprender los impedimentos de adoptar completo restante 117
DevOps, Smeds et al. concluyó explícitamente que la definición de
DevOps aún necesita mucha atención por parte de los
investigadores. conducido tiene como objetivo encontrar todos los artículos en los que
Como contribuciones adicionales que complementan el trabajo se ha mencionado DevOps. No limitamos la cadena de búsqueda a, por
existente, también identificamos las prácticas asociadas con ejemplo, definición, práctica, etc. de DevOps para evitar perder cualquier
DevOps, así como cómo los autores de los estudios incluidos en artículo potencial que pudiera estar relacionado con DevOps. Para
nuestro estudio de mapeo comparan DevOps con otros enfoques aumentar la confianza en el proceso de búsqueda, el proceso se realizó
de desarrollo (como el desarrollo ágil de software). dos veces con un intervalo de una semana, lo que también se conoce
como procedimiento test-retest [35].
3. MÉTODO DE INVESTIGACIÓN
Realizamos un estudio de mapeo sistemático [30, 47] para
3.2 Criterios y proceso de selección
comprender la siguiente pregunta: ¿Cómo se ha caracterizado Para mejorar la confiabilidad del estudio, se tomaron varias medidas
“DevOps” en la literatura de investigación? Formulamos tres [2] comenzando con la descripción de los criterios y el proceso de
preguntas de investigación (RQ): selección del estudio. Se utilizaron criterios muy simples para evaluar la
relevancia de los artículos:
• PI1: ¿Cómo se define “DevOps” en la literatura revisada por
pares sobre el tema? El objetivo de esta pregunta de • Excluya cualquier artículo que no esté publicado en inglés.
investigación es lograr una comprensión alineada del • Excluya cualquier artículo que no haya sido revisado por pares.
concepto de DevOps, ayudando a la comunicación entre • Excluir actas de conferencias (p. Ej., Mensajes de
investigadores y profesionales al presentar resultados presidente de consejos editoriales, etc.).
relacionados con DevOps. • Excluya cualquier artículo que no esté disponible en texto completo.
• RQ2. ¿Qué prácticas se asociaron con DevOps en la
literatura? Las metodologías ágiles específicas prescriben Para tener una comprensión confiable de los estudios y comprender
prácticas a seguir, como Extreme Programming que propone el papel de DevOps en particular, solo consideramos aquellos
un conjunto de prácticas, por ejemplo, integración continua, estudios que están disponibles en texto completo. Para ello cabe
estándares de codificación, diseño simple, etc. Como DevOps mencionar que solo incluimos los artículos que discuten
es un concepto relativamente nuevo, estamos investigando explícitamente “DevOps” para identificar cómo se define el término
qué prácticas los autores asocian con DevOps. en sí y qué prácticas están asociadas con el concepto DevOps, se
• RQ3. ¿Cuáles son las similitudes y diferencias informadas por han excluido los estudios que no utilizan el término “DevOps”. Para
los autores de los estudios primarios entre “DevOps” y los los artículos que no estaban disponibles en texto completo, se
otros métodos de desarrollo? Para que DevOps se beneficie contactó con el bibliotecario de la universidad y con los autores.
de las lecciones aprendidas y las evidencias obtenidas Podríamos obtener dos estudios más contactando al bibliotecario o
anteriormente, es interesante comparar y relacionar DevOps autor (es) que no estaban disponibles en texto completo. Siempre
con otros métodos de desarrollo. existe el riesgo de que los criterios de selección se interpreten de
manera diferente. Por lo tanto, es importante involucrar a varias
3.1 Cadenas de búsqueda personas en el proceso de selección. Para evitar sesgos individuales,
La Tabla 1 muestra las cadenas de búsqueda, las bases de datos y el número de artículos
encontrados por base de datos. Como se muestra en la Tabla 1, la búsqueda
3.3 Extracción de datos ting publicado). Dado que el enfoque de este estudio está en la
Para extraer datos, diseñamos el formulario de extracción de definición de DevOps y no en, por ejemplo, los beneficios y las
datos como se ilustra en la Tabla 2 basado en los objetivos de este limitaciones, el sesgo de publicación puede no jugar un papel
estudio [30], que fueron respectivamente; definir DevOps, significativo para este estudio.
identificar aquellas prácticas que se han propuesto explícitamente Generalizabilidad (capacidad de generalizar a diferentes contextos):
en el contexto de DevOps y explorar cualquier comparación y / o Este estudio se centra en un conjunto limitado de estudios, y es posible
reflejo de la relación con otros métodos. que la definición de DevOps no sea estática, sino que evolucione con el
El formulario de extracción de datos se ha evaluado mediante la tiempo. Es decir, es posible que se agreguen nuevas prácticas y nuevos
realización de un estudio piloto. Cinco artículos, entre los 117 componentes en estudios futuros. Esta es una amenaza para la validez,
finalmente seleccionados, fueron seleccionados al azar para evitar aunque no está bajo el control de los investigadores durante el diseño y
sesgos. La evaluación se realizó en dos rondas. En la primera ronda, la ejecución del estudio. Por lo tanto, nuestro estudio presenta una
los dos primeros autores extrajeron cinco estudios para evaluar el definición agregada y un conjunto de prácticas que pueden ampliarse
formulario de extracción de datos. El formulario de extracción de aún más en función de la evolución del campo de investigación.
datos se mejoró según el piloto. Se realizó un segundo piloto con Objetividad (capacidad para describir objetivamente las observaciones):
los cuatro autores. Después de la construcción de consenso, los Es posible que haya múltiples sesgos durante la búsqueda, la selección de
estudios se distribuyeron entre los autores en función de las estudios, la extracción de datos y el análisis. Para reducir los sesgos, varios
contribuciones. investigadores han participado en todos los pasos del estudio. Por ejemplo,
Después de la extracción de datos, se hizo evidente que muchos utilizamos dos investigadores durante la selección del estudio, realizamos una
estudios no eran relevantes porque no se centraban en las de fi prueba piloto de extracción de datos y revisamos el análisis de datos. También
niciones, prácticas y relaciones de DevOps con otros métodos. Esto existe el riesgo de que se pierdan estudios relevantes en la búsqueda. Para
no fue posible deducirlo solo del título y el resumen, razón por la evitar esto, seguimos la recomendación de Kitchenham y Brereton de incluir
cual se leyó el texto completo de los 117 estudios. De estos, solo se bases de datos de editores y bases de datos indexadas en nuestros
incluyeron 49 estudios. La Tabla 3 describe el número de estudios procedimientos de búsqueda [34]. Además, se ha utilizado una
utilizados en nuestro trabajo de investigación de acuerdo con cada prueba-reprueba para reducir el riesgo de errores
RQ específico.
3.4 Análisis
Para la definición, investigamos los estudios que han utilizado
explícitamente el término DevOps, y luego propusimos una
definición para eso (ver sección 4.1). Basándonos en la frecuencia de
repetición para definir DevOps en estos estudios seleccionados,
identificamos los componentes centrales para la definición de
DevOps. (ver Figura 1 y Tabla 4).
Para mostrar mejor los componentes centrales identificados de la
definición de DevOps, excluimos 'Desarrollo' y 'Operaciones' en la
Figura 1, como la definición más común de DevOps. La figura
muestra los términos identificados, lo que es un buen punto de
partida para el análisis. Sin embargo, no pone los términos en un
contexto. En consecuencia, utilizamos codificación abierta para
identificar los componentes de las de fi niciones.
Para las prácticas de DevOps, investigamos los estudios que
propusieron explícitamente actividades que se ejecutan en el
contexto de DevOps. Después de identificar estas prácticas, las
hemos categorizado de acuerdo con las áreas de conocimiento
fundamental y las áreas de subconocimiento correspondientes,
propuestas en el cuerpo de conocimiento de ingeniería de software
(Swebok), como un estándar internacional para proporcionar una
colección categorizada integral de los límites de la ingeniería de
software. [1] (ver Tabla 5). Las áreas de conocimiento de Swebok
también proporcionan una indicación de cuántas áreas cubre
DevOps. Las prácticas individuales se han identificado mediante
codificación abierta. A partir de entonces, se han asociado y
colocado en las áreas de conocimiento de Swebok.
Para investigar la relación entre DevOps y otros métodos
existentes, investigamos los artículos, en los que se ha realizado
una comparación, discusión o reflexión explícita entre DevOps y
otros métodos. Luego, categorizamos los datos de acuerdo con los
métodos especificados (ver Tabla 6).
ID de estudio
Nombre del revisor
¿De fi nición? (RQ1) Estados del autor; Por ejemplo, DevOps se define OR como OR ...
Comparación / Discusión / Reflexión Si el artículo ha comparado y contrastado explícitamente DevOps con otras metodologías
de la relación con otras metodologías como Agile, Lean, VBSE, etc. (RQ3)
Nota adicional
¿Excluye el artículo basándose en Eg, ya que el artículo no trata sobre DevOps de forma explícita? tus
hallazgos?
Si / Incierto / No
si es así / incierto, ¿por qué?
[6, 7, 8, 11, 14, 17, 24, 26, 29, 32, 33, 37, 38] [42, 43,
44, 46, 50, 53, 57, 58, 60, 61, 63, 64] 25 sí No No
[4, 20] 2 No No sí
4.1 Definiciones de DevOps (RQ1) 4.3 Relación con otros métodos (RQ3)
Para explorar las definiciones de DevOps en la literatura, La relación de DevOps con los otros métodos de desarrollo de
intentamos identificar los componentes centrales para definir software existentes se ha extraído de los estudios primarios. Las
DevOps explícitamente. La Tabla 4 muestra los componentes relaciones se discutieron explícitamente en los documentos, lo que
identificados obtenidos de los estudios correspondientes. permitió identificar las similitudes y diferencias entre DevOps y los
otros métodos. Las relaciones con otros métodos se muestran en la
4.2 Prácticas de DevOps (RQ2) Tabla 6. Las relaciones mencionadas explícitamente se destacaron
Explorar las prácticas propuestas como prácticas DevOps. con la computación en nube ágil,
Tabla 4: Componentes centrales de la definición de DevOps
Componente Definición de componente Referencias
C1: Desarrollar Se ha aclarado que el término “DevOps” ha sido acuñado por [5, 6, 7, 8, 9, 10, 11, 16, 17, 19, 23, 24, 26,
ment y Op- una combinación de Desarrollo y Operaciones (o 27, 29, 31, 32, 33, 37, 38, 39, 40, 41, 43, 44,
eraciones Desarrolladores y Operadores). 46, 48, 53, 54, 55, 56, 57, 59, 65]
C2: Comunicaciones DevOps se define como un paradigma o método o conjunto de [6, 7, 8, 11, 16, 24, 25, 27, 33, 41, 44, 57,
nicación principios y / o prácticas que permiten la comunicación y la 58, 64, 65]
Colaboración, colaboración, lo que resulta en un trabajo en equipo eficiente entre
Trabajo en equipo desarrolladores y operadores.
C3: Puente DevOps se define como un paradigma o método o conjunto de [7, 8, 9, 16, 25, 39, 46, 54, 55, 56, 57, 60,
el hueco principios y / o prácticas que cierra la brecha (como el objetivo 61, 63]
principal de DevOps) entre el desarrollo y las operaciones. Este
componente está en estrecha correlación con C2 en la literatura.
C4: Desarrollar DevOps se define como un método de desarrollo de software [10, 24, 26, 44, 48]
método de ment moderno para responder a las interdependencias entre el desarrollo
y las operaciones mediante la unificación de métodos y herramientas
modernos que dan como resultado una convergencia real entre
desarrolladores y operadores.
C5: software DevOps se define como un paradigma o conjunto de principios que [10, 11, 18, 27, 55, 65]
entrega se centran en la entrega de software al permitir una
retroalimentación continua, una respuesta rápida a los cambios y el
uso de canales de entrega automatizados que reducen el tiempo de
ciclo. Bayser et al. [ 10] han mencionado explícitamente que DevOps
nació para la entrega rápida de sistemas basados en web.
C6: Au- DevOps se define como un paradigma o conjunto de principios que [7, 29, 38, 61]
tomado permite automatizar el proceso de implementación desde el código
despliegue fuente en el control de versiones hasta el entorno de producción.
C7: Contin- Devops se define como una práctica que enfatiza las tareas que [18, 19, 26, 65]
uous integra- permiten la integración continua entre el desarrollo de software
ción y sus necesidades de implementación operativa.
C8: Calidad DevOps se define como un método que combina las preocupaciones [10, 43]
garantía de la garantía de calidad con las operaciones y las prácticas de
desarrollo para mejorar el rendimiento.
gestión de la nube, procesos de desarrollo (desarrollo en cascada), empresas de cerámica ”, y finalmente Miglierina estados "DevOps
ITIL y actividades de aseguramiento de la calidad. elimina la brecha entre desarrolladores y operadores, mientras que
ágil hace una alineación entre los requisitos comerciales y el
4.3.1 Ágil desarrollo" [ 40].
DevOps extiende Agile: DevOps se extiende ágil en términos de
los principios, ya que DevOps puede proporcionar una extensión 4.3.2 Computación en la nube
pragmática para las actividades ágiles actuales. Por ejemplo, como Computación en la nube: La computación en la nube puede
DevOps enfatiza más en la comunicación y colaboración entre considerarse un facilitador de DevOps, en particular para lanzamientos
desarrolladores y operadores que en herramientas y procesos, frecuentes, entrega e integración continuas, como ventajas competitivas
puede lograr objetivos ágiles para reducir la latencia del trabajo en [4, 62].
equipo y extender los principios ágiles a todo el proceso de entrega Gestión de la nube basada en modelos: Wettinger et al.
de software [16, 55]. [59] han realizado una comparación entre DevOps y la gestión de la
Desarrollo y entrega ágil de aplicaciones web: nube que menciona que la gestión de la nube basada en modelos
Bayser et al. [ 10] han mencionado brevemente que DevOps tiene puede proporcionar un enfoque más completo para la gestión de
una relación particular con el desarrollo y la entrega ágiles de servicios, pero no puede reemplazar a DevOps, ya que proviene de
aplicaciones web. un entorno completamente diferente.
Ágil como habilitador de DevOps: Hosono [25] ha mencionado que los
métodos ágiles pueden considerarse habilitadores para adoptar el 4.3.3 Cascada
pensamiento DevOps. En DevOps, el desarrollo y las operaciones fluyen juntos, que no se
Agile admite DevOps: Agile puede respaldar DevOps fomentando la ha proporcionado en Waterfall, como una metodología tradicional
colaboración entre los miembros del equipo, la automatización de la basada en planes [48]. En otras palabras, Waterfall contradice DevOps
construcción, implementación y prueba, medición y métricas de costos, debido a los estándares y principios [14].
valor y procesos, intercambio de conocimientos y herramientas [5].
4.3.4 ITIL
DevOps versus ágil: Terhi et al. [ 31] han mencionado que los Para definir ITIL (es decir, biblioteca de infraestructura de tecnología de la
métodos ágiles para la integración e implementación continuas información, un conjunto de prácticas para la gestión de servicios de TI que se
tienen propiedades compartidas con DevOps, mientras que DevOps centra en alinear los servicios de TI con las necesidades de la empresa),
en sí no puede cumplir con todos los principios propuestos en el McCarthy et al. [ 39] ha mencionado explícitamente; al igual que DevOps, no es
´szá́r et al. [ 9] di eso "Escalar DevOps para
manifiesto ágil. Csá un conjunto de estándares, sino un conjunto de prácticas que pueden
Las redes de operadores definidas por software son, en cierto sentido, como integrarse y organizarse de acuerdo con las necesidades de una organización
escalar el desarrollo ágil a grandes proyectos en software multinacional. de TI.
Tabla 5: Prácticas de DevOps
Conocimiento Subconocimiento del área Práctica de área Referencias
(KA) (Sub-KA)
Planificación continua [55]
Proyecto de software Bucle de retroalimentación entre desarrolladores y
Software Planificación operadores
Ingenieria Monitoreo continuo [55]
administración Monitoreo automatizado del desempeño durante la [23]
Proyecto de software prueba e integración continua Retroalimentación
Promulgación automatizada para modelos de desempeño y [54]
predicciones de desempeño
Monitoreo de aplicaciones [dieciséis]
Cuadros de mando automatizados [dieciséis]
Software Consideraciones prácticas Integración continua [16, 18, 19,
construcción 55]
Software Construcción Aplicación de prototipos [25]
Fundamentos
Planificación de implementación integrada [dieciséis]
Despliegue continuo [16, 55]
Despliegue automatizado [22, 62]
Lanzamiento de software Entrega continua [22, 62]
Administración y Configuraciones de aplicaciones cooperativas [41]
Entrega Aplicación de seguimiento y próximo desarrollo [25]
Software
configuración Gestión de la Aplicación de puesta en escena [25]
administración Proceso SCM Gestión de configuración integrada [dieciséis]
4.3.5 Garantía de calidad para cerrar la brecha (C3) entre Desarrollo (Dev) y Operaciones (C1),
Roche [48] analiza la convergencia de la garantía de calidad y enfatizando la comunicación y la colaboración (C2), la integración
DevOps. continua (C7), el aseguramiento de la calidad (C8) y la entrega (C5)
con implementación automatizada (C6) utilizando un conjunto de
prácticas de desarrollo ".
5. DISCUSIÓN Las prácticas de desarrollo asociadas con DevOps en la literatura
Coherencia del uso de las definiciones de DevOps: Allí- se presentan en la Tabla 5.
Los resultados de búsqueda de este estudio mostraron la necesidad de Prácticas: DevOps versus Agile: En la Sección 4.3 presentamos
una definición, ya que los estudios individuales no definen DevOps de cómo los autores han comparado explícitamente DevOps con otros
manera consistente. Como ejemplo, determinando el número de métodos. Era visible que la computación en la nube jugó un papel
artículos que definen todos los componentes más comunes C1, C2 y C3 importante en DevOps para implementar continuamente soluciones
(Tabla 4), es decir | C 1 ∩ C 2 ∩ C 3 | = 4, siendo los estudios [7, 8, 16, 57]. a los clientes, con respecto a los procesos de desarrollo, DevOps se
Curiosamente, ninguna de estas referencias definía ninguno de los ha relacionado con el desarrollo ágil de software. Por tanto, es
componentes restantes, a saber, C4 a C8. Esto muestra la necesidad de interesante comparar las prácticas de la Tabla 5 con las prácticas de
proponer una definición que incorpore las diferentes visiones de lo que desarrollo ágil de software, ya que esto facilita la reutilización de
significa DevOps. conocimientos previos obtenidos en el campo del desarrollo ágil de
Definición derivada: Con base en nuestra síntesis, considerando los componentes software. Para ello utilizamos el conjunto de prácticas identificadas
identificados en la Tabla 4, definimos DevOps de la siguiente manera: “DevOps es en Kurapati et al.
una metodología de desarrollo (C4) dirigida
Tabla 7: Comparación de prácticas de DevOps con prácticas ágiles (cf. Kurapati et al. [36])
Conocimiento Subconocimiento del área Prácticas de DevOps de área Prácticas ágiles [36]
(KA) (Sub-KA)
Planificación continua Reunión de planificación de Sprint,
Proyecto de software sprints e iteraciones, reunión de
Software Planificación revisión de sprints
Ingenieria Bucle de retroalimentación entre Trabajo en equipo,
administración desarrolladores y operadores comunicación
Monitoreo continuo Seguimiento del progreso, retro
reuniones de revisión de sprint,
Proyecto de software espectivas
Promulgación Automatizado actuación •
monitoreo durante la prueba e
integración continua
Retroalimentación automatizada •
para modelos de desempeño y
predicciones de desempeño
Monitoreo de aplicaciones •
Cuadros de mando automatizados •
Software Consideraciones prácticas Integración continua Integración continua, con-
construcción pruebas continuas
Software Construcción Aplicación de prototipos [25]
Fundamentos
Plan de implementación integrado •
ning
Despliegue continuo Lanzamientos cortos / pequeños
[36], mapeándolos a las prácticas en la Tabla 5. El mapeo de DevOps hecho por juicio experto del tercer autor, que tiene experiencias
y prácticas ágiles, que se muestra en la Tabla 7, ha particulares en el dominio, investigando a fondo
PI1: ¿Cómo se define “DevOps” en la literatura revisada por pares
Tabla 6: En comparación con otros métodos
sobre el tema? Con respecto a RQ1, identificamos ocho
Método Relaciones especificadas por Reference los componentes de la definición que caracteriza a DevOps. El
autores del pri-
componente que se destacó con más frecuencia fue que el
estudios de maría
desarrollo y las operaciones aparecen juntos para acuñar el
DevOps amplía Agile [16, 55] término, en particular, ambos componentes son esenciales por
definición. Además, se destacaron la comunicación, la colaboración
Desarrollo ágil de aplicaciones [10]
y el trabajo en equipo, así como la reducción de la brecha entre Dev
web
y Ops. Además, DevOps es un método de desarrollo con énfasis en
Entrega ágil de aplicaciones web [10] la entrega de software, implementación automatizada, integración
Ágil continua y garantía de calidad. En síntesis, propusimos la siguiente
definición de DevOps: “DevOps es una metodología de desarrollo
Ágil como facilitador de DevOps [25] (C4) destinada a cerrar la brecha (C3) entre Desarrollo (Dev) y
Operaciones (C1), enfatizando la comunicación y la colaboración
Agile admite DevOps [5] (C2), la integración continua (C7), el aseguramiento de la calidad
(C8) y la entrega ( C5) con implementación automatizada (C6)
DevOps versus ágil [9, 31, 40] utilizando un conjunto de prácticas de desarrollo ". Aunque C7 y C8
solo se han mencionado en algunos estudios, decidimos usarlos en
la definición propuesta para DevOps, ya que especifican los
Comp en la nube. La computación en la nube como facilitador [4, 62]
objetivos centrales de la adopción de DevOps. La importancia de
una definición común se hizo evidente a partir de las diferencias de
Nube Gestión de la nube frente a [59] definiciones para los estudios individuales. Es decir, muy pocos
gestionar- DevOps estudios compartieron componentes de la definición.
ment
RQ2. ¿Qué prácticas se asociaron con DevOps en la literatura? Clasi
Cascada Cascada versus DevOps [48, 65] fi camos las prácticas de DevOps utilizando las áreas de
conocimiento y las áreas de subconocimiento de Swebok. Esto
proporcionó una idea de la cobertura de las prácticas asociadas con
ITIL ( En- similitud entre ITIL y [39]
formación DevOps DevOps en relación con la ingeniería de software en su conjunto. Al
Tecnología comparar las prácticas de DevOps con las de desarrollo ágil de
Infras- software, se compartieron muchas prácticas, mientras que varias
estructura prácticas eran específicas de DevOps, como automatizar el análisis
Biblioteca) de aplicaciones, es decir, monitorear continuamente el rendimiento
del sistema, presentar los resultados en cuadros de mando
automatizados,
Calidad Garantía de calidad y des- [48] vops
Garantía RQ3. ¿Cuáles son las similitudes y diferencias informadas por los
autores de los estudios primarios entre “DevOps” y los otros
métodos de desarrollo? Un subconjunto de estudios describió
explícitamente cómo DevOps se relaciona con otros métodos de
desarrollo. Las relaciones se identificaron con desarrollo ágil de
las actividades correspondientes relacionadas con un par de
software, computación y administración en la nube, ITIL y
prácticas mapeadas, por ejemplo, 'requisito de definición' (práctica
aseguramiento de la calidad. Con respecto a ágil, se de fi nieron
de DevOps) se ha mapeado a 'historias y características' (práctica
diferentes tipos de relaciones, como Devops se extiende ágil, y ágil
ágil), o 'configuración de aplicación cooperativa' mapeada a 'trabajo
soporta DevOps. Al observar las prácticas de DevOps y compararlas
en equipos', etc. Como es evidente, las prácticas en relación con la
con las prácticas comunes de desarrollo de software ágil, estos
planificación de proyectos de software, la gestión de versiones de
hallazgos fueron consistentes con RQ2.
software, la gestión de la configuración y las pruebas son similares
desde el punto de vista de los principios. Por ejemplo, tanto DevOps
En este estudio nos centramos en la investigación de cómo los
como ágil hacen hincapié en la integración, las pruebas y la entrega
artículos de investigación ven DevOps y qué de fi niciones, prácticas
continuas de software en funcionamiento. En particular, ágil
y relaciones con otros métodos se estudiaron. En el trabajo futuro,
enfatiza los lanzamientos pequeños y continuos. Lo que DevOps
para investigar la comprensibilidad y la usabilidad de los hallazgos,
agrega al desarrollo ágil de software es el énfasis en la
por ejemplo, la definición propuesta para DevOps, también se
automatización del análisis de aplicaciones, es decir, monitorear
deben considerar las perspectivas del profesional. Esto se puede
continuamente el desempeño del sistema, presentar los resultados
hacer, por ejemplo, a través de estudios de entrevistas y la
en cuadros de mando automatizados, etc. Además,
investigación de blogs escritos por líderes de opinión. También
observamos que se mencionaron prácticas, pero se presentaron
pocos detalles de cómo usarlas. Por lo tanto, el valor de las
diferentes prácticas (también prácticas ágiles) y sus combinaciones
6. CONCLUSIÓN para DevOps deben entenderse e investigarse en el futuro.
QUDOS 2015, Bérgamo, Italia, 1 de septiembre de 2015, frente a la convergente para servicios operados en la nube. En
Viie
ewwppu
ubblliiccaactitud
enn sstta
attss