0% encontró este documento útil (0 votos)
13 vistas27 páginas

DevOps Resumen General

El documento analiza la metodología DevOps como un enfoque integral para mejorar la eficiencia en el desarrollo y operación de software, abordando tanto aspectos técnicos como humanos. Se detallan roles, actividades y principios de DevOps, destacando su capacidad para derribar barreras entre equipos de desarrollo y operaciones, promoviendo la colaboración y la agilidad. Además, se enfatiza la importancia de la integración y despliegue continuo, así como la automatización de pruebas para optimizar el ciclo de vida del software.

Cargado por

Samuel Reyes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas27 páginas

DevOps Resumen General

El documento analiza la metodología DevOps como un enfoque integral para mejorar la eficiencia en el desarrollo y operación de software, abordando tanto aspectos técnicos como humanos. Se detallan roles, actividades y principios de DevOps, destacando su capacidad para derribar barreras entre equipos de desarrollo y operaciones, promoviendo la colaboración y la agilidad. Además, se enfatiza la importancia de la integración y despliegue continuo, así como la automatización de pruebas para optimizar el ciclo de vida del software.

Cargado por

Samuel Reyes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Tabla de contenido

1. Introducción................................................................................................... 2
1.1. Objetivos..................................................................................................... 2
1.2. Contexto: Problemas en el desarrollo de software tradicional...................................2
1.3. ¿Qué es DevOps?.......................................................................................... 3
2. Desarrollo....................................................................................................... 4
2.1. Roles en DevOps........................................................................................... 4
2.2. Actividades en DevOps.................................................................................... 6
2.4. Competencias en DevOps.............................................................................. 11
2.5. Fases en DevOps......................................................................................... 13
2.6. Recursos en DevOps..................................................................................... 16
2.7. Prácticas en DevOps.................................................................................... 18
3. Conclusión.................................................................................................... 25
4. Referencias................................................................................................... 26

Tabla de ilustraciones
Ilustración 1- Entrega Continua e Implementación continua - AWS...................................................7
Ilustración 2 DevOps VS DevSecOps................................................................................................13
Ilustración 3 – Ciclo de DevOps y sus fases......................................................................................15
Ilustración 4 - Herramientas por Fases de desarrollo en DevOps....................................................18
Ilustración 5 - Pirámide DevOps Automatización de Pruebas..........................................................19
Ilustración 6 - Control de Versiones..................................................................................................22
Ilustración 7 - Monitoreo Continuo DevOps.....................................................................................23
Ilustración 8 - Beneficios DevSecOps................................................................................................24
1. Introducción

1.1.Objetivos
El presente reporte tiene como objetivo analizar y profundizar en la metodología
DevOps como un enfoque integral para mejorar la eficiencia en el desarrollo y
operación de software, considerando no solo los aspectos técnicos de programación
y operación, sino también el componente humano de colaboración entre los
equipos de trabajo. A través de este análisis, se busca comprender cómo DevOps
aborda los desafíos comunes en el contexto del desarrollo de software tradicional,
creando una sinergia entre los equipos de desarrollo (Dev) y operaciones (Ops)
mediante prácticas de integración continua, despliegue automatizado y monitoreo
constante.

Además, este reporte detalla los elementos fundamentales de DevOps, incluyendo


los roles, actividades, productos de trabajo, competencias, fases, recursos y
prácticas, con el fin de proporcionar una comprensión completa de cómo DevOps
optimiza los tiempos de entrega de software y fomenta una colaboración continua
entre los equipos de trabajo mencionados. Este análisis permitirá reconocer los
beneficios de DevOps en el desarrollo de software y en el fortalecimiento de la
cultura de colaboración y trabajo en equipo dentro de las organizaciones.

1.2.Contexto: Problemas en el desarrollo de software tradicional


En los enfoques de desarrollo de software tradicionales, los equipos de Desarrollo y
Operaciones trabajan de manera independiente, es decir, con objetivos y
prioridades diferentes. Por un lado, los desarrolladores se enfocan en innovar, crear
y mejorar el producto, buscando optimizar e implementar nuevas funcionalidades,
así como realizar lanzamientos constantes de productos. Por otro lado, el equipo de
Operaciones tiene la responsabilidad de mantener el sistema estable, seguro y
disponible para los usuarios, lo cual los lleva a ser más conservadores respecto a
los cambios. Estas diferencias de enfoque crean una separación entre los dos
equipos, generando conflictos no solo en el desarrollo y entrega del producto, sino
también en la colaboración y trabajo en equipo. Esta separación levanta una barrera
entre ambos equipos, conocida en DevOps como el “muro de la confusión”.

Este muro genera problemas significativos tanto en la entrega y desarrollo de


productos de software como en el ambiente de trabajo. La falta de comunicación
efectiva y coordinación entre los equipos da como resultado retrasos en las
entregas, problemas de calidad y una cultura de culpa y conflictos internos,
afectando la eficiencia y productividad dentro de la organización.
En este contexto, DevOps surge como una solución que, en primera instancia,
promueve la colaboración continua y la integración entre estos dos equipos,
derribando el “muro de la confusión” y permitiendo que trabajen en conjunto para
desarrollar y entregar productos de software de calidad de manera ágil, eficiente y
confiable para los usuarios. Con prácticas como CI/CD, DevOps responde a los
inconvenientes que surgen en el desarrollo de software con métodos tradicionales.
DevOps no solo aborda los desafíos técnicos, sino que también responde a los
desafíos culturales, promoviendo una comunicación efectiva y fomentando el
trabajo en equipo entre ambos equipos.

1.3.¿Qué es DevOps?
“DevOps es más que solo equipos de desarrollo y operaciones trabajando juntos.
Es más que herramientas y prácticas. DevOps es una mentalidad, un cambio
cultural, donde los equipos adoptan nuevas formas de trabajar. (Atlassian, s.f.)”.

Teniendo en cuenta el contexto descrito anteriormente decimos que DevOps es una


metodología de desarrollo de software que también involucra un cambio en la
cultura laboral de los equipos que integran el desarrollo de software, Desarrollo
(Development) y Operaciones (Operations), integrándolos para mejorar la
colaboración, agilidad y eficiencia de todo el ciclo de vida del software. Esta
metodología busca derrumbar ese muro de la confusión mencionado que está
cimentado por la desconexión y falta de comunicación que, en un contexto
tradicional,. separan a estos dos equipos, promoviendo el trabajo en equipo y la
colaboración continua en cada fase del proceso de desarrollo.

