Tema 9
Administración de Sistemas, Virtualización, Cloud
Computing y DevOps
Tema 9. DevOps, DevOps
Culture y DevSecOps
Índice
Esquema
Ideas clave
9.1. Introducción y objetivos
9.2. ¿A qué llamamos DevOps?
9.3. Principios y metodologías DevOps
9.4. Introducción a la colaboración
9.5. Factores que aceleran la adopción de DevOps
9.6. Seguridad en DevOps (DevSecOps)
9.7. Referencias bibliográficas
A fondo
What is DevOps?
La cultura DevOps
DevSecOps Manifiesto
Test
Esquema
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 3
Tema 9. Esquema
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.1. Introducción y objetivos
DevOps no puede entenderse únicamente como un conjunto de tecnologías y
mejores prácticas, sino que debe entenderse como una revolución cultural. Es una
corriente de cambio dentro de las organizaciones en la que se prima la colaboración
y la interacción abierta entre los equipos de tecnología de la información (en siglas,
TI) y aquellos de desarrollo. El objetivo primordial de esta sinergia es la de alcanzar
la máxima eficiencia y agilidad en el desarrollo, despliegue y mantenimiento de las
aplicaciones.
Numerosas organizaciones han incluido la virtualización como la mejor forma de
optimizar sus recursos computacionales, ya que da nueva vida a infraestructuras
obsolescentes y obtienen una flexibilidad mucho mayor a la hora de utilizar sus
recursos computacionales. La revolución de la virtualización ya no es tal y el nuevo
ciclo de cambio ya está en marcha.
Ya no es suficiente hablar de Cloud Computing como una forma de obtener recursos
computacionales de manera elástica y en un modelo de pago por uso, sino que,
además, aparece el concepto de datacenter virtual, donde podemos tener sus
ventajas con los beneficios de la nube.
Por lo general, solemos utilizar el término cambio cultural para implantar procesos
de mejora continua, emplear metodologías ágiles y adoptar el enfoque DevOps. Esto
obedece a la imposibilidad de adoptar las transformaciones de forma superficial. Tal
y como hemos visto con anterioridad, esta metodología exige un cambio en la
gestión de los recursos, la organización de los equipos y también en la forma de
pensar. Es necesario pasar del control al autoservicio, del miedo a la visibilidad,
de los silos a la colaboración abierta y ninguno de estos cambios se puede
imponer, de un cambio organizativo muy beneficioso a la vez que radical.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 4
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
A través del estudio de este tema, se pretende conseguir los siguientes objetivos:
▸ Comprender el concepto de DevOps y cómo se aplican las tecnologías y mejores
prácticas que se conocen como DevOps.
▸ Conocer los factores que intervienen en la implementación del cambio cultural
necesario para la adopción de la metodología DevOps en una organización.
▸ Comprender qué implica el cambio cultural de una organización para la adopción de
la metodología DevOps.
▸ Conocer las herramientas de colaboración que ayudan a los equipos DevOps a
realizar su trabajo de forma exitosa.
▸ Introducirnos en la seguridad en el mundo DevOps.
En el vídeo de este tema podremos aprender los siguientes conceptos:
Vídeo 1. Repasaremos las buenas prácticas y principios de DevOps y veremos las
herramientas y servicios que posemos utilizar en nube pública.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 5
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.2. ¿A qué llamamos DevOps?
DevOps es un término relativamente nuevo para describir lo que también ha sido
llamado como administración de sistemas ágiles. DevOps se centra en el trabajo y
la colaboración de los equipos de desarrollo y operaciones.
En la actualidad, las empresas se mueven a la velocidad de la nube y es por ello por
lo que DevOps se ha convertido en un enfoque cada vez más extendido y popular
para la entrega de software. Los equipos de desarrollo y operaciones utilizan esta
metodología para construir, probar, implementar y monitorizar las aplicaciones
debido a que les permite: actuar con velocidad, mantener altos índices de calidad y
controlar los cambios con suma rapidez.
DevOps es esencial para cualquier empresa que aspire a ser ágil y que pretenda ser
capaz de responder rápidamente a las demandas del mercado. Por lo tanto, DevOps
es un enfoque:
▸ Hacia la entrega de software ágil.
▸ Que promueve una colaboración estrecha entre las líneas de negocio, desarrollo y
operaciones de TI.
▸ Que elimina las barreras entre las partes interesadas y los clientes.
Es necesario que todas las partes involucradas en el proceso de entrega de software
estén dispuestas a colaborar entre sí. Los equipos de desarrollo necesitan diseñar,
desarrollar, entregar y ejecutar el software de la manera más rápida y confiable
posible. Los equipos de operaciones deben identificar y resolver los problemas de
forma temprana mediante la monitorización, la predicción de fallos, la administración
de los entornos y la solución de problemas. La combinación de este enfoque común
permite monitorizar y analizar los cuellos de botella y optimizar las capacidades de
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 6
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
DevOps que busca, ante todo, fomentar la colaboración entre el área de negocio y
los departamentos de desarrollo y operaciones para entregar y ejecutar el software lo
antes posible.
DevOps como herramienta de cambio para las organizaciones
Para ir adentrándonos en la materia, necesitamos comprender la necesidad y el
valor de DevOps a nivel de negocio, así como los principios de DevOps. Como
sabrán, realizar un cambio en el «business as usual» siempre es difícil y, por lo
general, requiere de una inversión. Así que, cada vez que una organización adopta
cualquier nueva tecnología, metodología o enfoque, la adopción de esta tiene que
ser impulsada por una necesidad de negocio. Es decir que, al desarrollar un
modelo de negocio para la adopción de DevOps, se debe entender la necesidad de
la empresa, incluyendo los retos a los que se enfrenta.
En un entorno DevOps, los equipos son responsables de ofrecer nuevas
características, pero también estabilidad, escalabilidad, fiabilidad y otro sinfín de
propiedades comunes a un software de calidad. Es por ello por lo que las
responsabilidades se equilibran para garantizar que ambos equipos (desarrollo y
operaciones) tengan visibilidad del rendimiento de la aplicación a través de todas
las etapas del ciclo de vida.
Debido a los beneficios que reporta a todo el conjunto de la organización, DevOps
continúa ganando adeptos año tras año desde su aparición. Según los datos de la
popular web [Link], la tasa de adopción aumentó sustancialmente, de 2015 a
2016, del 66 % al 74 %. ¿Qué impulsa a las empresas hacia la adopción de
DevOps? La respuesta es muy sencilla: los largos plazos de entrega del software
hasta su paso a producción, derivado de los sistemas de trabajo tradicionales,
impiden a las empresas brindar servicios de vanguardia y mejorar la experiencia
del cliente. Para mantener el ritmo de las demandas del mercado, los equipos de TI
deben construir, implementar, probar y lanzar software en ciclos cada vez más
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 7
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
rápidos.
Debido a que DevOps mejora la forma en que una empresa entrega valor a sus
clientes, proveedores y socios, podemos afirmar que es un proceso esencial de
negocio y no solo una capacidad de TI. No debemos olvidar que esta metodología
ofrece un retorno significativo de la inversión, en inglés Return of Investment (en
adelante, ROI), por diversas razones:
Aceleración de la innovación
Con un sólido equipo de operaciones y desarrollo que trabaje acompasadamente, las
aplicaciones se pueden desarrollar y desplegar con mayor rapidez. Esto es vital, ya
que el éxito empresarial actual depende, en gran medida, de la capacidad de una
organización para innovar más rápido que la competencia. Los ingenieros DevOps
pueden aprovechar las herramientas tecnológicas de las que disponen para
comprobar los datos de rendimiento de sus aplicaciones en tiempo real, y así,
comprender el impacto de los cambios introducidos en el código. A su vez, las
soluciones a los problemas derivados del software se proveen en plazos de tiempo
más cortos porque los miembros del equipo solo necesitan verificar los últimos
cambios de código para detectar el origen de los errores.
Mejora de la colaboración
En vez de intentar desdibujar las diferencias entre ambos departamentos (desarrollo
y operaciones), un entorno DevOps exitoso procura construir un puente basado en la
comunicación y la colaboración para crear una sinergia. La cultura de desarrollo
de software, entonces, se enfoca en objetivos, responsabilidades y logros
compartidos, en lugar de objetivos individuales. Cuando estos equipos adquieren un
buen nivel de confianza y colaboración, pueden experimentar, investigar e innovar de
manera más efectiva. El entorno de desarrollo se vuelve, progresivamente, más
uniforme a medida que todos los miembros del equipo trabajan para alcanzar
objetivos compartidos.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 8
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Incremento de la eficiencia
Las herramientas automatizadas y las plataformas de producción estandarizadas son
elementos clave de las mejores prácticas de DevOps que ayudan a que las
implementaciones sean más predecibles y liberen al personal de TI de tediosas
tareas repetitivas. Con un entorno de pruebas e integración automatizadas, los
desarrolladores no necesitan desperdiciar su tiempo confiando en que se completen
los procesos de integración de código. Estas herramientas ofrecen oportunidades
adicionales para mejorar la eficiencia:
▸ La infraestructura escalable, como las soluciones basadas en la nube, ayudan a
acelerar las pruebas y los procesos de implementación al aumentar el acceso a los
recursos de hardware.
▸ Las herramientas de compilación y desarrollo ayudan a acortar los ciclos de
desarrollo y acelerar la entrega del producto.
▸ Los flujos de trabajo de entrega continua ayudan a entregar software de manera
más rápida y frecuente.
Reducción del número de fallos
Los ciclos de desarrollo más cortos, derivados de DevOps, promueven entregas de
código más frecuentes. Con estas implementaciones modulares, los equipos
pueden descubrir e identificar, de forma temprana, problemas asociados a la
configuración, el código o la infraestructura.
DevOps eleva el grado de compromiso de los miembros del equipo durante
todo el ciclo de vida de una aplicación, lo que da como resultado un código de
mayor calidad.
Por lo general, se requieren menos cambios y modificaciones porque los
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 9
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
desarrolladores identifican y eliminan posibles problemas a medida que escriben el
código. Según un informe reciente elaborado por Puppet Labs, llamado State of
DevOps, las organizaciones que adoptan una cultura DevOps tienen sesenta veces
menos fallos que aquellas que no implementan DevOps.
Aceleración del tiempo de recuperación
Como hemos dicho anteriormente, debido a que las implementaciones de DevOps
son más frecuentes y «pequeñas», los errores son fácilmente detectables y es por
ello por lo que las soluciones se encuentran con mayor rapidez. El equipo
necesitará verificar los últimos cambios en el código para poder resolver una
incidencia en vez de revisar enormes cantidades de código. Los tiempos de
resolución son intrínsecamente más rápidos porque, además, la responsabilidad en
la solución de los problemas y las correcciones pertinentes corresponden a un solo
equipo: el equipo DevOps. En el informe State of DevOps de Puppet Labs, se
establece que los equipos DevOps de alto rendimiento se recuperan de los fallos 168
veces más rápido que aquellos con menor rendimiento.
Aumento de la satisfacción laboral
DevOps promueve un ambiente de trabajo basado en el rendimiento, en
contraposición con una cultura basada en reglas, estatus o poder. Esto reduce los
obstáculos burocráticos y fomenta la responsabilidad compartida entre todos los
miembros. El resultado es un equipo de trabajo más satisfecho y productivo, que
ayuda a impulsar el rendimiento del negocio. Los desarrolladores y los ingenieros de
operaciones, generalmente, prefieren un entorno DevOps porque pueden trabajar de
manera más eficiente y cambiar de roles cuando sea necesario. A su vez, tienen una
mejor comprensión sobre cómo impacta su función dentro de TI y dentro de la
organización en su conjunto.
La entrega rápida de software es crucial en la era digital actual y la cultura de
DevOps es el motor de este proceso. En otras palabras, permite a las empresas
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 10
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
acelerar la comercialización de sus servicios y productos al mercado y desplegar
nuevas funciones, de manera rápida y eficiente. La adopción de DevOps no es un
proceso simple, pero cuando se realiza correctamente, la inversión genera
dividendos que duplican el esfuerzo inicial.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 11
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.3. Principios y metodologías DevOps
En el corazón de los principios DevOps se encuentra el aprendizaje colaborativo y
las relaciones de colaboración entre desarrollo y operaciones. Estos se centran en
aumentar el ritmo de trabajo de forma planificada para obtener despliegues e
implementaciones más frecuentes, al tiempo que mejora la estabilidad, la resistencia
y la seguridad del entorno de producción. Para que una organización pueda abrazar
los principios de DevOps, debe reforzar y enfatizar este enfoque holístico en todas
sus áreas y no únicamente en los departamentos de desarrollo y operaciones.
Estos principios fundamentales pueden resumirse en la siguiente lista:
▸ Fomentar un ambiente de trabajo colaborativo: como ya hemos comentado, la
esencia de la metodología DevOps es el trabajo conjunto entre los equipos de
desarrollo y operaciones, a fin de crear una sinergia que se centre en la
consecución de objetivos comunes. Para lograr este objetivo, las organizaciones
necesitan fomentar una comunicación eficiente y permitir que ambos equipos
compartan ideas y resuelvan problemas de forma conjunta. Esta «rotura de los silos»
permite a las empresas alinear a sus trabajadores, procesos y herramientas hacia un
enfoque centrado en el cliente.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 12
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 1. Qué es DevOps. Fuente: Buehring, 2021.
▸ Establecer una responsabilidad de extremo a extremo: en el modelo tradicional
de desarrollo de software, desarrollo y operaciones tenían roles separados. Pero en
un entorno DevOps, ambos grupos trabajan como un equipo que es totalmente
responsable de la aplicación, de principio a fin. Tradicionalmente, los
desarrolladores escribían código y operaciones desplegaba ese código, pero eso
producía todo tipo de ineficiencias, problemas de rendimiento y entornos
impredecibles. Todos los miembros del equipo DevOps son responsables de velar
por la calidad y fiabilidad de las aplicaciones que desarrollan.
▸ Fomentar la mejora continua: la responsabilidad de extremo a extremo involucra a
todas las áreas de la organización, ya que estas deben adaptarse continuamente a
las circunstancias cambiantes (ya sea el surgimiento de nuevas tecnologías, las
nuevas y variadas necesidades de los clientes o los cambios en la legislación).
DevOps pone énfasis en la mejora continua para optimizar el rendimiento, los
costes y la velocidad de entrega.
▸ Fomentar la automatización: para hacer frente a los numerosos ciclos de
desarrollo y responder de inmediato a los comentarios de los clientes, las
organizaciones deben implementar procesos automatizados. Afortunadamente, en
los últimos años han surgido variadas y numerosas herramientas de automatización
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 13
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
que agilizan la gestión de procesos en gran medida.
▸ Dar prioridad a las necesidades del cliente : DevOps requiere que las
organizaciones tengan la misma flexibilidad que las start-up lean, ya que estas
pueden innovar continuamente, cambiar de estrategia cuando sea necesario e
invertir en la creación de nuevas características (features) para aumentar la
satisfacción de sus clientes. Los equipos de DevOps deben estar al día de todo lo
que ocurre en el mercado para satisfacer constantemente las necesidades y
demandas cambiantes de los consumidores. Los datos recopilados de los procesos
automatizados deben revisarse con frecuencia para garantizar que se cumplen los
objetivos de rendimiento establecidos por el área de negocio.
▸ Aceptar el fracaso y aprender de él: la aceptación del fracaso fomenta un clima de
aprendizaje que tendrá un impacto positivo en la cultura organizacional. Cuando los
equipos se sienten psicológicamente seguros para actuar y tienen la capacidad de
transformar radicalmente su trabajo, pueden incurrir en fallos. Resulta vital convertir
esos fallos en oportunidades de aprendizaje.
▸ Formar equipos multifuncionales: es necesario que los equipos de DevOps se
involucren en cada etapa del ciclo de vida del desarrollo de software, desde la
planificación, la construcción, la implementación, y la retroalimentación hasta la
mejora continua. Para ello, es necesario que el equipo sea multifuncional y
equilibrado y que cada miembro posea un conjunto habilidades idóneas para su rol
en TI.
Además de estos principios, existen otros que se centran, más específicamente, en
el área de TI y que abogan por una mejora integral de sus procesos. Sin embargo,
tienen un enfoque holístico para DevOps y organizaciones de todos los tamaños
pueden adoptarlos. Estos principios son:
▸ Trabajar en entornos similares a producción durante el desarrollo del software
y la ejecución de pruebas. Hace alusión al concepto DevOps de «desviación a la
izquierda» o shift left. El objetivo que persigue este principio es el de permitir que los
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 14
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
equipos de desarrollo y calidad trabajen en entornos similares a producción a fin de
que puedan verificar el comportamiento y desempeño de la aplicación mucho antes
de que esté lista para su despliegue. Desde una perspectiva de operaciones, este
principio tiene un enorme valor porque permite que el equipo pueda ver, desde una
fase temprana del ciclo, cómo se comportará su entorno cuando soporte a la
aplicación.
▸ Realizar despliegues mediante procesos repetibles y fiables. Permite que el área
de operaciones dé soporte a un proceso de desarrollo de software ágil e iterativo,
durante todas las fases del ciclo de vida que atraviesa el código. La automatización
es esencial para crear procesos que sean iterativos, frecuentes, repetibles y fiables,
por lo que la organización debe crear una fuente o suministro de entregas que
permita que el despliegue sea continuo, automatizado y validado a través de
pruebas. Los despliegues frecuentes también permiten a los equipos poner a prueba
sus propios procesos y, a largo plazo, hace que se reduzca el riesgo de fallos.
▸ Supervisar y validar la calidad operativa. Pone énfasis en la monitorización del
código desde una fase temprana al exigir que el código sea validado a través de
pruebas automatizadas al comienzo del desarrollo y con una alta frecuencia, a fin de
controlar las características funcionales y no funcionales de la aplicación. Esta
supervisión frecuente proporciona una alerta temprana sobre cuestiones operativas o
de calidad que puedan ocurrir más tardíamente en producción.
▸ Amplificar los bucles de retroalimentación. Exige a las organizaciones la creación
de canales de comunicación eficaces que permitan a todas las partes interesadas
acceder y participar en un ciclo comunicativo. De ello se desprende que el desarrollo
de código tendrá el foco puesto en las prioridades del proyecto y podrá ajustarse a
los requisitos del proyecto si estos merman. También implica que los pases a
producción se harán mediante la mejora de los entornos de producción y que los
planes de entrega se modificarán en pos del negocio.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 15
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Metodologías DevOps
DevOps tuvo sus orígenes en Agile. Para comprender mejor esta afirmación, es
importante recordar que Agile promueve el desarrollo de software a través de
iteraciones cortas, la entrega continua de nuevas características, así como
correcciones de errores en ciclos rápidos, de entre dos a cuatro semanas. Por su
parte, DevOps elimina los silos que separan a los equipos de desarrollo y
operaciones con el objetivo de disminuir el tiempo de respuesta a sus clientes y
garantizar la entrega continua de software.
DevOps no solo involucra a todas las áreas de una organización en el proceso de
desarrollo (líneas de negocio, proveedores involucrados en la entrega de software y
propios consumidores), sino que además lo hace de una manera en la que acelera
el desarrollo y mejora la calidad de todos sus procesos. Esto conduce a la
creación de una cultura de la innovación que permite a las organizaciones
colaborar y reaccionar con agilidad ante los cambios del mercado.
Las metodologías de DevOps incluyen:
▸ Integración continua que incluye a la creación de código, la construcción, la
integración y las pruebas.
▸ Entrega continua que incluye a la integración continua, pero se centra en las
entregas.
▸ Despliegue continuo que se centra en automatizar las entregas de la forma más
rápida posible.
▸ Gestión de la configuración y monitorización continua.
Estrategia DevOps
Como hemos visto, DevOps se basa en el concepto de continuidad. No es una
casualidad que hayamos mencionado el concepto de integración, entrega y
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 16
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
despliegue continuos. La estrategia de DevOps se centra en la capacidad
empresarial para la entrega continua de software que permite a los clientes
aprovechar las oportunidades del mercado y, a la vez, reducir el tiempo de
retroalimentación de estos.
Permite a los equipos trabajar de forma conjunta y esforzarse en solucionar
problemas que puedan aparecer en cualquier parte del ciclo de vida del
desarrollo de software. El cliente representa la prioridad máxima de estos
equipos y su bienestar es una responsabilidad compartida entre todos.
La estrategia DevOps acelera la entrega de software, ayuda a equilibrar la velocidad,
los costes, la calidad y el riesgo y aporta una mayor capacidad para innovar.
Además, reduce el tiempo de retroalimentación de los clientes, lo que ayuda a
mejorar su experiencia.
Figura 2. Cómo aplicar la cultura DevOps a tu empresa. Fuente: Bravent IT Consulting, 2019.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 17
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.4. Introducción a la colaboración
Si quisiéramos escribir un decálogo para DevOps, probablemente uno de los
elementos más importantes sería la colaboración. Recordemos que DevOps integra
dos mundos: el del desarrollo y el de las operaciones. Estos individuos adquieren
conocimientos y capacidades de ambos entornos y se abren, por tanto, canales de
comunicación dentro de las organizaciones que permiten alcanzar una mayor
agilidad, capacidad requerida para la Integración continua, la entrega continua y los
frecuentes releases (lanzamientos).
Desde sus cimientos, DevOps es un movimiento cultural que involucra a las
personas. Una organización puede adoptar los procesos más eficientes o tantas
herramientas automatizadas como le sea posible, pero todas ellas serán inútiles si no
están integradas con las personas que deben ejecutar esos procesos y utilizar esas
herramientas.
En la construcción de una cultura DevOps, por lo tanto, está la clave de la
adopción DevOps.
Una cultura DevOps se caracteriza por un alto grado de colaboración a través de los
roles, centrado en el bienestar y los objetivos del negocio (en lugar de los objetivos
exclusivos de cada departamento), la confianza y el aprendizaje a través de la
experiencia. La construcción de una cultura no es como la adopción de un proceso o
una herramienta, ya que requiere de cierta la ingeniería social de los equipos y
cada uno está compuesto por personas que tienen predisposición, experiencia y
prejuicios propios. Esta diversidad puede hacer que la construcción de la cultura se
convierta en un proceso extremadamente desafiante y difícil.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 18
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Las prácticas Lean y Agile son el núcleo de DevOps y, si la organización ya ha
aplicado alguno de estos métodos, podrán apalancar la transición hacia una cultura
DevOps.
Identificación de los objetivos de negocio
La primera tarea en la creación de una cultura es conseguir que todos vayan en la
misma dirección y trabajen por el mismo objetivo, es decir, la identificación de los
objetivos de negocio comunes para el equipo y la organización en su conjunto.
Cuando el equipo sabe cuál es el objetivo común por el que está trabajando y cómo
se medirá el progreso hacia ese objetivo, disminuyen los riesgos y el miedo individual
y colectivo.
DevOps no es el objetivo final de una organización, sino que es una
herramienta que permite alcanzar los objetivos propuestos.
Actualmente, DevOps debe abordar nuevos retos empresariales, por lo que la
organización puede usar esos desafíos como punto de partida para identificar los
objetivos que se desean alcanzar y, entonces, desarrollar un conjunto de hitos o
peldaños que permitan alcanzar esos objetivos y que los equipos utilicen como guía.
Medición de la cultura
La medición de la cultura es extremadamente difícil. ¿Cómo se mide con precisión la
mejora de la colaboración o de la moral de los equipos? Se podría plantear una
medición directa de las actitudes y valores de un equipo mediante encuestas, pero
las encuestas pueden tener un alto índice de error estadístico, ya que suelen ser, por
lo general, pequeñas. A la inversa, se puede tomar una medida indirecta mediante
el seguimiento de la frecuencia con la que un miembro del equipo de desarrollo
contacta a un miembro del equipo de operaciones o de Quality Assurance (en siglas,
QA) para colaborar en la resolución de un problema sin tener que pasar por los
canales oficiales o sin que se lo ordene un superior. La colaboración y la
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 19
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
comunicación entre las personas y los equipos es la esencia de la cultura de
DevOps.
Creación de un ambiente de intercambio
Después de identificar los objetivos comunes de negocio, el siguiente paso en la
construcción de una cultura DevOps es que los líderes de la organización trabajen
con sus equipos para crear un entorno de colaboración e intercambio.
Los líderes deben velar por la eliminación de todas las barreras autoimpuestas
para que haya cooperación.
Por lo general, se suele valorar el desempeño de los equipos de operaciones a
través del uptime (tiempo de actividad sin caída) y la estabilidad, y a los equipos de
desarrollo por las nuevas características (features) entregadas.
La realidad es que esta práctica enfrenta a estos dos grupos: operaciones (sabe
que la mejor manera de protegerse es no aceptar ningún cambio) y desarrollo (tiene
poco o ningún incentivo para centrarse en QA). DevOps elimina esta fricción entre
ambas áreas, valorando el éxito desde la concepción de una responsabilidad
compartida en la entrega de nuevas capacidades y features, de forma rápida y
segura.
Los líderes de la organización deben fomentar la colaboración mediante la mejora
de la visibilidad.
El establecimiento de un conjunto común de herramientas de colaboración es
esencial, especialmente cuando los equipos están localizados en diferentes
puntos del globo y no tienen la posibilidad de trabajar juntos en el mismo
espacio físico.
Resulta crucial dar visibilidad a todas las partes involucradas en un proyecto sobre
cuáles son los objetivos y el estado de un proyecto. Esto facilitará la construcción
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 20
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
de una cultura DevOps basada en la confianza y la colaboración. Este cambio en la
dinámica de grupos y el traspaso de la información tendrán un impacto a nivel
humano y es probable que algunas personas deban ser reasignadas a otros
proyectos mientras se esté adoptando esta nueva cultura.
Antes de continuar, te invito a que veas este enlace, Modelos de licenciamiento
Creative Commons: [Link]
Creación de un equipo DevOps
Algunas organizaciones (como Netflix) no tienen equipos independientes de
desarrollo y operaciones, en cambio, tienen un único equipo llamado No-Ops, que
comparte ambos roles y responsabilidades. Otras organizaciones han tenido éxito
con los equipos DevOps de enlace, que resuelven cualquier conflicto y fomentan la
colaboración. Dicho equipo está conformado por representantes de todos los equipos
y tienen una participación en la aplicación que está siendo desarrollada. Cualquiera
sea la organización de equipos, si decides tener un equipo DevOps, el objetivo más
importante es asegurarte de que funciona como un centro de excelencia, que
facilita la colaboración y no añade un nuevo nivel de burocracia.
Procesos DevOps
Anteriormente, hemos hablado sobre el papel que tienen las personas y la cultura
en la adopción de DevOps.
Los procesos definen lo que esas personas deben hacer y cuándo deben
hacerlo.
Por tanto, la organización puede tener una gran cultura de colaboración, pero si la
gente está realizando las tareas de forma errónea o, por el contrario, están
trabajando eficazmente, pero en el camino equivocado, el fracaso es todavía más
probable.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 21
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Como ya hemos mencionado, DevOps es una capacidad que afecta a toda la
empresa, haciendo que el negocio sea más ágil y que mejore la entrega de
características a los clientes. También podemos ir más allá y entenderlo como un
proceso de negocio: un conjunto de actividades o tareas que produce un resultado
específico (producto o servicio) para los clientes.
El proceso de negocio de DevOps consiste en llevar las capacidades fijadas
normalmente por los directivos, dueños o inversores del negocio, a través del
desarrollo y las pruebas, hasta que llegue a producción.
Aunque este proceso de negocio no es lo suficientemente maduro para ser
capturado en un flujo de procesos simples, es necesario poder capturar los procesos
que la organización utiliza actualmente para producir y entregar las características.
Esto servirá como punto de partida para realizar las modificaciones, cambios y
vueltas de tuerca necesarias para impulsar el cambio hacia una cultura DevOps.
En la Figura 3 podemos visualizar cómo estos objetivos de negocio se integran con
las tareas y capacidades del equipo de tecnología de la información (en adelante, TI).
En un ciclo de vida DevOps, personas y procesos deben integrarse bajo el lema de la
integración y entrega continua e incorporar las herramientas de software adecuadas
para un resultado exitoso.
El resultado de dicha integración permitirá crear una sinergia que beneficiará a los
clientes y usuarios finales, pero también a la organización, que ganará agilidad,
flexibilidad y eficiencia.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 22
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 3. Ciclo de vida DevOps. Fuente: elaboración propia.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 23
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.5. Factores que aceleran la adopción de DevOps
Para que la adopción de DevOps sea exitosa, es necesario que la organización
tenga el objetivo de innovar. Sin embargo, también es frecuente que la decisión de
implantar este enfoque se produzca por la aparición y repetición de problemas
recurrentes:
Figura 4. Problemas recurrentes en las organizaciones. Fuente: elaboración propia.
Procesos pensados para controlar y no para habilitar
Imaginemos el siguiente escenario: un equipo de cien desarrolladores necesita tener
acceso a los recursos de pruebas para realizar sus tareas habituales y cotidianas
(desarrollo, demos, etc.) y la empresa desea que estos recursos se consuman en la
nube con el objetivo de que sean más ágiles y evitar así una inversión en hardware.
En una organización tradicional, podrían surgir muchos inconvenientes si se diese a
los desarrolladores acceso a esos recursos (gasto descontrolado, poca visibilidad,
imposibilidad de prever, etc.). A continuación, probablemente se definiría un proceso
para recontar y contabilizar los recursos que se están consumiendo y, de alguna
forma, aprobar este consumo. Por último, es posible que se generase un workflow
(ciclo) de aprobaciones que, si bien funcionaría, dejaría mucho que desear en
términos de eficiencia y agilidad.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 24
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Desde el enfoque DevOps, debemos responder al interrogante de cómo se
puede implementar un sistema para que los desarrolladores puedan acceder
de forma eficiente y rápida a los recursos, con control y visibilidad.
La respuesta, como es de esperar, será diferente a la de una empresa tradicional. Se
definirán las políticas que permitan a los desarrolladores autoabastecerse de los
recursos necesarios, mediante unas limitaciones definidas a priori. Un ejemplo real
puede ser el de una empresa que cuente con un portal autoservicio (self-service) que
tenga un presupuesto ya aprobado para permitir al equipo que invierta en
herramientas y recursos, de acuerdo con las políticas que ha dictado la empresa. De
esta manera, se elimina la burocracia de los ciclos de aprobación.
Recordemos que este enfoque favorece la independencia, la responsabilidad, la
eficiencia y, por supuesto, la colaboración.
Falta de visibilidad
El hecho de establecer múltiples puntos de control es una forma de asegurar que
las tareas, las personas, los recursos y demás elementos que componen la
organización, sean gestionados de forma correcta. Sin embargo, también es sabido
que todos estos puntos de control y procesos burocráticos pueden generar cuellos
de botella o incluso generar una pérdida de tiempo y dinero por la monitorización de
aspectos que no generan ningún beneficio a la compañía.
En línea con lo que hemos comentado en el apartado anterior, el hecho de tener una
buena visibilidad reporta muchas más ventajas que ejercer un control excesivo. Por
decirlo de otra forma, una buena visibilidad en conjunto, con altos niveles de
responsabilidad y compromiso, permitirá al equipo reaccionar ante cualquier
situación y cambiar de rumbo, mientras que un control férreo ralentizará a todo el
equipo y no garantiza un resultado exitoso.
Otro caso de falta de visibilidad, lo podemos encontrar en las organizaciones que
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 25
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
utilizan cuentas Amazon Web Services (en siglas, AWS) no asociadas, lo que eleva
el gasto a nivel corporativo porque, al no haber una asociación de cuentas, no se
pueden aprovechar de los descuentos corporativos por volumen que ofrece el
proveedor de nube.
Poca capacidad de innovación
La innovación en sí misma implica agilidad. Resulta imposible realizar cambios
realmente significativos e innovadores en una organización encorsetada por una
maraña de reglas. Debe haber un cambio de filosofía en las empresas que aporte
más flexibilidad a sus procesos.
Algunas veces es fácil identificar los puntos de mejora, sin embargo, resulta difícil
encontrar la mejor solución posible a un determinado issue, así que aquí es donde la
innovación entra en escena. Hablando desde un punto de vista meramente técnico,
además de un buen análisis de la situación y de las posibles soluciones, es
importante que los equipos tengan la libertad para probar, cometer errores y
aprender de ellos.
En esto se basa, principalmente, la innovación, así que trataremos a este
proceso como un proceso de definición, prueba, error, éxito y /o aprendizaje;
un ciclo con tantas iteraciones como sean necesarias.
Dificultades técnicas evitables
DevOps aboga por la eliminación de la complejidad, ya que esta va en detrimento
de la productividad y la eficiencia. Seguramente conozcas aquel dicho que reza: «Lo
bueno, si simple, dos veces bueno». Pues bien, en muchos entornos las dificultades
técnicas que se perciben como «técnicas» son en realidad dificultades humanas y,
a menudo, están causadas porque se trabaja con procesos extremadamente
complejos, que no hacen más que incrementar los puntos de fallo.
En las organizaciones tradicionales, existen ciclos de aprobación de cambios de
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 26
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
código, comités de aprobación de pase a producción y, por supuesto, esto no hace
más que añadir complicaciones a la hora de revertir el pase y corregir el código. En
una organización DevOps, la gobernanza está en manos del equipo DevOps, y
ellos pueden acceder al código y subsanar cualquier problema que surja en un breve
plazo de tiempo, sin la necesidad de que un comité o departamento los autorice (esta
es la verdadera agilidad a la que hacemos referencia cuando hablamos de DevOps).
Miedo y resistencia al cambio
El miedo es endémico a la vida y al ser humano, de la misma forma que es el peor
enemigo de la innovación y la colaboración. Nos encontraremos con el simple miedo
al cambio, que incluso es un motivador positivo en las proporciones adecuadas, o el
miedo a la pérdida de control, que en el caso de DevOps debería entenderse como
un paso hacia la independencia y la visibilidad. Pero el peor, sin dudas, es el miedo a
l a pérdida del statu quo por parte de aquellas personas que quieren ser
imprescindibles.
En un equipo DevOps, las personas pueden jugar diferentes roles en el transcurso
de un proyecto, pero también comparten información sobre los avances, estados y
alcance, entre otras cosas. Aquellos miembros que se guardan información,
conocimiento y herramientas, creyendo que así serán imprescindibles, tienen cada
vez menos cabida en las organizaciones que desean crecer.
Como indica Paz Cariñena (2016), las personas imprescindibles no atesoran los
conocimientos como propios, sino que los comparten, están siempre predispuestas
a ayudar a los demás y a emprender nuevos retos. Estas personas son
imprescindibles porque sin ellas las cosas se podrían hacer (no vamos a decir que
no), pero con más esfuerzo o incluso con menos calidad. Pero lo más importante de
todo, es que el mundo gira cuando no están, porque consiguen «enseñar a pescar» y
no solo dan pescado cuando se necesita.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 27
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Esa es la fórmula que describe el espíritu de un DevOps: colaborar + compartir
+ ayudar + producir.
Shadow IT
El Shadow IT (o TI oculta), engloba a todas las tecnologías y elementos dentro de TI
que están fuera de control o simplemente son desconocidas. Siguiendo nuestro
enfoque de colaboración, innovación y agilidad, la falta de control no es el problema,
sino que lo es la no estandarización y la falta de visibilidad derivada de ello.
Es importante comprender que, en muchos casos, la necesidad imperiosa de ejercer
control es lo que ha causado el Shadow IT, es decir, la imposibilidad de acceder a los
recursos en tiempo y forma. Numerosas organizaciones, grandes o medianas, se han
visto en la tesitura de estar usando recursos en la nube antes de poder siquiera
diseñar una estrategia de nube.
Entre los ejemplos más frecuentes de Shadow IT, podemos destacar el uso de:
▸ Aplicaciones de almacenamiento en la nube, como Google Docs o Dropbox.
▸ Redes no permitidas (como la red pública de Internet).
▸ Bring your own device (en siglas, BYOD) no autorizado.
▸ Aplicaciones de terceros como las de sistema en la nube tipo Software as a Service
(SaaS).
Una de las principales razones que motivan a los empleados a usar aplicaciones no
autorizadas, además de su bajo coste, es la facilidad que estas ofrecen en cuanto a
acceso, mantenimiento y despliegue.
Entre las principales consecuencias que acarrea el Shadow IT podemos encontrar
(Rivas, 2018):
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 28
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
▸ Fuga de datos sensibles: a través de aplicaciones de terceros que no estén
debidamente supervisadas por el equipo de seguridad de TI.
▸ Procesos lentos: el despliegue de ciertas aplicaciones puede ralentizar u
obstaculizar el desempeño de los procesos de la organización.
▸ Ineficiencia en la resolución de problemas: en caso de que algún dispositivo o
aplicación de Shadow IT genere un incidente, puede resultar complicado para los
profesionales de TI encontrar la fuente del problema.
En el vídeo Herramientas DevOps en Cloud vamos a realizar un repaso sobre la
cultura DevOps. Veremos en qué consiste, las herramientas necesarias de hoy en
día para un ingeniero de desarrollo y de operaciones, así como las diferentes
tecnologías y buenas prácticas que debe conocer.
Accede al vídeo:[Link]
id=7d4798ff-24e4-4c2f-a417-aec800160291
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 29
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.6. Seguridad en DevOps (DevSecOps)
La falacia de la sofisticación
Los fallos de seguridad en los programas no tienen por qué ser sofisticados.
▸ ¿Alguno conoce StuxNet? Se aprovecha de una mala configuración por defecto de
los sistemas Windows en los puertos USB.
▸ ¿Alguien conoce el error de desbordamiento de búfer? Se aplica no solo en IT, sino
en los coches para modificar los cuentakilómetros. Se basa en que los números
necesitan representarse en tipos de datos y es necesario elegir el tipo adecuado y
proteger la operación matemática de modo adecuado para evitar dicho
desbordamiento.
Figura 5. Ejemplo de desbordamiento de búfer visualizado en un cuentakilómetros. Fuente: EcuRed, s.f.
DevOps se convierte en DevSecOps
La seguridad del software debe estar presente e incrustada en todas las fases
del ciclo DevOps para convertirlo en DevSecOps.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 30
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
El gráfico siguiente muestra cómo la seguridad es un proceso continuo, cómo los
elementos de detección temprana en el software y de detección durante la operación
son vitales para reducir el tiempo de exposición a las amenazas y evitar un mal
mayor.
Figura 6. Ciclo DevSecOps. Fuente: Claranet, s.f.
La aplicación de DevSecOps en la organización debe tener tres soportes que están
interrelacionados:
▸ Personas (los equipos que aplican e interiorización la seguridad desde el diseño,
que sienten que la seguridad es labor de todos).
▸ Procesos (ayudan con las automatizaciones a que la seguridad se verifique).
▸ Tecnología (determina el tipo de errores de seguridad inherentes al tipo de lenguaje
y al tipo de entornos donde se ejecuta).
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 31
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 7. Soportes de DevSecOps. Fuente: Cuesta, 2022.
La seguridad del software no es una lastra en el tiempo de desarrollo.
Cuanto antes se identifiquen los problemas, menos coste se tiene en la resolución.
Este principio shift-left que es conocido para las incidencias funcionales, rara vez
se aplica a las de seguridad que deben tomarse como un requisito funcional más
en el desarrollo.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 32
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 8. Pilares de la ciberseguridad. Fuente: Instituto Nacional de Ciberseguridad, 2017.
Hay que asegurar que los equipos entiendan que la seguridad es cuestión de
todos, que es vital para integrarla dentro del ciclo y eficientar costes y tiempo para
arreglar los problemas.
Interiorizar el cambio
DevSecOps es una filosofía, no es un producto que se compra. De hecho, es una
necesidad. Existen herramientas que ayudan a integrar la seguridad dentro del ciclo,
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 33
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
pero no hay una herramienta única que se pueda comprar e integrar para cubrir
todas las etapas. Es importante que las personas entiendan que la seguridad es
algo que debe hacerse en cada etapa y que no es algo que las herramientas per se
puedan solucionar.
¿Quién es el ingeniero DevSecOps?
El rol de ingeniero DevSecOps no es un superhombre. Puede ser tanto un perfil de
seguridad de software tradicional que evoluciona a un mundo agile, o un perfil de
ingeniero DevOps que se enriquece con conocimientos de seguridad. No es una
tarea difícil, pero exige que los desarrolladores asuman el principio de que la
seguridad debe estar en el diseño del código desde el inicio.
Figura 9. El perfil del ingeniero DevSecOp. Fuente: Singh, 2022.
¿Quién es el Security Champion?
El rol del Security Champion en el equipo es importante para divulgar los
principios DevSecOps y asegurar que se están aplicando.
Su función debe empezar creando buenas prácticas y dando formación a los equipos
sobre la importancia de iniciar las pruebas de seguridad en las etapas más iniciales
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 34
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
del desarrollo. Y puede ser cualquier miembro del equipo o puede estar en una tribu,
según el modelo organizativo.
En el apartado A fondo tienes a tu disposición un recurso con el que podrás ampliar
información.
Formación en seguridad
Practicar la codificación segura es deber de todos los miembros del equipo
DevOps, asegurando que se cumplen las prácticas recomendadas. Aquí, la
formación en los lenguajes de programación es importante para evitar un mal uso
de funciones y errores. Puede parecer un coste, pero un buen conocimiento del
lenguaje evita problemas de seguridad.
Debe completarse con formación en temas de seguridad a los miembros del equipo,
porque el factor humano es uno de los más vulnerables en la cadena de seguridad
(como el phishing y los olvidos de mantener actualizado a los últimos niveles de
parches el software).
Seguridad como parte integrante del modelo
Desde el inicio de la fase de planificación incorporando los requisitos no funcionales
de seguridad y durante todo el ciclo.
Dar a los requisitos de seguridad el mismo peso que los requisitos funcionales.
Esto implica agregar controles y procesos de seguridad, así como la automatización
de las tareas principales de seguridad en todo el ciclo de vida. Así, se permite a los
desarrolladores abordar vulnerabilidades conocidas por adelantado y, por lo tanto,
proporcionar software seguro y resistente.
Probar la seguridad durante todo el ciclo
Para asegurar que en todo momento hemos incorporado seguridad en el ciclo,
vamos a realizar pruebas de seguridad dentro del proceso continuo y como una
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 35
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
parte integral del ciclo de desarrollo. Es decir, tendremos que realizarlas en:
▸ Aplicaciones.
▸ Api.
▸ Contenedores.
▸ Datos.
▸ Procesos.
▸ Microservicios desplegados.
El objetivo es que cuanto antes localicemos los errores, más fácil será
eliminarlos. Y así, minimizar las vulnerabilidades sin importar dónde
aparezcan.
Automatizar todo lo posible
La automatización reduce errores de seguridad porque los programadores pueden
ser muy buenos, pero son humanos. La labor del DevSecOps es ayudarles con la
introducción de automatismos y herramientas que validen el código en busca de
problemas de seguridad.
Estas herramientas, principalmente de análisis estático de código en los entornos de
desarrollo, pueden ahorrar tiempo del ciclo mientras que una mala elección puede
complicarlo. Y si es posible, el análisis se debe repetir en entorno de prueba antes de
empaquetar las soluciones para comprobar errores de seguridad en la integración.
Aparte de reducir los errores humanos, la automatización de los chequeos de
la seguridad junto con la gestión de la configuración, las pruebas integradas y
otras tareas relativas a los procesos reducen la carga de trabajo de los
equipos DevOps.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 36
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Hay que automatizar todas las pruebas de funcionalidad y de seguridad no funcional
tanto a nivel de aplicación como de infraestructura y configuración, así como
realizar pruebas de seguridad de la lógica de la aplicación. Esto es lo que
denominaremos Security as Code.
Monitorizar siempre el cumplimiento de la seguridad del software
Como hemos visto en el gráfico de Gartner, resolver los incidentes lo antes posible
en el ciclo es mejor. Por ello, es necesario obtener información en tiempo real, tanto
del desarrollo como de la operación, para permitir tomar decisiones más acertadas y
rápidas que reduzcan el impacto de las vulnerabilidades. Además, la recopilación de
estos datos puede ayudar a mejorar el ciclo de vida con la detección de fallas que
puedan ser resueltas con mejores automatizaciones.
Deberá habilitarse logs antes y después de una detección de vulnerabilidad e
integrar en los cuadros de seguimiento.
Herramientas para integrar seguridad en el ciclo
Hay varias herramientas DevOps que podemos usar para asegurar, con muy
pequeñas adaptaciones, algunas de estas funciones de seguridad:
▸ Docker: integrando seguridad en la gestión de los contenedores.
▸ Chef: para automatizar pruebas de seguridad en los despliegues.
▸ Puppete: para probar el cumplimiento y aplicar políticas de seguridad en la
integración.
▸ Ansible: para definir y automatizar las mejores prácticas de seguridad como pueden
ser la aplicación de políticas estándares de seguridad, configuración de reglas de
firewall, bloqueo de ciertos usuarios, etc.
▸ SaltStack: para finalmente automatizar reglas de seguridad.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 37
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Pero no se debe olvidar que los propios programas y procesos de gestión de
seguridad pueden tener errores de codificación y, por tanto, es recomendable
realizar chequeos manuales dentro de las pruebas de seguridad.
En la sección A fondo tienes disponible un recurso con el que podrás completar
información.
Usando proveedores en Cloud, como AWS o Azure, es importante señalar que
existe el concepto de «responsabilidad compartida» de infraestructura en el
que el proveedor se encarga de la seguridad en unos niveles dejando al
usuario el resto de los niveles.
En este caso, el margen de maniobra de reducir vulnerabilidades en esa parte se
reduce a la notificación a los proveedores de soporte, aunque su eficacia suele ser
bastante alta.
Figura 10. Responsabilidad Compartida entre proveedor Cloud y usuario. Fuente: Amazon Web Service, 2022.
Todos los proveedores de Cloud ofrecen herramientas de modo gratuito para
realizar un chequeo básico de la infraestructura (AWS Trusted Advisor, Azure
Advisor, etc.) y, también de modo avanzado por un pago de servicio, por ejemplo, el
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 38
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
AWS Inspector.
En caso de querer usar herramientas gratuitas para revisar la infraestructura y
configuración de nuestra instalación AWS, existen herramientas de código abierto
como la herramienta Scout2.
Puedes descargarte esta herramienta a través de la siguiente dirección web:
[Link]
De este modo vamos a ir incorporando herramientas en todo el ciclo DevOps, siendo
un ejemplo no extensivo, el siguiente:
Figura 11. Herramientas de un ciclo DevOps. Fuente: Bhanda y Badam, 2022.
Manifiesto DevSecOps
Para acabar el tema, como no podía ser de otra manera, y como resumen hay que
recordar el Manifiesto DevSecOps ([Link], 2020) para tener siempre
presente que la función de la seguridad no es entorpecer al desarrollo y a la
operación, sino ayudar que el producto tenga mayor calidad y menos
posibilidades de fallo, en este caso por temas de seguridad.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 39
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Los principios son los siguientes:
«Leaning in over Always Saying «No».
Data & Security Science over Fear, Uncertainty and Doubt.
Open Contribution & Collaboration over Security-Only Requirements.
Consumable Security Services with APIs over Mandated Security Controls &
Paperwork.
Business Driven Security Scores over Rubber Stamp Security.
Red & Blue Team Exploit Testing over Relying on Scans & Theoretical Vulnerabilities.
24x7 Proactive Security Monitoring over Reacting after being Informed of an Incident.
Shared Threat Intelligence over Keeping Info to Ourselves.
Compliance Operations over Clipboards & Checklists.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 40
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
9.7. Referencias bibliográficas
Amazon Web Service. (2022). Modelo de responsabilidad compartida.
[Link]
Bhanda, S. y Badam, R. (2022). Comprehensive List of DevOps Tools 2022. Qentelli
[Link]
Bravent. (2019, junio 3). Cómo aplicar la cultura DevOps a tu empresa.
[Link]
Buehring, S. (2020, diciembre 2021). What is DevOps: Free ebook. Knowledge Train.
[Link]
Claranet. (s.f.). La mentalidad DevSecOps: de la metodología lineal al «shifting left y
shifting right». [Link]
Cuesta, J. (2022, marzo 22). Evolucionando hacia DevSecOps. OpenExpo.
[Link]
Devsecops. (2020). Manifiesto. [Link]
EcuRed. (s.f.). Desbordamiento de búfer.
[Link]
Instituto Nacional de Ciberseguridad. (2017, abril 17). 10 pilares básicos para
construir la ciberseguridad de tu negocio. Blog de INCIBE.
[Link]
ciberseguridad-tu-negocio
Paz Cariñena Amigo. (2016, enero 28). Personas imprescindibles… Las que se lo
creen y las que de verdad lo son [Publicación]. Linkedin. Recuperado el 9 de
noviembre de 2022.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 41
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
[Link]
son-paz/
Rivas, G. (2018, agosto 17). Shadow IT: ¿Cómo hacer de la TI invisible una
oportunidad para tu organización? Tech-Blog. [Link]
[Link]/es/shadow-it/
Singh, M. (2022, febrero 23). DevSecOps Engineers Roles and Responsibilities.
DevOpsSchool. [Link]
responsibilities/
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 42
Tema 9. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
A fondo
What is DevOps?
IBM Technology. (2019, septiembre 9). What is DevOps? [Vídeo]. YouTube.
[Link]
Andrea Crawford, ingeniera y CTO (Chief Technology Officer) de DevOps en IBM,
explica con sus propias palabras qué es DevOps, cuál es valor que aporta a la
organización y cómo sus prácticas y herramientas intervienen en el ciclo de vida de
una aplicación.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 43
Tema 9. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo
La cultura DevOps
Exceltic. (2018, octubre 26). La cultura DevOps [Vídeo]. YouTube.
[Link]
Este recurso te ayudará a comprender un poco más sobre la cultura DevOps dentro
de las empresas y sus beneficios.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 44
Tema 9. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo
DevSecOps Manifiesto
Página de DevSecOps. [Link]
A semejanza del Agile Manifesto, los autores plasman su filosofía de trabajo: cómo
acercar las operaciones de seguridad al producto y al usuario final y no al revés.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 45
Tema 9. A fondo
© Universidad Internacional de La Rioja (UNIR)
Test
1. DevOps es un término relativamente nuevo para describir lo que también ha sido
llamado como:
A. Gestión de desarrollo y operaciones.
B. Administración de desarrolladores.
C. Administración de sistemas ágiles.
D. Ninguna de las anteriores.
2. En un entorno DevOps, los equipos son responsables de:
A. La gestión TI de la empresa.
B. Ofrecer nuevas características, pero también estabilidad, escalabilidad y
fiabilidad.
C. Ofrecer nuevos productos hardware y software.
D. Ofrecer integración entre desarrolladores y administradores.
3. Un Entorno DevOps exitoso procura:
A. Construir un puente basado en la comunicación y la colaboración.
B. Construir una sólida relación entre dirección y departamento TI.
C. Construir entornos de pre y producción.
D. Ninguna de las anteriores.
4. ¿Cuál no es una oportunidad adicional en una herramienta de automatización en
el mundo DevOps?
A. Integración de incidentes.
B. Infraestructura escalable.
C. Herramientas de compilación y desarrollo.
D. Flujos de trabajo de entrega continua.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 46
Tema 9. Test
© Universidad Internacional de La Rioja (UNIR)
Test
5. En el corazón de los principios DevOps se encuentra el:
A. Aprendizaje ágil.
B. Aprendizaje múltiple.
C. Aprendizaje empresarial.
D. Aprendizaje colaborativo.
6. La estrategia de DevOps se centra en la capacidad empresarial para:
A. La entrega del producto log.
B. La entrega continua de software.
C. La entrega de características funcionales.
D. Adaptarse a la tecnología.
7. Para que la adopción de DevOps sea exitosa, es necesario que la organización
tenga el objetivo de:
A. Gestionar el cambio.
B. Adaptarse.
C. Innovar.
D. Mejorar.
8. El Shadow IT (o TI oculta), engloba a todas:
A. Las personas que no son del departamento de TI.
B. Las personas que se mueven al departamento de TI desde otros
departamentos.
C. Las directrices generadas desde el departamento de TI que no se cumplen.
D. Las tecnologías y elementos dentro de TI que están fuera de control.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 47
Tema 9. Test
© Universidad Internacional de La Rioja (UNIR)
Test
9. Las métricas de evaluación tradicionales pasan a un segundo plano y la
evaluación de los objetivos de la empresa debe centrarse en:
A. La satisfacción de los requisitos del product backlog.
B. La satisfacción del cliente.
C. Los beneficios empresariales trimestrales.
D. Con cultura DevOps no se necesita realizar métricas de evaluación.
10. La aplicación de DevSecOps en la organización debe tener tres soportes
interrelacionados:
A. Personas, procesos y normas.
B. Principios, procesos y personas.
C. Procesos, tecnología y negocio.
D. Personas, procesos y tecnología.
Administración de Sistemas, Virtualización, Cloud Computing y DevOps 48
Tema 9. Test
© Universidad Internacional de La Rioja (UNIR)