Flujo de Trabajo DevOps: Implementación de Contenedores Docker, Scrum y Calidad de Código
Clasificado en Informática
Escrito el en
español con un tamaño de 7,51 KB
Docker y Docker Compose: Flujo de Trabajo Esencial
Esta sección detalla los comandos fundamentales para la gestión de contenedores y la orquestación básica con Docker Compose.
1. Preparación del Entorno
- Verificar versiones:
docker --versionydocker-compose --version. - Crear un directorio de proyecto:
mkdir docker-webycd docker-web. - Crear los archivos de la página web.
- Crear un archivo de configuración para Nginx:
default.conf. - Crear un archivo
Dockerfile(sin extensión).
2. Construcción y Ejecución de Contenedores
- Construir la imagen:
docker build -t mi-nginx . - Verificar que la imagen se creó:
docker images - Iniciar el contenedor:
docker run -d --name servidor-web -p 8080:80 mi-nginx - Verificar que el contenedor está corriendo:
docker ps. - Ver la página web en Docker.
3. Gestión con Docker Compose
- Crear un archivo
docker-compose.yml. - Iniciar servicios Docker Compose:
docker compose up -d - Comprobar que funciona.
- Verificar los servicios activos:
docker compose ps. - Ver los logs del servicio: Muestra los registros generados por Nginx:
docker compose logs web
4. Limpieza y Utilidades
- Detener y eliminar los servicios:
docker compose down - Eliminar todos los contenedores detenidos:
docker container prune - Eliminar la imagen creada:
docker rmi mi-nginx - Validar la configuración de Nginx en el contenedor:
docker exec servidor-web nginx -t
Gestión Avanzada de Imágenes Docker
Creación y Distribución de Imágenes Personalizadas a partir de un Contenedor
Este proceso permite modificar un contenedor en ejecución, guardar esos cambios como una nueva imagen y distribuirla a través de Docker Hub.
- Buscar y descargar la imagen base:
docker pull ubuntu - Descargar una versión específica:
docker pull ubuntu:20.04 - Imágenes disponibles en Docker Hub:
docker search ubuntu - Verificar la imagen descargada:
docker images - Arrancar un contenedor desde la imagen:
docker run -it --name contenedor_redes ubuntu bash - Instalar herramientas de red dentro del contenedor:
apt update && apt install -y inetutils-ping iproute2 dnsutils - Crear una nueva imagen a partir del contenedor modificado:
docker commit contenedor_redes miusuario/comandos_redes:latest - Verificar que la nueva imagen se creó:
docker images - Subir la imagen a Docker Hub:
- Iniciar sesión:
docker login - Subir imagen al repositorio:
docker push miusuario/comandos_redes:latest
- Iniciar sesión:
- Descargar y usar la imagen en otro ordenador:
- Descarga:
docker pull miusuario/comandos_redes:latest - Crear un nuevo contenedor:
docker run -it --name nuevo_contenedor miusuario/comandos_redes
- Descarga:
Calidad del Código y Metodologías de Desarrollo
Javadoc: Documentación de Código Java
Javadoc es una herramienta de Java que sirve para extraer y generar documentación básica para el programador en formato HTML.
Los comentarios utilizados para Javadoc son: //, /* */, y /**…*/.
En entornos como NetBeans, la documentación se genera desde el menú Run, eligiendo la opción Generate Javadoc.
Refactorización de Código
La refactorización es el proceso de reestructurar el código existente sin cambiar su comportamiento externo.
¿Cuándo Refactorizar?
- Código duplicado.
- Métodos muy largos.
- Clases muy grandes.
- Lista de parámetros extensa.
SonarQube: Plataforma de Calidad Continua
SonarQube es una plataforma open source para el estático y continuo de la calidad del código fuente.
Detecta errores, vulnerabilidades, duplicaciones y malas prácticas en más de 30 lenguajes de programación. Proporciona métricas objetivas y paneles visuales para mejorar la calidad y seguridad del software.
Funcionalidades Clave
- Análisis estático.
- Detección de bugs y vulnerabilidades.
- Control de duplicaciones.
- Cobertura de pruebas.
- Complejidad y mantenibilidad.
Beneficios de SonarQube
- Retroalimentación inmediata sobre la calidad del código.
- Reducción de errores.
- Mejora de la productividad.
- Fomenta la cultura de calidad y la colaboración en el desarrollo.
- Gratuito y escalable.
Gestión Ágil de Proyectos
La Gestión Ágil de Proyectos se basa en realizar entregas de forma continua y en integrar la opinión y las preferencias del cliente en cada iteración.
Scrum: Marco de Trabajo Ágil
Scrum es un marco de trabajo basado en la gestión ágil de proyectos.
Principios Fundamentales de Scrum
- Divide la organización en equipos de trabajo.
- Divide el trabajo en una lista de entregables de tamaño reducido (ordenada por prioridades).
- Divide el tiempo en iteraciones de longitud fija.
El Equipo Scrum
Un Equipo SCRUM debe estar formado por entre 4 y 10 personas.
Roles Esenciales
- Scrum Master: Responsable de desplegar y asegurar la correcta aplicación de Scrum.
- Propietario del Producto (Product Owner).
- Desarrolladores.
Eventos Scrum (Ceremonias)
- Sprint: Es como un proyecto corto, con una duración máxima de 1 mes.
- Planificación del Sprint: Inicia cada Sprint y tiene una duración máxima de 8 horas.
- Scrum Diario (Daily Scrum): Dura unos 15 minutos, se realiza todos los días laborables.
- Revisión del Sprint (Sprint Review): Máximo 4 horas.
- Retrospectiva del Sprint (Sprint Retrospective): Máximo 3 horas.
Artefactos Scrum
Los Artefactos representan trabajo o valor y están diseñados para maximizar la transparencia de la información clave.
Tipos de Artefactos
- Product Backlog: Lista ordenada de lo que se necesita para mejorar el producto.
- Sprint Backlog: Es el trabajo que los Desarrolladores se comprometen a realizar durante el Sprint.
- Incremento: Son los progresos acumulados del proyecto que cumplen con la Definición de Terminado.
Trello es una herramienta de la empresa Atlassian que se puede usar en su versión gratuita para trabajar con este tipo de tableros ágiles.