Acerca de GitHub Actions para empresas
GitHub Actions es una plataforma de integración y despliegue continuos (IC/DC) que te permite automatizar tu mapa de compilación, pruebas y despliegue. Con GitHub Actions, tu empresa puede automatizar, personalizar y ejecutar tus flujos de trabajo de desarrollo de software como las pruebas y despliegues. Para obtener más información, vea «Acerca de las GitHub Actions para las empresas».
Antes de que incluyas las GitHub Actions en una empresa grande, primero necesitas planear tu adopción y tomar las decisiones de cómo tu empresa utilizará GitHub Actions para apoyar de la mejor forma a tus necesidades únicas.
Gobernanza y cumplimiento
Deberías crear un plan que rija el uso de las GitHub Actions en tu empersa y logre tus obligaciones de cumplimiento.
Determina qué acciones y flujos de trabajo reutilizables podrán usar los desarrolladores. En primer lugar, decide si permitirás acciones y flujos de trabajo reutilizables de terceros que no se hayan creado en GitHub. Puedes configurar las acciones y los flujos de trabajo reutilizables que pueden ejecutarse en el nivel de repositorio, organización y empresa, y puedes optar por permitir solo las acciones creadas en GitHub. Si permites las acciones de terceros y los flujos de trabajo reutilizables, puedes limitar las acciones permitidas a las de creadores verificados o a una lista específica de acciones y flujos de trabajo reutilizables.
Para obtener más información, consulta "Administrar los ajustes de las GitHub Actions de un repositorio", "Inhabilitar o limitar GitHub Actions para tu organización" y "Requerir políticas para las GitHub Actions en tu empresa".
Plantéate combinar OpenID Connect (OIDC) con los flujos de trabajo reutilizables para aplicar implementaciones continuas en todo el repositorio, la organización o la empresa. Puedes hacerlo si defines las condiciones de confianza en los roles de la nube con base en los flujos reutilizables. Para obtener más información, vea «Utilizar OpenID Connect con flujos de trabajo reutilizables».
Puedes acceder a la información sobre la actividad relacionada con las GitHub Actions en las bitácoras de auditoría de tu empresa. Si tus necesidades de negocio requieren que retengas esta información más tiempo que los datos de registro de auditoría, planea cómo exportarás y almacenarás estos datos fuera de GitHub. Para obtener más información, consulte "Exportación de la actividad del registro de auditoría de su empresa" y "Streaming del registro de auditoría de su empresa".
Puede practicar con el principio de privilegio mínimo mediante la administración de roles de organización personalizados para acceder a la configuración en la canalización de CI/CD de GitHub Actions. Para más información sobre los roles de la organización personalizados, consulta "Acerca de los roles personalizados de organización".
Seguridad
Deberías planear tu enfoque sobre el fortalecimiento de seguridad para las GitHub Actions.
Fortalecer la seguridad de los flujos de trabajo y repositorios individuales
Haz un plan para requerir buenas prácticas de seguridad para las personas que utilizan las características de GitHub Actions dentro de tu empresa. Para obtener más información sobre estas prácticas, consulte "Fortalecimiento de seguridad para GitHub Actions".
También puedes fomentar la reutilización de flujos de trabajo que ya se hayan evaluado en su seguridad. Para obtener más información, consulte "Innersourcing".
Asegurar el acceso a los secretos y recursos de despliegue
Deberías planear dónde almacenarás tus secretos. Te recomendamos almacenar secretos en GitHub, pero podrías elegir almacenarlos en un proveedor de servicios en la nube.
En GitHub, puedes almacenar secretos a nivel de repositorio u organización. Los secretos a nivel de repositorio pueden limitarse a los flujos de trabajo en ciertos ambientes, tales como los de producción o de pruebas. Para obtener más información, vea «Uso de secretos en Acciones de GitHub».
Deberías considerar la posibilidad de agregar protección manual para las aprobaciones en el caso de los entornos sensibles para que los flujos de trabajo deban aprobarse antes de obtener acceso a los secretos de los entornos. Para obtener más información, vea «Administrar entornos para la implementación».
Consideraciones de seguridad para las acciones de terceros
Existe un riesgo significativo en suministrar acciones desde repositorios de terceros en GitHub. Si permites cualquier acción de terceros, deberías crear lineamientos internos que motiven a tu equipo a seguir las mejores prácticas, tales como fijar acciones al SHA de confirmación completo. Para obtener más información, vea «Fortalecimiento de seguridad para GitHub Actions».
Redes privadas con ejecutores hospedados en GitHub
Puede utilizar los ejecutores hospedados en GitHub con una VNet de Azure Esto le permite utilizar la infraestructura administrada en GitHub para el CI/CD, a la vez que proporciona control total sobre las directivas de red de los ejecutores. Para más información sobre Azure VNET, consulta ¿Qué es Azure Virtual Network? en la documentación de Azure. Para obtener más información, vea "Acerca de las redes privadas de Azure para ejecutores hospedados en GitHub en su empresa".
Innersourcing
Piensa cómo tu empresa puede utilizar características de GitHub Actions para la automatización de innersource. El innersourcing es una forma de incorporar los beneficios de las metodologías de código abierto en tu ciclo de desarrollo de software interno. Para obtener más información, consulte Introducción a innersource en Recursos de GitHub.
Para compartir las acciones en toda la empresa sin publicarlas de forma pública, puedes almacenarlas en un repositorio interno y luego configurarlo para que acceda a los flujos de trabajo de GitHub Actions en otros repositorios que sean propiedad de la misma organización o de una organización de la empresa. Para obtener más información, vea «Compartir acciones y flujos de trabajo con tu empresa».
Con los flujos de trabajo reutilizables, tu equipo puede activar un flujo de trabajo desde otro sin que se produzca una duplicación exacta. Los flujos de trabajo reutilizables promueven las mejores prácticas, ayudando a tu equipo a utilizar flujos de trabajo que estén bien diseñados y ya se hayan probado. Para obtener más información, vea «Reutilización de flujos de trabajo».
A fin de proporcionar un punto de partida para que los desarrolladores creen flujos de trabajo, puede utilizar plantillas de flujo de trabajo. Esto no solo ahorra tiempo a tus desarrolladores, sino que también promueve la consistencia y las mejores prácticas a lo largo de tu empresa. Para obtener más información, vea «Creación de plantillas de flujo de trabajo para la organización».
Cada vez que los desarrolladores de flujos de trabajo quieran usar una acción que esté almacenada en un repositorio privado, deberán configurar el flujo de trabajo para que primero clone el repositorio. Para reducir la cantidad de repositorios que deben clonarse, considera agrupar las acciones que se utilizan más comúnmente en un solo repositorio. Para obtener más información, vea «Acercad e las acciones personalizadas».
Administración de recursos
Debes planear cómo administrarás los recursos requeridos para utilizar las GitHub Actions.
Ejecutores
Los flujos de trabajo de las GitHub Actions requieren ejecutores. Puedes eleigr utilizar ejecutores hospedados en GitHub o ejecutores auto-hospedados. GitHub administra el mantenimiento y las actualizaciones para ejecutores hospedados en GitHub. Para obtener más información, vea «Utilizar los ejecutores hospedados en GitHub».
Para administrar tus propios recursos, configuración o ubicación geográfica de las máquinas del ejecutor, usa ejecutores autohospedados. Para obtener más información, vea «Acerca de los ejecutores autohospedados».
Si deseas tener más control sobre las directivas de red de los ejecutores, use ejecutores autohospedados u opciones de redes privadas para ejecutores hospedados en GitHub. Para obtener más información sobre las opciones de redes privadas, consulta "AUTOTITLE".
Si estás utilizando ejecutores auto-hospedados, tienes que decidir si quieres utilizar máquinas físicas, virtuales o contenedores. Las máquinas físicas conservarán los restos de los jobs anteriores, así como las máquinas virtuales, a menos de que utilices una imagen nueva para cada job o que limpies las máquinas después de cada ejecución de un job. Si eliges los contenedores, debes estar consciente de que la actualización automática del ejecutor apagará al contenedor, lo cual puede ocasionar que los flujos de trabajo fallen. Deberías idear una solución para esto al prevenir las actualizaciones automáticas u omitir el comando para eliminar al contenedor.
También tienes que decidir dónde agregar cada ejecutor. Puedes agregar un ejecutor auto-hospedado a un repositorio individual o puedes hacerlo disponible para toda una organización en toda tu empresa. El agregar ejecutores a nivel de empresa u organización permite compartir ejecutores, lo cual podría reducir el tamaño de tu infraestructura para ejecutores. Puedes utilizar políticas para limitar el acceso a los ejecutores auto-hospedados a nivel de empresa y organización si asignas grupos de ejecutores a los repositorios u organizaciones específicas. Para obtener más información, vea «Agrega ejecutores auto-hospedados» y «Administración del acceso a los ejecutores autohospedados mediante grupos». También puede usar directivas para evitar que los usuarios usen ejecutores autohospedados de nivel de repositorio. Para obtener más información, vea «Requerir políticas para las GitHub Actions en tu empresa».
Deberías plantearse usar el escalado automático para incrementar o reducir automáticamente la cantidad de ejecutores autohospedados disponibles. Para obtener más información, vea «Autoescalar con ejecutores auto-hospedados».
Finalmente, deberías considerar el fortalecimiento de seguridad para los ejecutores auto-hospedados. Para obtener más información, vea «Fortalecimiento de seguridad para GitHub Actions».
Storage
Los artefactos te habilitan para compartir datos entre jobs en un flujo de trabajo y para almacenar datos una vez que este flujo se complete. Para obtener más información, consulte "Almacenamiento y uso compartido de datos desde un flujo de trabajo".
GitHub Actions también tiene un sistema de almacenamiento en caché que puedes usar para almacenar en caché las dependencias a fin de acelerar las ejecuciones de flujos de trabajo. Para obtener más información, vea «Almacenar en caché las dependencias para agilizar los flujos de trabajo».
Puedes usar la configuración de directiva para GitHub Actions con el fin de personalizar el almacenamiento de artefactos de flujo de trabajo, cachés y la retención de registros. Para obtener más información, vea «Requerir políticas para las GitHub Actions en tu empresa».
Su suscripción incluye algo de almacenamiento, pero si agrega almacenamiento adicional, su factura se modificará. Deberías hacer planes para estos costos. Para obtener más información, vea «Acerca de la facturación para las Acciones de GitHub».
Seguimiento del uso
Debes considerar hacer un plan para rastrear el uso que tu empresa tiene para las GitHub Actions, tal como qué tan a menudo se ejecutan los flujos de trabajo, cuántas de estas ejecuciones están pasando y fallando y qué repositorios están utilizando cuáles flujos de trabajo.
Puede ver los detalles de almacenamiento básicos y el uso de la transferencia de datos de las GitHub Actions para cada organización de su empresa desde la configuración de facturación. Para obtener más información, vea «Consulta de su utilización de Acciones de GitHub».
Para obtener datos de uso más detallados, puedes utilizar webhooks para suscribirte a la información sobre los jobs y las ejecuciones de los flujos de trabajo. Para obtener más información, vea «Acerca de webhooks».
Haz un plan de cómo tu empresa podrá pasar la información de estos webhooks a un sistema para archivar datos. Puedes considerar utilizar "CEDAR.GitHub.Collector", una herramienta de código abierto que recolecta y procesa datos de webhook desde GitHub. Para obtener más información, consulte el repositorioMicrosoft/CEDAR.GitHub.Collector
.
También deberías planear cómo habilitarás a tus equipos para obtener los datos que necesitan desde tu sistema de archivado.