Exploración del recorrido de DevOps

Completado

Recuerde que el objetivo es acortar el tiempo del ciclo. Comience con el pipeline de despliegue, que suele ser la mayor restricción. Pregúntese: ¿Cuánto tiempo se tarda en implementar un cambio de una línea de código o configuración? En última instancia, este tiempo de implementación se convierte en un freno para tu velocidad y capacidad de responder a los cambios del mercado.

Ejemplo de hoja de ruta de implementación de DevOps

Fase 1: Fundación

  • Establecimiento del control de versiones con Git
  • Implementación de la canalización básica de CI/CD
  • Configuración de la supervisión y las alertas

Fase 2: Automatización

  • Automatización de pruebas en varios niveles
  • Implementación de la infraestructura como código
  • Establecer el escaneo de seguridad

Fase 3: Optimización

  • Ajustar las estrategias de implementación
  • Implementación de supervisión avanzada
  • Optimización del rendimiento y el costo

Fase 4: Cultura y escala

  • Expansión de prácticas entre equipos
  • Establecimiento de centros de excelencia
  • Mejora continua de los procesos

Procedimientos básicos de DevOps y su impacto

Integración continua

Impulsa la combinación y las pruebas continuas del código, lo que conduce a la detección temprana de defectos. Entre las ventajas se incluyen:

  • Conflictos de integración reducidos: problemas de combinación detectados en horas, no semanas
  • Comentarios más rápidos: los desarrolladores detectan los problemas en cuestión de minutos tras confirmar el código
  • Calidad mejorada del código: las pruebas automatizadas detectan regresiones inmediatamente
  • Mayor confianza: Teams puede refactorizar y mejorar el código de forma segura

Sugerencia de implementación: comience con compilaciones automatizadas en cada confirmación y agregue gradualmente capas de prueba.

Diagrama que muestra una finalización correcta de la compilación con marcas de verificación verdes que indican todas las pruebas superadas y las puertas de calidad del código que se cumplen.

Entrega continua

Permite la implementación rápida de soluciones de software en entornos de producción y pruebas, lo que ayuda a las organizaciones a corregir rápidamente los errores y responder a los requisitos empresariales que cambian constantemente.

Ventajas clave:

  • Menor riesgo de implementación: las versiones más pequeñas y frecuentes son más fáciles de solucionar y revertir
  • Tiempo de comercialización más rápido: las características llegan a los clientes semanas o meses antes
  • Confiabilidad mejorada: las implementaciones automatizadas eliminan el error humano.
  • Mejor capacidad de respuesta del cliente: respuesta rápida a los comentarios y cambios en el mercado

Estrategias de implementación que se deben tener en cuenta:

  • Azul-Verde: implementaciones de tiempo de inactividad cero con funcionalidad de reversión instantánea
  • Canary: implementación gradual en un subconjunto de usuarios para minimizar el riesgo
  • Marcas de características: implementación de código sin exponer características, lo que permite versiones más seguras

Diagrama que muestra la canalización de entrega continua con fases para entornos de compilación, prueba, ensayo y producción, lo que hace hincapié en los procesos de implementación automatizados.

Excelencia del control de versiones

Normalmente se implementa con un repositorio basado en Git, el control de versiones permite a los equipos de todo el mundo comunicarse de forma eficaz durante las actividades de desarrollo diarias e integrarlas con herramientas de desarrollo de software para supervisar actividades como las implementaciones.

Procedimientos avanzados de Git:

  • Estrategias de bifurcación: Flujo de GitHub o desarrollo basado en troncos
  • Procesos de revisión de código: solicitudes de incorporación de cambios con aprobaciones obligatorias
  • Convenciones de confirmación: mensajes de confirmación coherentes y significativos
  • Enlaces de integración: desencadenadores de implementación y pruebas automatizados

Consideraciones empresariales:

  • Organización del repositorio y control de acceso
  • Control de archivos grandes (Git LFS)
  • Requisitos de cumplimiento y auditoría
  • Copia de seguridad y recuperación ante desastres

Diagrama que muestra la bifurcación de Git con la rama principal, las ramas de características y los puntos de combinación.

Agile Planning and Lean Project Management

Use técnicas ágiles de planeamiento y administración de proyectos ajustadas para maximizar la entrega de valores:

Procedimientos recomendados para planear sprints:

  • Planear y aislar el trabajo en sprints manejables (de 1 a 4 semanas)
  • Administrar la capacidad del equipo y ayudar a los equipos a adaptarse rápidamente a las necesidades empresariales cambiantes
  • ** Definir criterios de aceptación claros y definición de terminado
  • Una definición de Terminado en DevOps incluye software en funcionamiento que recopila telemetría en relación con los objetivos empresariales previstos.

Artefactos ágiles clave:

  • Casos de usuario: características descritas desde la perspectiva del usuario con un valor claro
  • Epopeyas: grandes características desglosadas en historias manejables
  • Trabajo pendiente: lista prioritaria de características y deuda técnica
  • Objetivos de sprint: Objetivos claros para cada iteración

