Compartir a través de


Cadena de herramientas de DevOps

Una cadena de herramientas de DevOps es una colección de herramientas que permite a los equipos de DevOps colaborar en todo el ciclo de vida del producto y abordar los aspectos básicos clave de DevOps.

Las herramientas que incluye una cadena de herramientas DevOps funcionan como una unidad integrada para la planificación, la integración continua, la entrega continua, las operaciones, la colaboración y la retroalimentación. Puede ver algunos ejemplos de tecnologías de DevOps en las distintas fases de DevOps en el artículo sobre cómo definir el ecosistema de tecnología de DevOps.

Consideraciones sobre la cadena de herramientas de DevOps

  • Los procesos de DevOps ya pueden usarse en toda la organización al seleccionar una cadena de herramientas. Debe encontrar el equilibrio adecuado entre la adopción de tecnologías que satisfagan las necesidades de su equipo y el objetivo de estandarizar y evitar ecosistemas de DevOps heterogéneos en toda la organización.

  • Puede adoptar diferentes tipos de cadenas de herramientas de DevOps:

    • Todo en uno: proporciona una solución completa que podría no integrarse con otras herramientas de terceros. Las cadenas de herramientas todo en uno pueden ser útiles para las organizaciones que empiezan su recorrido de DevOps. Ejemplo: Cadena de herramientas de Azure DevOps de pila completa.
    • Personalizado: permite a los equipos traer y mezclar herramientas existentes que conocen y usan ya en la cadena de herramientas de DevOps más amplia. La integración es fundamental para evitar que estos tipos de cadenas de herramientas pasen tiempo innecesario entre pantallas, inicien sesión en varios lugares y se enfrenten al reto de compartir información entre herramientas. Ejemplo: Cadena de herramientas de Azure DevOps y GitHub.
  • Considere la posibilidad de usar cadenas de herramientas que se actualicen periódicamente y que tengan asistencia disponible siempre que se necesite por correo electrónico o a través del portal en línea. Se trata de un requisito para cualquier producto o servicio que se encuentre en el proceso crítico hacia la comercialización.

Planificación

  • Considere la posibilidad de adoptar una herramienta que admita prácticas de planeación continua:
    • Planeamiento de la versión
    • Identificación de características y epopeyas
    • Establecimiento de prioridades
    • Estimación
    • Definición de caso de usuario
    • Perfeccionamiento del trabajo pendiente
    • Planeación de un sprint
    • Scrum diario
    • Revisión de sprint
    • Retrospectiva

Integración continua y entrega continua

  • Al implementar Integración continua (CI)/Entrega continua (CD), considere la posibilidad de adoptar una herramienta que admita:
    • Sistemas de control de versiones. Todo el contenido del proyecto debe registrarse en un único repositorio de control de versiones como Git: código, pruebas, scripts de base de datos, scripts de compilación e implementación, y cualquier otro elemento necesario para crear, instalar, ejecutar y probar la aplicación.
    • Estrategia de ramificación.
    • Compilaciones automatizadas.
  • La elección del repositorio también se ve influida por los requisitos de soberanía/residencia de los datos. Si necesita que los datos se alojen localmente en un país/región que no sea EUA, necesitará repositorios Azure DevOps cuando no se puedan usar repositorios GitHub.
  • Para minimizar la cantidad de configuración manual necesaria para aprovisionar recursos, considere la posibilidad de adoptar Infraestructura como código (IaC). IaC permite aplicar prácticas de ingeniería de software como pruebas y control de versiones, que hacen que la infraestructura y las implementaciones se automaticen y sean coherentes y reiterativas. Guarde los scripts y las plantillas en el control de código fuente como haría con cualquier otro código que mantenga.
  • Adopte herramientas de exploración de código para ayudar a detectar defectos de código lo antes posible. Incluya comprobaciones previas a la implementación para validar y confirmar los cambios antes de cualquier función de implementación (ejemplo: "what-if").
  • Las herramientas de CI/CD aceleran el tiempo de comercialización del producto. Las herramientas que permiten paralelizar tareas y aprovechar la escalabilidad elástica en la infraestructura hospedada en la nube mejoran el rendimiento del proceso de CI/CD.
  • Considere la posibilidad de usar las características de la herramienta de CI/CD que admitan la medida del rendimiento de DevOps. Los paneles e informes pueden realizar un seguimiento de los aspectos del proceso de desarrollo, como el plazo, el tiempo de ciclo, el progreso del trabajo, etc.

Operaciones continuas