DevOps se basa en principios como CI/CD, integración continua (CI) y el


despliegue continuo (CD), que permite a los equipos integrados desarrollar y
probar cambios de manera rápida y segura. Estos principios permiten un desarrollo
de software ágil que reduce el tiempo entre la creación y lanzamiento a producción
de nuevas funcionalidades del producto, adaptando tanto el producto como a las
organizaciones a las necesidades de los usuarios, que son bastante volátiles, y a los
cambios del mercado. Además de ser una metodología ágil, DevOps también
promueve el uso de herramientas de automatización y monitoreo proactivo,
permitiendo que los problemas se detecten de manera rápida y eficiente, es decir en
el menor tiempo posible identificar el como el por que de la falla o problema
optimizando el rendimiento de todo el sistema en el ambiente de producción.

Uno de los ejes centrales de esta metodología es la capacidad de transformar la


cultura organizacional de la empresa, fomentando un ambiente laboral
completamente diferente al que se encuentra en los contextos tradicionales,
inculcando una mentalidad de trabajo en equipo, colaboración y responsabilidad
compartida, creando una sinergia entre los equipos que no solo mejora la calidad y
velocidad de entrega del software, sino que también reduce conflictos y promueve
una cultura de confianza dentro de la organización.

2. Desarrollo

2.1.Roles en DevOps
En DevOps, a diferencia de los enfoques tradicionales no están marcados a una
estructura rígida de desarrollo y operaciones, al contrario, cada rol trabaja de forma
integrada y colaborativa con el fin de lograr un trabajo ágil y automatizado en el
desarrollo, siempre trabajando de la mano con los otros roles. A continuación, se
detallan los roles clave:

1. Desarrollador de software
a. Descripción y responsabilidades
En DevOps los desarrolladores van más allá de solo codificar, o como
su nombre lo indica desarrollar software, en DevOps se encargan de
escribir, probar y mantener el código del software, esto les asigna
responsabilidades como la participación activa en la automatización de
pruebas y despliegues con el fin de asegurarse de que el código se
integra y despliega sin problemas en producción, esta participación se
ve reflejada en la creación de scripts para pruebas automatizadas y en la
configuración de pipelines de CI/CD.
b. Colaboración con otros roles
Según Accelerate de Nicole Forsgren, Jez Humble y Gene Kim, la
coordinación entre los equipos de desarrollo y operaciones en DevOps
es esencial para tener una eficiencia acorde a las necesidades de los
usuarios y de las demandas actuales, tal como se menciona, los
desarrolladores no solo trabajan técnicamente en el proceso de
integración y despliegue si no que tambien se conforma un habito
cultural y laboral que rodean estos procesos logrando una adaptación
rápida a las demandas del negocio. Esta colaboración entre los equipos,
colaboración técnica y cultural, permite generar agilismo en la empresa,
un termino que involucra crear sinergia entre los equipos, técnicamente,
automatización de pruebas, control de versiona miento y construcción
de pipelines. (Nicole Forsgren J. H.)

2. Ingeniero DevOps
a. Descripción y responsabilidades
“Un ingeniero de DevOps debe tener habilidades que abarquen tanto el
desarrollo como las operaciones, así como habilidades interpersonales
para ayudar a cerrar las divisiones entre los equipos aislados.”
(Atlassian, s.f.).
Este rol es fundamental para trabajar con DevOps, su función esencial
es ser el puente, es decir, el mediador entre los desarrolladores y los
administradores de sistemas con el fin de lograr un despliegue ágil y
seguro, técnicamente los ingenieros DevOps configuran la
infraestructura necesaria para que sea eficiente el proceso de desarrollo
y se ejecute sin impedimentos, gestionan las herramientas de CI/CD,
orquestación de contenedores y los ya mencionados scripts de
automatización que son clave en DevOps, facilitando tanto
técnicamente como culturalmente la construcción de un ambiente de
colaboracion.
b. Colaboración con otros roles
Como se mencionó en la descripción del rol, la colaboracion con los
otros roles del ingeniero DevOps es esencial, es el puente que hace que
los desarrolladores y los administradores de sistemas trabajen de la
mano y colaborando mutuamente, logrando así un despliegue continuo
sin inconvenientes y ágil. The DevOps Handbook destaca cómo los
ingenieros DevOps facilitan un flujo de trabajo que conecta desarrollo,
QA, IT y seguridad, logrando así una integración continua que culmina
en un despliegue eficiente y seguro. Este enfoque del rol asegura que
tanto técnicamente como culturalmente se cree esa sinergia entre los
equipos técnicos permitiendo crear un contexto estable y seguro,
enfocando la importancia de construir sistemas agiles, productivos y
sostenibles mediante el uso de plataformas de autoservicio y
herramientas automatizadas. (Gene Kim, 2021).

3. Administrador de sistemas
a. Descripción y responsabilidades
Como papel fundamental de este rol tenemos que sigue siendo esencial
para la configuración y mantenimiento de los servidores y en general la
infraestructura en la que se ejecuta las aplicaciones. En DevOps, las
responsabilidades de este puesto se han transformado, centrándose en
acciones que incrementan la confiabilidad y escalabilidad del sistema,
administrando los ambientes de desarrollo y los de prueba y producción,
garantizando la disponibilidad, escalabilidad y seguridad de la
infraestructura. Las practicas de este rol se enfocan en los principios de
Site Reliability Engineering (SRE) para mejorar el rendimiento y
minimizar interrupciones. Como se señala en Site Reliability
Engineering: How Google Runs Production Systems, el fin de SRE es
enfocar las tareas de administración en torno al objetivo de lograr un
sistema ágil, eficiente y flexible en todo momento, destacando la
importancia de que este sistema debe ser lo mas seguro y fiable posible,
siendo los aspectos fundamentales para que cualquier sistema operativo
sea eficiente.
b. Colaboración con otros roles
Así como los otros roles se trabaja en conjunto en una cultura de
colaboracion con el fin de lograr un agilismo y despliegue continuo y
seguro de los productos de software, específicamente junto al ingeniero
DevOps trabajan en colaboracion para optimizar la infraestructura de
los sistemas, garantizando que esta este estable y soporte el trabajo
desarrollado por el equipo de desarrollo y cumpla con los estándares de
seguridad, tambien colaboran en la integración de herramientas de
monitoreo y resolución de incidentes que estén afectando la operación
de los servicios.

