Está en la página 1de 4

Resumen.

DevOps es un conjunto de prácticas para desarrollo de software y operaciones de TI que están


alineadas con los objetivos de la compañía que las practica. Consiste en 8 actividades de
Integración Contínua y Entrega Contínua (CI/CD) como se muestra en la imagen 1. En donde a
CI le corresponden las actividades de planeación, codificación, construcción y prueba; mientras
que a CD le corresponden las actividades de lanzamiento, desarrollo, operación y monitoreo.

Imagen 1. Diagrama CI/CD.

Con objetivo de llevar una buena gestión de DevOps, Google lleva a cabo una investigación de
7 años y contando. DORA (DevOps Research and Assessment) integra la observación de más
de 30mil especialistas y principalmente propone 4 métricas para medir una organización.

1. Frecuencia de desarrollo (Deployment Frequency): Con qué frecuencia una organización


despliega lanzamientos (releases) a producción con éxito.
2. Tiempo promedio de cambios a producción (Mean Lead Time for Changes): Es el tiempo
que pasa para que un cambio de código (commit) llegue a producción.
3. Tiempo promedio de recuperación (Mean Time to Recovery o MTRT): Es el porcentaje
de despliegues que fallan en producción.
4. Índice de fallas en cambios (Change Failure Rate): Es cuánto tiempo transcurre para
recuperar la producción de un fallo.

Las métricas 1 y 2 miden la velocidad del equipo de desarrollo, mientras que las métricas 3 y 4
miden la calidad y estabilidad de un proyecto de desarrollo.

Referencia:

2022 Accelerate State of DevOps Report https://cloud.google.com/devops/state-of-


devops?hl=es

1
Para gestionar los procesos de CI/CD se utilizan algunas herramientas como Jenkins, Git, Jira,
entre otras.

Lo primero que necesitamos saber es que la CI pretende abordar la solución a la coordinación


de actualizaciones de código, por lo que se utiliza un Sistema de Control de Versiones (VCS)
llamado git.

DORA demuestra que los equipos tienen un mejor rendimiento cuando los desarrolladores
actualizan su trabajo en el repositorio o directorio de trabajo de git, al menos una vez al día.

Por otra parte, la entrega contínua (CD) es la capacidad de actualizar cambios de todo tipo a
pedido de manera rápida, segura y sustentable. Esto consiste en automatizar pruebas,
implementaciones y desarrollo basado en troncos (branches) dentro del repositorio.

Como hemos visto, Git está directamente relacionado con las prácticas CI/CD debido a la
dinámica del VCS que maneja. De manera principal, Git tiene tres estados principales en donde
realizamos la modificación, carga y descarga de archivos según las versiones que vayamos
trabajando.

● Modificado (Modified): Refiere al estado cuando has cambiado/creado uno o más


archivos, diferenciado del repositorio original pero aún no se han cargado los cambios a
la base de datos.
● Versionado (Staged): Es el estado en donde se han guardado los cambios del estado
anterior a una nueva versión pero en espera de cargar los cambios al directorio del
repositorio.
● Actualizado (Commited): Este estado almacena exitosamente los cambios en el directorio
del repositorio.

Por lo anterior, podemos visualizar los directorios de trabajo de Git como se muestra en la Imagen
2.

Imagen 2. Directorios de trabajo de Git.

2
El directorio de trabajo es básicamente la consola en la que estamos trabajando y realizando
cambios. El Staging area corresponde al comando $git add con el que estamos cargando los
cambios realizados en el directorio de trabajo; finalmente, el repositorio o directorio de git
corresponde al estado commit en donde ejecutamos el comando $git commit para guardar los
cambios en el repositorio en conjunto con el comando $git push.

Como se puede observar, git tiene comandos propios del VCS. Los principales son:

$git config

Permite obtener y ejecutar variables de configuración que controlan el aspecto de como git opera.

Ejemplo: $git configure --global user.name “SandraFB”

$git init

Crea un nuevo repositorio de Git.

$git add

Permite guardar los cambios al staging area.

Ejemplo: $git add -A #Para guardar todos los archivos modificados en el staging area.

$git commit

Permite guardar los cambios al repositorio.

Ejemplo: $git commit -m “Cambios V1” #-m permite comentar la carga de cambios.

$git pull

Descarga cambios de un repositorio.

Ejemplo: $git pull origin master

$git push

Carga cambios de un repositorio.

Ejemplo: $git push -u origin master

$git clone

Copia y descarga un repositorio al directorio de trabajo.

$git remote

3
Se utiliza para trabajar repositorios remotos.

Ejemplo: $git remote add origin <ruta.git>

$git branch

Trabaja los troncos de los repositorios para guardar los cambios en una rama diferente a la
principal.

Ejemplo: $git branch -M main

$git diff

Revisa registros.

Ejemplo: $git diff --cached #Revisa los registros de caché.

$git status

Permite visualizar los cambios en el directorio de trabajo y las acciones pendientes para
actualizar el repositorio.

$git log

Muestra un registro de las acciones.

Ejemplo: $git log --oneline --decorate

$git checkout

Permite desplazarse entre los branches.

Ejemplo: $git checkout master

Referencia:

Pro Git 2nd Edition (2014) https://git-scm.com/book/en/v2

También podría gustarte