Las operaciones continuas son un enfoque que ayuda a las organizaciones a mantener la continuidad del resultado entre los clientes y los sistemas internos a través de la entrega ininterrumpida de servicios o funciones críticos. Los objetivos de las operaciones continuas son:

  • Reducir o eliminar la necesidad de tiempos de inactividad planificados o interrupciones, como el mantenimiento programado, la optimización de la capacidad y la implementación.
  • Aumentar la fiabilidad y resistencia generales de los sistemas en tres aspectos: con personas, procesos y herramientas.

Use herramientas nativas de nube para:

  • Supervisar las métricas clave para el rendimiento y la disponibilidad del servicio.
  • Obtener experiencia digital y Customer Insights.
  • Genere respuestas basadas en inteligencia para incidentes, la recuperación del sistema o el escalado.
    • Azure Diagnostics y Application Insights son el método estándar de seguimiento del estado y mantenimiento de los recursos de Azure. Azure Monitor también proporciona supervisión y administración centralizadas para las soluciones en la nube o híbridas.
  • Automatice el mantenimiento proactivo y tareas como la implementación o las actualizaciones del sistema.
    • Azure Automation es una herramienta nativa de nube que puede usar para crear una automatización basada en eventos para diagnosticar y resolver problemas.

Colaboración y comentarios

  • Los bucles de comentarios rápidos constituyen el núcleo del proceso de CI/CD. Una herramienta de CI/CD usa comentarios para resolver condiciones en la lógica de flujo de trabajo de CI/CD y muestra información a los usuarios, normalmente a través de un panel.

  • La compatibilidad con las notificaciones por correo electrónico y la integración con IDE o plataformas de comunicación garantiza que pueda mantenerse informado sobre lo que sucede sin tener que comprobar un panel. Asegúrese de disponer de la opción de configurar las alertas que va a recibir, ya que obtener demasiadas alertas hace que se transformen en ruido de fondo.

  • Cualquier herramienta que elija para la colaboración debe admitir las siguientes prácticas de colaboración:

    • Colaboración Kanban
    • Colaboración de contenido wiki
    • Colaboración ChatOps
    • Centro de reunión

Recomendaciones de cadena de herramientas de DevOps para zonas de aterrizaje de Azure

Las cadenas de herramientas de DevOps para la implementación de la zona de aterrizaje de Azure deben tener en cuenta todas las fases de DevOps descritas anteriormente:

  • Planificación
  • CI/CD (incluidas funcionalidades de automatización como Infraestructura como código)
  • Operaciones
  • Colaboraciones y comentarios

Revise las instrucciones para la implementación de la zona de aterrizaje y las consideraciones a la hora de elegir una opción de implementación en el artículo sobre cómo elegir la adopción de la zona de aterrizaje.

Independientemente de la metodología seleccionada (inicio a pequeña escala y expansión y escala empresarial), hay algunas topologías comunes que las empresas tienden a seguir a medida que diseñan sus flujos de trabajo y cadenas de herramientas de DevOps.

  • Cadena de herramientas de Azure DevOps de pila completa: en el caso de las empresas que ya han invertido mucho en el ecosistema de Microsoft, esta topología les permite aprovechar al máximo las integraciones nativas entre productos y servicios de Microsoft y simplificar los procesos clave.
  • Cadena de herramientas de Azure DevOps y GitHub: esta topología permite usar los puntos fuertes de Azure y GitHub como parte de una solución bien integrada.

Cadena de herramientas de Azure DevOps de pila completa

Diagrama de una cadena de herramientas de Azure DevOps de pila completa.