4. QA/Tester
a. Descripción y responsabilidades
Los QA y testers en DevOps no solo ejecutan pruebas, tambien se
encargan de automatizar este proceso, participan en el desarrollo y
mantenimiento de pruebas automatizadas que incluyen pruebas
unitarias, de integración y de regresión asegurando que cualquier
producto sea de alta calidad.
b. Colaboración con otros roles
Trabajan muy en conjunto con los desarrolladores para entender la
lógica del trabajo o código, así automatizar las pruebas entorno a ese
flujo de código para que sean correctas, además de trabajar en
colaboracion con los ingenieros DevOps para integrar estas pruebas a
los pipelines de CI/CD.

2.2.Actividades en DevOps
Las actividades en DevOps son el eje central para lograr su meta como método de
desarrollo enfocado en colaboracion y automatización, estas actividades permiten
que el ciclo de vida del desarrollo y despliegue sea eficiente pero sobre todo
continuo y estable, así como tambien permiten acelerar los tiempos de entrega e
incrementar la calidad y confiabilidad del producto. A continuación, se detallan las
actividades principales en el contexto DevOps:

1. Integración continua (CI)


a. Descripción
“La integración continua (CI) es la práctica de automatizar la
integración de los cambios de código de varios contribuidores en un
único proyecto de software. Es una de las principales prácticas
recomendadas de DevOps, que permite a los desarrolladores fusionar
con frecuencia los cambios de código en un repositorio central donde
luego se ejecutan las compilaciones y pruebas.” (Attlassian Integracion
Continua, s.f.).

La integración continua es una actividad central y primordial en


DevOps que se centra en estar desarrollando constantemente cambios en
los códigos, cambios que se someten a unas pruebas automatizadas con
el fin de descartar que estos cambios tengan errores o se generen
conflictos con otras partes del sistema. Esto permite identificar y
solucionar problemas de manera temprana, evitando que errores en el
código generen conflictos mayores en el entorno de producción del
sistema.
b. Impacto en la eficiencia:
La integración continua fomenta el agilismo, reduciendo el tiempo de
revisión y prueba manual, otorgando un flujo de trabajo mas eficiente y
ágil. Según Atlassian, la CI favorece a que los equipos identifiquen
problemas de integración de manera temprana, mejorando la
colaboracion y reduciendo la fricción entre los desarrolladores y
administradores de sistemas.

2. Despliegue continuo (CD)


a. Descripción
“La entrega continua es un enfoque en el que los equipos lanzan
productos de calidad con frecuencia y de forma predecible desde el
repositorio de código fuente hasta la producción de forma
automatizada.” (Atlassian Entrega Continua, s.f.).

El despliegue, entrega continua o CD automatiza y agiliza el proceso de


entregar cambios en el código al entorno de producción de manera
segura y controlada. Cuando el código pasa todas las pruebas en el
proceso de CI, este se despliega automáticamente en producción o en
entornos de preproducción, esta automatización reduce enormemente el
riesgo de errores humanos y acelera el proceso de despliegue.
b. Impacto en la eficiencia:
Esta actividad permite que los cambios desarrollados lleguen de manera
segura, ágil y eficiente a los usuarios, adaptándose mejor a las
necesidades de estos y las del mercado. De acuerdo con AWS, la
implementación de CD permite que las empresas lancen actualizaciones
de manera rápida y constante, otorgando a los usuarios una experiencia
agradable y encaminada a superar las demandas actuales. (Amazon Web
Services, s.f.)
Ilustración 1- Entrega Continua e Implementación continua - AWS

3. Automatización de pruebas
a. Descripción
La automatización de pruebas es una practica clave en DevOps que
garantiza que cada desarrollo o cambio de software cumpla con los
estándares de calidad antes de su despliegue o lanzamiento. Estas
pruebas incluyen como ya se ha mencionado pruebas unitarias, de
integración, de regresión y pruebas funcionales, pruebas que, a
comparacion de las pruebas manuales reducen enormemente el tiempo y
los recursos necesarios.
b. Impacto en la eficiencia
Automatizar las pruebas da paso a que se identifiquen de manera
acertada y eficiente defectos que puedan tener los códigos
desarrollados, evitando fallas en el despliegue o lanzamiento de estos
cambios, permitiendo que los desarrolladores entreguen actualizaciones
de manera continua sin comprometer la calidad y confiabilidad del
sistema. GitLab menciona que la automatización de pruebas disminuye
enormemente el riesgo de errores en producción, creando un entorno de
pruebas seguro y confiable que permite que los desarrolladores se
enfoquen en mejoras y cambios continuos en lugar de correcciones
constantes del código.

“la automatización de pruebas es más rápida y efectiva que las pruebas


manuales. Reduce la posibilidad de que se produzcan costosos errores
humanos y elimina las barreras de comunicación entre los miembros
del equipo, lo que ahorra tiempo y dinero.” (GitLab, s.f.).

4. Monitoreo y Retroalimentación Continua


a. Descripción
El monitoreo en DevOps es esencial para detectar, en tiempo real, el
estado de los ambientes de producción. Utilizando monitoreo proactivo,
los equipos DevOps observan métricas de cómo se está comportando el
sistema, esto incluye uso de recursos, tiempos de respuesta, errores
presentados, cantidad de errores y donde se están presentando estos. La
retroalimentación obtenida a través del monitoreo le permite al equipo
mejorar el sistema y los cambios que se estén realizando, planificando y
desarrollando los ajustes necesarios según lo obtenido en las métricas
mencionadas del software en el entorno de producción.

b. Impacto en la eficiencia:
El monitoreo continuo detecta y resuelve problemas antes de que se
afecten a los usuarios finales, permitiendo que los equipos ajusten el
software en función de las métricas detectadas, favoreciendo tanto al
sistema como a la experiencia del usuario.

2.3.Productos de trabajo (Work Products)