Principios Lean:

  • Eliminación de ineficiencias en procesos y transferencias
  • Optimización para el flujo, no para el uso de recursos
  • Incorporar calidad desde el principio
  • Entrega de valor temprano y a menudo

Panel Kanban que muestra columnas de flujo de trabajo: por hacer, en curso, listo para codificar, en curso, revisión, hecho, con tarjetas que representan elementos de trabajo que se mueven a través del proceso.

Supervisión y registro completos

Supervise las aplicaciones en ejecución, incluidos los entornos de producción para el estado de la aplicación y el uso del cliente. Esto ayuda a las organizaciones a crear hipótesis y validar o desaprobar rápidamente estrategias. Los datos enriquecidos se capturan y almacenan en distintos formatos de registro.

Componentes del stack de monitoreo:

  • Supervisión del rendimiento de aplicaciones (APM): seguimiento de los tiempos de respuesta, los errores y el rendimiento
  • Supervisión de la infraestructura: CPU, memoria, disco, métricas de red
  • Métricas empresariales: participación del usuario, tasas de conversión, uso de características
  • Supervisión de seguridad: detección de amenazas y seguimiento de cumplimiento

Procedimientos recomendados de observabilidad:

  • Implementación del seguimiento distribuido para microservicios
  • Uso del registro estructurado con identificadores de correlación
  • Configuración de alertas proactivas con falsos positivos mínimos
  • Crear paneles para diferentes audiencias (operaciones, desarrollo, negocio)

Estrategia de administración de registros:

  • Registro centralizado con funcionalidades de búsqueda
  • Directivas de retención basadas en los requisitos de cumplimiento
  • Optimización de costos mediante la gestión del nivel de registro
  • Análisis en tiempo real de problemas críticos

Panel con gráficos de supervisión que muestran métricas de rendimiento, tasas de errores e indicadores de estado del sistema.

  • Las nubes públicas e híbridas han hecho que lo imposible sea fácil. La nube ha quitado los cuellos de botella tradicionales y ha ayudado a comercializar la infraestructura. Puede usar infraestructura como servicio (IaaS) para elevar y cambiar las aplicaciones existentes o plataforma como servicio (PaaS) para obtener una productividad sin precedentes. La nube proporciona un centro de datos sin límites.

Diagrama de la nube pública.

  • Infraestructura como código (IaC): permite la automatización y validación de la creación y desmontaje de entornos para ayudar a ofrecer plataformas de hospedaje de aplicaciones seguras y estables.

Diagrama de representación de infraestructura como código (IaC).

  • Use la arquitectura de microservicios para aislar los casos de uso empresariales en pequeños servicios reutilizables que se comunican a través de contratos de interfaz. Esta arquitectura permite la escalabilidad y la eficacia.

Diagrama de representación monolítica y de microservicios.

  • Los contenedores son la siguiente evolución en la virtualización. Son mucho más ligeros que las máquinas virtuales, permiten una hidratación mucho más rápida y configuran fácilmente archivos.

Diagrama de contenedores.

DevOps puede afectar al principio, pero evita estos anti-patrones.

Si duele, hazlo con más frecuencia. Es probable que la adopción de nuevas prácticas como ir al gimnasio resulte inicialmente incómoda. Cuanto más se ejercen las nuevas técnicas, más fáciles serán.

Al igual que el entrenamiento en el gimnasio, donde primero se ejercen músculos grandes antes de los músculos pequeños, adoptan prácticas que tienen el impacto más significativo primero. Entrenamiento cruzado para desarrollar sinergia entre prácticas.

Antipatrones comunes de DevOps para evitar:

  • Enfoque centrado en herramientas: no empiece por comprar herramientas. Comience con la comprensión del estado actual y los resultados deseados.

  • Transformación Big Bang: evite intentar cambiar todo a la vez. Comience poco a poco y expanda gradualmente.

  • Silo del equipo de DevOps: no cree un "equipo de DevOps" independiente. DevOps es una práctica, no un rol.

  • Ignorar la cultura: Los cambios técnicos sin cambios culturales fracasarán. Invertir en personas y procesos.

  • Omisión de la seguridad: No agregue la seguridad al final. Integre la seguridad en todo (DevSecOps).

  • Sobre-ingeniería: inicie simple y agregue complejidad solo cuando sea necesario. Evite la optimización prematura.

  • No ignorar el legado: no abandone los sistemas existentes. Planear estrategias de modernización graduales.

Patrones de éxito que adoptar.

  • Comience con cambios de alto impacto y bajo riesgo: automatice las compilaciones antes de las implementaciones.

  • Medir todo: establecer líneas base antes de realizar cambios

  • Error rápido y aprendizaje: Adoptar la experimentación con medidas de seguridad adecuadas

  • Invertir en automatización: automatización de tareas repetitivas y propensas a errores primero

  • Crear bucles de retroalimentación: crear mecanismos para aprender tanto de éxitos como de errores

Ilustración de una persona haciendo ejercicio, mostrando que las prácticas de DevOps se vuelven más fáciles con una aplicación consistente y que construir fuerza requiere un esfuerzo gradual y persistente.

Nota:

El artículo original define DevOps proporciona contexto adicional y explicaciones detalladas de estos conceptos.