Fase de DevOps Herramientas
Planificación Azure Boards proporciona funcionalidades de planeación eficaces y flexibles a desarrolladores y otros roles, como trabajos pendientes jerárquicos, paneles Kanban personalizables, una variada personalización de procesos, paneles de equipo e informes personalizados.
CI/CD Azure Repos permite crear repositorios de Git privados y admite diferentes clientes de Git, una estrategia de bifurcación y protección. Azure Repos también proporciona una residencia de datos localizada en la nube para permitir el cumplimiento de las normativas europeas. Azure Pipelines permite a los clientes configurar canalizaciones automatizadas para CI/CD, incluidas para la creación de informes de prueba de carácter avanzado y proporciona una compatibilidad eficaz con canalizaciones de varias fases. Los permisos específicos, las puertas, las comprobaciones personalizadas y los informes de resultados de pruebas de carácter automatizado de Azure Pipelines le ayudan a aplicar procedimientos recomendados de seguridad, cumplimiento e implementación segura en su organización y admiten la ejecución y escalabilidad de pasos paralelos. Azure Artifacts proporciona una fuente para almacenar paquetes y revisar y validar cada paquete con fines de seguridad, y también proporciona una auditoría y un control de permisos de carácter pormenorizado. Azure Test Plans de Azure DevOps proporciona una solución de administración de pruebas basadas en el explorador para pruebas exploratorias, manuales y de aceptación de usuario. Los usuarios de Azure Test Plans también suelen usar Azure Boards para el planeamiento y la administración del proyecto. Puede vincular casos de usuario y otros requisitos a casos de prueba y puede documentar errores detectados mediante pruebas. Adopte extensiones de Marketplace para DevOps para mejorar el análisis de código estático con herramientas como instancias de Credential Scanner, lectores de código abierto, detectores de errores y vulnerabilidades, etc.
Operaciones Los paneles e informes de Azure proporcionan informes personalizados para ayudar a supervisar métricas de rendimiento del servicio clave. Azure Diagnostics y Application Insights son el método estándar de seguimiento del estado y mantenimiento de los recursos de Azure. Azure Monitor proporciona supervisión y administración centralizadas. Azure Automation puede usarse para crear una automatización basada en eventos para diagnosticar y resolver problemas. Defender for Cloud DevOps usa una consola central para permitir a los equipos de seguridad proteger las aplicaciones y los recursos desde el código a la nube en entornos de varias canalizaciones, como Azure DevOps y GitHub.
Colaboraciones y comentarios Wiki de Azure DevOps permite compartir información con miembros de otros equipos y admite la edición colaborativa de su contenido y estructura. Azure Boards proporciona colaboración Kanban y compatibilidad con comentarios y discusiones en elementos de trabajo pendiente. Puede integrar Microsoft Teams con Azure DevOps para obtener una experiencia completa de colaboración en equipo.

Cadena de herramientas de Azure DevOps y GitHub

Diagrama de una cadena de herramientas de Azure DevOps y GitHub.

Fase de DevOps Herramientas
Planificación Azure Boards proporciona una solución estable y escalable para la planeación, la administración de repositorios, la visualización de datos y la organización de elementos de trabajo jerárquica. Se integra con GitHub, por lo que puede vincular elementos de trabajo y confirmaciones de GitHub. También le permite elegir su flujo de trabajo ideal, ya sea un flujo de trabajo simple o instantáneo, o un flujo de trabajo personalizado que cree con el eficaz y flexible motor de personalización de Azure Boards. Cuando necesite visualizar sus datos, Azure Boards le ayudará a crear y configurar fácilmente paneles personalizados y a supervisar el progreso a lo largo de los ciclos de vida del proyecto.
CI/CD Use la versión de GitHub Enterprise (GHE) de GitHub, que incluye GitHub Repo, GitHub Advanced Security (GHAS) y GitHub Advanced Security para Azure DevOps. GHAS incluye CodeQL, Análisis de código, Análisis de secretos y Revisión de dependencias. GHE también ofrece Codespaces, un IDE en la nube que puede usar para desarrollar código y que puede reemplazar Visual Studio Code, que las organizaciones suelen incluir en escenarios de Azure DevOps de pila completa. Puede usar Acciones de GitHub para automatizar flujos de trabajo no compilados si los repositorios están en GitHub. Si tiene escenarios más complejos en los que necesita acceder al código desde fuera de GitHub o requiere una administración centralizada de las plantillas de flujo de trabajo y las canalizaciones de compilación, adopte Azure Pipelines. En el caso de Azure Boards, puede integrar Azure Pipelines con repositorios de GitHub. Para obtener información sobre la integración de Azure DevOps y GitHub, consulte Uso de Azure DevOps y GitHub. Paquetes de GitHub es un servicio de paquete de software que le permite hospedar sus propios paquetes de forma privada o pública. GitHub ofrece compatibilidad de Container Registry con el hospedaje de imágenes OCI o de Docker. Necesita tokens de acceso para publicar, instalar o eliminar paquetes y mantener la administración del ciclo de vida de los paquetes segura. Para automatizar paquetes, puede integrar paquetes de GitHub con Acciones de GitHub, API de GitHub y webhooks para crear flujos de trabajo de DevOps que incluyan código, CI e implementaciones en una sola interfaz.
Operaciones GitHub Insights proporciona informes analíticos basados en datos de su instancia del servidor de GitHub Enterprise para ayudarle a entender y mejorar el proceso de entrega de software. En el caso del diagnóstico y la administración de zonas de aterrizaje, use los servicios de Azure recomendados en el escenario de Azure DevOps de pila completa.
Colaboración y comentarios Puede usar Discusiones de GitHub para compartir preguntas, ideas, conversaciones, solicitudes de comentarios (RFC), planeamiento de recursos y anuncios. Use Azure Boards para crear y configurar fácilmente paneles personalizados y supervisar el progreso a lo largo de los ciclos de vida del proyecto. Adopte Microsoft Teams para obtener una experiencia completa de colaboración en equipo.