En DevOps, los productos de trabajo son resultados tangibles que contribuyen a
que los procesos de desarrollo y operaciones, antes aislados y separados, fluyan de
manera colaborativa, continua y eficiente. Estos productos van desde el código
fuente hasta su respectiva documentación que facilita la comunicación y
colaboracion entre los equipos. A continuación, se describen los productos de
trabajo clave en un proceso DevOps:

1. Código Fuente
a. Descripción
El código fuente es la parte central de cualquier proceso de desarrollo
de software. Este se almacena y gestiona mediante el control de
versiones como Git, permitiendo a los equipos de desarrollo realizar
cambios de manera estructurada y colaborativa. Aquí, el control de
versiones es de mucha importancia pues es esencial para verificar
cambios, revertir errores y como se menciona facilitar la colaboracion
en equipos grandes o distribuidos.
b. Importancia
Como se menciona el código versionado es la base de cualquier
proyecto de software, este código versionado permite realizar las
prácticas de integración continua, donde se fusionan los distintos
códigos versionados desarrollados y se prueban constantemente, Según
Atlassian, el uso de un sistema controlado de versiones mejora
enormemente la eficiencia de los equipos de desarrollo sobre todo al
usar DevOps, ofreciendo visibilidad y control sobre el código fuente.

“El control de versiones, también conocido como "control de código


fuente", es la práctica de rastrear y gestionar los cambios en el código
de software. Los sistemas de control de versiones son herramientas de
software que ayudan a los equipos de software a gestionar los cambios
en el código fuente a lo largo del tiempo. A medida que los entornos de
desarrollo se aceleran, los sistemas de control de versiones ayudan a
los equipos de software a trabajar de forma más rápida e inteligente.
Son especialmente útiles para los equipos de DevOps, ya que les
ayudan a reducir el tiempo de desarrollo y a aumentar las
implementaciones exitosas.” (Attlassian Control de Versiones, s.f.).

2. Pipelines de CI/CD
a. Descripción
Los pipelines de integración son pasos por seguir o flujos de trabajo
automatizados enfocados en la integración y despliegue continuo de
DevOps (CI/CD), estos permiten compilar, probar y desplegar los
códigos fuente de manera eficiente y segura. Cada pipeline incluye una
serie de etapas, como compilación, pruebas automatizadas y despliegues
en los diferentes entornos como prueba, preproducción y producción.
Estos pipelines minimizan los errores humanos, minimiza los riesgos y
asegura que los cambios del producto sean de la mejor calidad.
b. Importancia
Los pipelines de CI/CD son clave para que cada cambio o producto que
se desarrolle se haga de manera ágil y continua, pues estas aseguran que
cada desarrollo o cambio en los códigos pasen por las pruebas
automatizadas y se verifiquen correctamente antes de llegar al entorno
de producción. Como lo menciona AWS, los pipelines de CI/CD
permiten una entrega rápida y segura, reduciendo enormemente los
tiempos de lanzamiento de nuevos productos y la probabilidad de
errores en producción. (Amazon Web Services, s.f.).

3. Documentación
a. Descripción
La documentación en DevOps incluye manuales de usuario y guías de
instalación, pero también incluye documentación de procesos,
configuraciones y arquitectura del sistema. Esta documentación es
fundamental para que se del trabajo colaborativo que se busca en
DevOps ya que ayuda a los equipos otorgando información importante
de como operar, configurar y resolver problemas del sistema.
b. Importancia
Una documentación especifica y accesible para todo el equipo ayuda a
que los equipos puedan entender y configurar el sistema de manera ágil.
En DevOps, donde el cambio es un evento constante, la documentación
asegura que las mejores prácticas y procesos estén claros para todo el
equipo, promoviendo así la colaboración ente ellos y reduciendo el
tiempo de adaptación para posibles nuevos integrantes.

4. Métricas y Reportes de Monitoreo


a. Descripción
Los reportes y métricas de monitoreo son productos de trabajo clave que
permiten observar el estado del sistema en tiempo real, así como tener
un histórico de como se ha comportado el sistema durante un tiempo
establecido para almacenar. Estos reportes incluyen métricas como se
había mencionado sobre la disponibilidad del sistema, tiempos de
respuesta, tasa de errores, numero de errores, donde se encuentran esos
errores, uso de recursos, entre otras que pueden ser de utilidad.
b. Importancia
Las métricas y el monitoreo son esenciales para detectar problemas y
diagnosticarlos de manera proactiva, es decir, antes de que afecten a los
usuarios finales.

2.4.Competencias en DevOps
Para que DevOps funcione de manera correcta, es esencial que los equipos
cumplan con las competencias necesarias, que tal como se desarrolla este método,
muchas van más allá de habilidades técnicas, por ejemplo, es esencial tener
habilidades blandas como trabajo en equipo, colaboracion, adaptabilidad,
comunicación entre otras. Las competencias en DevOps abarcan diversas áreas,
desde conocimientos de automatización y orquestación hasta el manejo de la
infraestructura como código. A continuación se presentan las competencias
fundamentales en un equipo de DevOps eficiente:

1. Habilidades en automatización y CI/CD


a. Descripción
Las habilidades de automatización son clave en DevOps, pues estas
permiten que las tareas repetitivas que son susceptibles a errores
humanos realizadas manualmente se hagan de manera mas eficiente y
segura. La capacidad para configurar y gestionar los pipelines de CI/CD
da paso a que la integración, las pruebas y el despliegue del código se
haga de manera automatizada y continua.
b. Relevancia en DevOps
GitLab dice que estas habilidades en automatización son clave para
optimizar el flujo de trabajo, disminuir errores causados por
procedimientos manuales y asegurar que los despliegues sean agiles y
confiables. La automatización de procesos tambien permite que los
desarrolladores se enfoquen en los cambios y mejoramiento del
productor en lugar de realizar tareas operativas repetitivas o
reacondicionamiento del código fuente por errores presentados.

2. Conocimiento de infraestructura como código (IaC)


a. Descripción
La IaC permite gestionar y suministrar la infraestructura del sistema a
través de archivos de configuración en lugar de configuraciones
manuales con tendencias a errores. Este conocimiento incluye el uso de
herramientas como Terraform, Ansible o CloudFormation cuando son
despliegues o trabajos en la nube, herramientas que permiten gestionar
la infraestructura de manera replicable y auditable.
b. Relevancia en DevOps
El uso de la IaC permite a los equipos DevOps gestionar la
infraestructura de manera correcta, eficiente y estandarizada, logrando
así que cualquier cambio en el sistema pueda ser versionado, testeado y
desplegado como si fuera código. De acuerdo con HashiCorp, la IaC
logra consistencia en los entornos y facilita la colaboración, ya que
todos los miembros pueden observar y modificar la configuración de
infraestructura.

“La infraestructura como código es un patrón principal para


administrar la infraestructura con archivos de configuración en lugar
de a través de una interfaz gráfica de usuario o mediante secuencias de
scripts de línea de comandos manuales. Le permite crear, cambiar y
administrar su infraestructura de forma segura, coherente, rastreable y
repetible mediante la definición de configuraciones de recursos que
puede versionar (en un sistema de control de versiones como GitHub),
reutilizar y compartir.” (HashiCorp, s.f.)

3. Competencias en monitoreo y gestión de rendimiento


a. Descripción
La capacidad para implementar y utilizar herramientas de monitoreo y
gestión del rendimiento es esencial en DevOps. El conocimiento de
herramientas como Prometheus, Grafana y ELK Stack entre otras como
Power BI, permite observar y analizar el estado del sistema en tiempo
real, así como tambien monitorear el rendimiento de las aplicaciones, si
tienen errores, como se están comportando, cuantos recursos se están
utilizando, entre otras.
b. Relevancia en DevOps
El monitoreo continuo como ya se menciono asegura y permite al
equipo de DevOps detectar y resolver problemas antes de que afecten al
usuario final.

4. Habilidades de colaboracion y comunicación


a. Descripción
DevOps se basa en la colaboracion que debe existir entre los equipos de
desarrollo y operaciones, para lograr esto, las habilidades de
comunicación efectiva y la capacidad de trabajar en equipo son
esenciales para implementar DevOps, ya que estas permiten que todos
los miembros del equipo se alineen en los mismos objetivos y trabajen
de manera coordinada.
b. Relevancia en DevOps
Aquí Atlassian nos plantea que la colaboracion es uno de los pilares
fundamentales en DevOps, una buena comunicación reduce los
conflictos, destacando así que es fundamental para mejorar el flujo de
trabajo, el agilismo y la rapidez de resolución de problemas. (Atlassian,
s.f.).

5. Conocimientos en seguridad (DevSecOps)


a. Descripción
El tema de la seguridad es una responsabilidad que se comparte entre
todo el equipo DevOps pues es un tema que involucra todas las fases de
desarrollo. Las competencias en seguridad, o en el contexto de DevOps,
DevSecOps, permiten que los desarrolladores y administradores de
sistemas incorporen prácticas de seguridad en cada etapa del ciclo de
vida de desarrollo. Esto incluye crear políticas de seguridad
automatizadas, escaneo de vulnerabilidades y auditoria de la
infraestructura.
b. Relevancia en DevOps
La seguridad en DevOps permite que el desarrollo de software sea
eficiente y ágil pero sobre todo sea seguro y fiable. Tal como lo
menciona Snyk, implementar practicas de DevSecOps permite que el
equipo detecte debilidades en el sistema de manera rápida, mejorando la
seguridad del producto final sin comprometer el agilismo que se quiere
conseguir.

“La definición del modelo DevSecOps, a un alto nivel de


funcionamiento, es integrar los objetivos de seguridad lo antes posible
en el ciclo de vida del desarrollo de software. Si bien la seguridad es
"responsabilidad de todos", los equipos de DevOps se encuentran en
una posición única en la intersección del desarrollo y las operaciones,
capacitados para aplicar la seguridad tanto en amplitud como en
profundidad.” (Snyk DevSecOps, s.f.).
Ilustración 2 DevOps VS DevSecOps

2.5.Fases en DevOps
El ciclo de DevOps este compuesto de 8 fases clave, cada una diseñada para
permitir un flujo de trabajo fácil, continuo y adaptable. A continuación, se
describen estas fases con sus contribuciones al proceso:

1. Plan
a. Descripción
La fase de planificación se utiliza para estableces cuales son los
requisitos y objetivos del proyecto. Se definen las tareas a realizar, se
les dan unas prioridades y se divide el trabajo en cantidades manejables
para el equipo. Esto permite que todos los miembros comprendan cuales
son las metas y trabajen en conjunto para lograr un objetivo común,
facilitando la colaboración y agilidad del equipo DevOps.
2. Code
a. Descripción
En esta fase, los desarrolladores crean el código fuente para nuevas
funcionalidades, nuevos proyectos o mejoras en proyectos ya existentes.
El uso del versiona miento que se ha mencionado o sistemas de control
de versiones para código, como Git, permite que los desarrolladores
trabajen en paralelo en sus tareas asignadas, gestionen los cambios
necesarios y mantengan el código limpio y eficiente para una
integración continua necesaria en DevOps
3. Build
a. Descripción
La fase de construcción da paso a convertir en un paquete ejecutable el
código fuente, durante esta etapa, el código se copila, resolviendo
dependencias y verificando que esté listo para un despliegue correcto.
Herramientas como Jenkins automatizan este proceso, permitiendo que
el ciclo sea continuo y confiable.
4. Test
a. Descripción
La fase de pruebas como su nombre lo indica asegura que el software
cumpla con esas pruebas que validan que este cumple con los estándares
de calidad establecidos. Se realizan pruebas unitarias, de integración,
funcionales y de regresión para verificar que todo este correcto y se
garantice la estabilidad y funcionalidad del software, recordemos que
esta fase se debe realizar entorno a la automatización de pruebas clave y
necesaria para DevOps, permitiendo una rápida detección y corrección
de errores en el software antes de que llegue al ambiente de producción.
5. Release
a. Descripción
En la fase de lanzamiento, el software pasa por la ultima validación
antes de ser configurado para su despliegue, esta última validación se
encarga de verificar que el software cumpla con todos los requisitos y
esté listo para entrar a producción, logrando un despliegue seguro,
controlado y estale.

6. Deploy
a. Descripción
En esta fase, el software pasa al entorno de producción o a entornos de
staging como preproducción para pruebas adicionales. El despliegue
tambien se realiza de manera automatizada minimizando los errores
humanos, logrando lanzamientos seguros y continuos que mantienen la
fiabilidad del sistema.
7. Operate
a. Descripción
La fase de operación está dedicada en mantener ese despliegue en
funcionamiento de manera estable, eficiente y segura en el entorno de
producción. Incluye administración de la infraestructura, soporte y
resolución de problemas capturados con el monitoreo continuo en
tiempo real, permitiendo que los usuarios tengan una experiencia
agradable y continua con el producto.
8. Monitor
a. Descripción
La fase de monitoreo está enfocada en observar el rendimiento y
disponibilidad del software en producción. A través de herramientas que
permiten el monitoreo, los equipos detectan problemas en tiempo real y
recopilan métricas importantes sobre cómo se está comportando el
sistema, analizando en tiempo real y tambien guardando un histórico
sobre cómo se ha comportado el sistema, observando tendencias
patrones que permitan una rápida respuesta ante posibles problemas,
asegurando la estabilidad continua del sistema.

Ilustración 3 – Ciclo de DevOps y sus fases

2.6.Recursos en DevOps
La implementación de DevOps se apoya en distintas herramientas especializadas
en este método que permiten las actividades claves de DevOps, es decir, la
automatización, la colaboracion continua y la eficiencia en los procesos. A
continuación, se presentan los recursos clave organizados por sus funciones
específicas:

1. Herramientas de CI/CD
a. Descripción
Estas herramientas permiten automatizar todo lo que involucra la
integración y despliegue continuo de código, asegurando que ellos
cambios se prueben y desplieguen de manera continua y segura
b. Ejemplos
Jenkins, GitLab CI, GitHub Actions, CircleCI y Bamboo (Atlassian).
Jenkins destaca por su flexibilidad y gran cantidad de plugins que
permiten personalizar los pipelines de CI/CD.

2. Herramientas de Control de Versiones


a. Descripción
Permiten el versiona miento del código, gestionando el código fuente,
observando cambios y colaborar paralela y eficientemente entre
desarrolladores.
b. Ejemplos
Git es el sistema de control de versiones distribuido más popular, y se
encuentra en plataformas como GitHub, GitLab y Bitbucket. Facilita la
colaboración al gestionar cambios en el código fuente y rastrear cada
modificación de manera organizada.

3. Herramientas de Contenedorización
a. Descripción
Facilitan el empaquetado de aplicaciones junto con sus dependencias,
garantizando su ejecución en diferentes entornos sin conflictos
b. Ejemplos
Docker es el estándar de contenedorización, permitiendo a los equipos
empaquetar aplicaciones y sus dependencias en contenedores ligeros y
portátiles. Podman es una alternativa útil, especialmente en entornos sin
un daemon centralizado.

4. Herramientas de Orquestación de Contenedores


a. Descripción
Gestionan el despliegue y la escalabilidad de contenedores a gran
escala, permitiendo la resiliencia y el escalado automático.
b. Ejemplos
Kubernetes es la plataforma líder en orquestación de contenedores,
proporcionando escalabilidad y administración automatizada de
contenedores en producción. OpenShift (basado en Kubernetes) y
Docker Swarm también son opciones populares para administrar
grandes cantidades de contenedores.

5. Herramientas de Infraestructura como Código (IaC)


a. Descripción
Permiten definir y gestionar la infraestructura mediante archivos de
configuración, lo que facilita la replicabilidad y la estandarización.
b. Ejemplos
Terraform y Ansible son herramientas populares para gestionar la
infraestructura como código. Terraform permite definir infraestructura
en múltiples nubes, mientras que Ansible facilita la automatización de
configuraciones y despliegues de servidores. AWS CloudFormation es
una herramienta específica para gestionar la infraestructura en AWS.

6. Herramientas de Monitoreo y Observabilidad


a. Descripción
Ayudan a supervisar la salud y el rendimiento de los sistemas en
producción, y a recopilar métricas clave para la mejora continua.
b. Ejemplos
Prometheus y Grafana se utilizan comúnmente para el monitoreo y la
visualización de métricas en tiempo real, mientras que ELK Stack
(Elasticsearch, Logstash y Kibana) permite el análisis y registro de logs.
Herramientas como Datadog y New Relic también son populares para
monitorear aplicaciones en la nube, proporcionando una observabilidad
completa del sistema.

7. Herramientas de Seguridad (DevSecOps)


a. Descripción
Aseguran la integración de prácticas de seguridad en todas las fases del
ciclo de vida de desarrollo y despliegue, lo que permite detectar y
remediar vulnerabilidades de manera temprana.
b. Ejemplos
Snyk y SonarQube detectan vulnerabilidades en dependencias y
analizan la calidad del código. Aqua Security y Twistlock aseguran los
entornos de contenedores, gestionando permisos y detectando
amenazas. HashiCorp Vault permite gestionar credenciales y secretos de
manera segura en entornos de producción.

8. Herramientas de Gestión de la Configuración y Despliegue en la Nube


a. Descripción
Facilitan la implementación, escalado y administración de
infraestructura en la nube, permitiendo que los equipos DevOps
gestionen recursos con agilidad.
b. Ejemplos
AWS, Microsoft Azure y Google Cloud Platform (GCP) son
proveedores de nube ampliamente utilizados, que ofrecen servicios
gestionados desde almacenamiento y cómputo hasta redes y bases de
datos. Pulumi es una alternativa de IaC que admite múltiples lenguajes
de programación para gestionar infraestructura en la nube.
Ilustración 4 - Herramientas por Fases de desarrollo en DevOps

2.7.Prácticas en DevOps
Las prácticas en DevOps representan procesos, estrategias y métodos clave que
ayudan a los equipos a implementar DevOps de manera eficiente. Estas practicas
abarcan tambien enfoques culturales que ayudan a crear una sinergia entre los
equipos de desarrollo y operaciones, promoviendo el trabajo en equipo, la
colaboración, y la mejora continua. A continuación, se presentan algunas de las
practicas fundamentales en DevOps:

1. Automatización de pruebas
a. Descripción
La automatización de pruebas garantiza que cada versión del software
sea probada de forma rápida y eficaz. Incluye pruebas unitarias, de
integración, de regresión y funcionales, lo que permite identificar
errores antes de que lleguen a producción.

“La práctica de automatización de pruebas consiste en revisar y


validar automáticamente un producto de software (por ejemplo, una
aplicación web) para asegurarse de que cumple con los estándares de
calidad predefinidos para el estilo de código, la funcionalidad (lógica
empresarial) y la experiencia del usuario.
Las pruebas suelen constar de las siguientes etapas:

Pruebas unitarias: verifican unidades individuales de código, como


una función, para comprobar que funcionan según lo esperado.
Pruebas de integración: garantizan que varios fragmentos de código
puedan funcionar juntos sin consecuencias imprevistas.
Pruebas de extremo a extremo: verifican que la aplicación cumple con
las expectativas del usuario.
Pruebas exploratorias: adoptan un enfoque no estructurado para
revisar numerosas áreas de una aplicación desde la perspectiva del
usuario con el fin de descubrir problemas funcionales o visuales.”
(Atlassian Automatizacion De Pruebas, s.f.) .

Ilustración 5 - Pirámide DevOps Automatización de Pruebas

b. Importancia
Automatizar las pruebas minimiza el riesgo de errores en el software y
acelera los lanzamientos, permitiendo que los equipos implementen
cambios de manera continua y confiable.

2. Integración Continua (CI)


a. Descripción
La integración continua es la práctica de fusionar el código de los
desarrolladores en un repositorio común varias veces al día. Cada
cambio se prueba automáticamente para detectar y corregir errores
tempranamente.
b. Importancia
CI asegura que el código esté siempre listo para ser desplegado y
permite que los equipos detecten y solucionen problemas antes de que
se conviertan en bloqueos mayores.

“La CI hace que el desarrollo de software sea más fácil, rápido y


menos arriesgado para los desarrolladores. Al automatizar las
compilaciones y las pruebas, los desarrolladores pueden realizar
cambios más pequeños y realizar las confirmaciones con confianza. Los
desarrolladores de software reciben comentarios sobre su código antes,
lo que aumenta el ritmo general de la innovación.” (GitLab CI, s.f.).

3. Despliegue Continuo (CD)


a. Descripción
El despliegue continuo se refiere a la práctica de automatizar el proceso
de despliegue del software en producción después de que haya pasado
todas las pruebas de calidad.
b. Importancia
Esta práctica reduce el tiempo entre la creación de nuevas
funcionalidades y su disponibilidad para los usuarios, permitiendo
lanzamientos rápidos y continuos. Según AWS el despliegue o entrega
continuos nos da los siguientes beneficios:

“Automatice el proceso de publicación de software.


La entrega continua permite al equipo crear, probar y preparar
automáticamente los cambios en el código para su envío a producción,
con lo que se mejora la eficacia y rapidez de la entrega de sofware.
Mejore la productividad de desarrollo.
Estas prácticas mejoran la productividad del equipo al liberar a los
desarrolladores de las tareas manuales y fomentar comportamientos
que ayudan a reducir la cantidad de errores y bugs enviados a los
clientes.
Encuentre y arregle los errores con mayor rapidez.
Su equipo puede descubrir y arreglar los errores antes de que se
conviertan en problemas más graves gracias a las pruebas más
frecuentes y exhaustivas. La entrega continua le permite realizar tipos
de pruebas adicionales en el código con facilidad, ya que todo el
proceso se ha automatizado.
Entregue las actualizaciones con mayor rapidez.
La entrega continua le permite a su equipo entregar actualizaciones a
los clientes con mayor rapidez y frecuencia. Cuando se la entrega
continua se implementa de manera adecuada, dispondrá siempre de un
artefacto listo para su implementación que se ha sometido a un proceso
de pruebas estandarizado.” (Amazon Web Services, s.f.)

4. Versionamiento y Control de Cambios


a. Descripción
El control de versiones permite a los equipos rastrear y gestionar cada
cambio en el código de manera organizada, asegurando que los
desarrolladores trabajen en versiones actualizadas y coordinadas.
b. Importancia
“Para casi todos los proyectos de software, el código fuente es como
las joyas de la corona, un activo valioso cuyo valor debe protegerse.
Para la mayoría de los equipos de software, el código fuente es un
repositorio del conocimiento de valor incalculable y de la comprensión
sobre el dominio del problema que los desarrolladores han recopilado y
perfeccionado con un esfuerzo cuidadoso. El control de versiones
protege el código fuente tanto de las catástrofes como del deterioro
casual de los errores humanos y las consecuencias accidentales.”
(Attlassian Control de Versiones, s.f.).

A parte que protege el código como lo menciona Atlassian, el


versionamiento o control de versiones facilita la colaboracion entre los
desarrolladores que trabajan en paralelo, permitiendo revertir cambios
en casos de problemas, garantizando una mayor estabilidad del código.

Ilustración 6 - Control de Versiones

5. Infraestructura como código (IaC)


a. Descripción
IaC permite gestionar y configurar la infraestructura mediante archivos
de configuración en lugar de configuraciones manuales. Esto facilita la
replicabilidad y consistencia en los entornos de desarrollo, prueba y
producción.
b. Importancia
La gestión de infraestructura como código garantiza entornos
consistentes y fácilmente reproducibles, lo que reduce errores de
configuración y facilita la escalabilidad.

6. Monitoreo Proactivo
a. Descripción
El monitoreo proactivo permite que los equipos puedan detectar y
resolver problemas antes de que estos afecten a los usuarios finales, este
monitoreo no solo se da en entorno de producción si no que se debe
realizar un monitoreo durante todas las etapas del proceso de desarrollo
de software, teniendo un control no solo de los productos ya
desplegados si no que tambien de los productos en planeación,
desarrollo o en cualquier otra fase de DevOps.

“La supervisión de DevOps implica monitorizar todo el proceso de


desarrollo, desde la planificación, el desarrollo, la integración y las
pruebas a la implementación y las operaciones. Supone una visión
completa y en tiempo real del estado de las aplicaciones, los servicios y
la infraestructura en el entorno de producción. Las funciones como la
transmisión en tiempo real, la reproducción histórica y las
visualizaciones son componentes esenciales de la supervisión de
aplicaciones y servicios.” (Atlassian Monitoreo DevOps, s.f.)
b. Importancia
El monitoreo continuo ayuda a los equipos a mantener la estabilidad y
el rendimiento del sistema, ofreciendo una mejor experiencia al usuario
y facilitando una respuesta rápida ante incidentes.
Ilustración 7 - Monitoreo Continuo DevOps

7. Prácticas de seguridad integrada (DevSecOps)


a. Descripción
DevSecOps integra la seguridad en cada fase del ciclo de vida de
desarrollo de software en DevOps, permitiendo que el software sea
fiable y seguro tanto en etapas de desarrollo como en su fase de
despliegue y monitoreo
b. Importancia
La seguridad integrada permite que las debilidades sean detectadas de
manera rápida y eficiente, esto no solo mejora la seguridad el código, da
paso a que DevOps cumpla sus objetivos de agilismo y entrega
continua, mejorando la integración y teniendo una mayor calidad de
producto de software. Según Snyk una de las empresas enfocadas a la
ciberseguridad, el modelo DevSecOps nos entrega estos 6 beneficios
principales:

“Entrega más rápida: La velocidad de entrega de software mejora


cuando la seguridad se integra en la canalización. Los errores se
identifican y corrigen antes de la implementación, lo que permite a los
desarrolladores centrarse en las funciones de envío.
Postura de seguridad mejorada: La seguridad es una característica
desde la fase de diseño en adelante. Un modelo de responsabilidad
compartida garantiza que la seguridad esté estrechamente integrada,
desde la creación, la implementación hasta la protección de las cargas
de trabajo de producción.
Reducción de costes: La identificación de vulnerabilidades y errores
antes de la implementación da como resultado una reducción
exponencial del riesgo y el costo operativo.
Mejorar el valor de DevOps: La integración de las prácticas de
seguridad en DevOps crea la mejora de la postura de seguridad
general como una cultura de responsabilidad compartida. El informe
Snyk/Puppet 2020 DevSecOps Insights encontró que este es el caso en
las organizaciones DevSecOps maduras.
Mejorar la integración y el ritmo de la seguridad: El costo y el tiempo
de entrega segura de software se reducen al eliminar la necesidad de
adaptar los controles de seguridad después del desarrollo.
Permitiendo un mayor éxito empresarial general: Una mayor
confianza en la seguridad del software desarrollado y la adopción de
nuevas tecnologías permiten un mayor crecimiento de los ingresos y
una mayor oferta empresarial.” (Snyk DevSecOps, s.f.).

Ilustración 8 - Beneficios DevSecOps

8. Retroalimentación continua y Mejora


a. Descripción
La retroalimentación constante entre equipos de desarrollo, operaciones
y usuarios permite una mejora continua en el proceso y en el producto.
b. Importancia
La retroalimentación permite ajustar y mejorar el software y los
procesos de DevOps en función de los resultados reales y las
necesidades de los usuarios, garantizando así un ciclo de desarrollo
adaptable y eficiente

3. Conclusión
DevOps se ha convertido en un método muy utilizado y relativamente moderno para
desarrollo de software, su misión principal es lograr derribar ese muro de la confusión
generado por los métodos tradicionales de desarrollo de software, promoviendo la
colaboracion continua, el agilismo mediante la automatización ya sea de pruebas o de
despliegue, minimizando los errores humanos y mejorando la calidad del software en
cada uno de los ciclos de desarrollo. Al implementar DevOps de manera adecuada, los
equipos de desarrollo y operaciones rompen ese muro de la confusión, colaborando
entre ellos, dándose una comunicación efectiva que facilita el flujo del trabajo,
mejorando la eficiencia con respecto a los tiempos de entrega, lo cual resulta en un
producto de mayor calidad y con lanzamientos mas frecuentes, seguros y rápidos.

Sin embargo, aunque DevOps ha tenido una buena aceptación como método de
desarrollo de software, no esta libre de desafíos, entre los principales encontramos que
hay una notoria resistencia al cambio cultural dentro de las empresas, dificultad para
integrar herramientas de automatización y la complejidad de configurar infraestructuras
consistentes. Superar estos desafíos es clave para lograr fomentar DevOps, pero
superarlos no es un proceso que se dé de un día para otro, deben crearse estrategias
graduales que primero antes que todo fomenten esa cultura colaborativa, de trabajo en
equipo y comunicación efectiva, hablando en términos técnicos, la capacitación de los
equipos en las herramientas y practicas necesarias para trabajar con DevOps es
supremamente necesario, esto incluye capacitación en prácticas de automatización,
herramientas de CI/CD, herramientas de monitoreo proactivo que lleven hacia un
camino de agilismo, seguridad, transparencia y eficiencia operativa. Generando una
estrategia clara, las empresas pueden sacarle el máximo provecho a DevOps,
optimizando y mejorando los procesos de desarrollo, ofreciendo soluciones innovadoras
y de alta calidad a los usuarios.

4. Referencias
Amazon Web Services. (s.f.). Obtenido de
https://aws.amazon.com/es/devops/continuous-delivery/
Atlassian. (s.f.). Atlassian. Obtenido de https://www.atlassian.com/devops/what-
is-devops
Atlassian Automatizacion De Pruebas. (s.f.). Obtenido de
https://www.atlassian.com/es/devops/devops-tools/test-automation
Atlassian Entrega Continua. (s.f.). Obtenido de
https://www.atlassian.com/continuous-delivery
Atlassian Monitoreo DevOps. (s.f.). Obtenido de
https://www.atlassian.com/es/devops/devops-tools/devops-monitoring
Attlassian Control de Versiones. (s.f.). Obtenido de
https://www.atlassian.com/es/git/tutorials/what-is-version-control
Attlassian Integracion Continua. (s.f.). Obtenido de
https://www.atlassian.com/es/continuous-delivery/continuous-integration
Gene Kim, J. H. (2021). The DevOps Handbook: How to Create World-Class
Agility, Reliability, & Security in Technology Organizations. IT Revolution
Press.
GitLab. (s.f.). Obtenido de https://about.gitlab.com/es/topics/devops/devops-
test-automation/
GitLab CI. (s.f.). Obtenido de https://about.gitlab.com/es/topics/ci-cd/benefits-
continuous-integration/#what-are-the-benefits-of-continuous-integration-
for-dev-ops-teams
HashiCorp. (s.f.). Obtenido de https://www.hashicorp.com/resources/what-is-
infrastructure-as-code
Nicole Forsgren, J. H. (s.f.). Accelerate: The Science of Lean Software and
DevOps.
Snyk DevSecOps. (s.f.). Obtenido de https://snyk.io/series/devsecops/

También podría gustarte