GitHub: no solo para desarrolladores y por qué debería usarlo

GitHub es un servicio para alojar repositorios de Git. Los equipos de programación utilizan GitHub para el desarrollo de software colaborativo y el alojamiento de sus bases de código. Pero, GitHub también es una opción decente para alojar otros tipos de contenido de texto, como documentación técnica y trabajo de DevOps. Siempre que cualquier conjunto de archivos se pueda poner bajo el control de versiones con Git, puede alojarlos en GitHub.

Github es el repositorio de código abierto más grande del mundo y fue adquirido recientemente por microsoft. A medida que siguen la mayoría de las adquisiciones, también lo ha hecho la controversia catapultando a Microsoft a aceptar el mantra de código abierto, ya que quiere adaptar a los nuevos desarrolladores a sus servicios en la nube.

GitHub y Git

El servicio principal de GitHub se basa en Git.

Git es un software de código abierto, creado inicialmente como un sistema de control de versiones para proyectos de software. Pero, el uso de Git ahora no se limita al desarrollo de software. Git es una opción popular para el control de versiones de varias colecciones de documentos basados en texto. Algunos ejemplos son los archivos de configuración de los servidores web, la documentación técnica y los archivos de plantilla como las implementaciones de Kubernetes.

En los primeros días de GitHub, también se usaba principalmente para hospedar bases de código de software que usaban Git para el control de versiones. Pero, con la adaptación de Git para otras colecciones de documentos, como se mencionó anteriormente, la base de usuarios de GitHub se ha expandido más allá de los desarrolladores de software.

GitHub para programadores

El propósito original de Git y GitHub era administrar proyectos de software en los que varios programadores trabajaban en la misma base de código. Si eres programador, ya estarías usando GitHub para esto. En un proyecto de este tipo, un programador podría corregir un error mientras otro agrega una nueva función. Con la función de bifurcación en Git, estos programadores pueden trabajar de forma independiente en sus partes del código y luego fusionar los cambios en la rama principal. Este proceso garantiza que los cambios en el código base se agreguen en pasos incrementales. Se pueden realizar pruebas y control de calidad en cada etapa, y si se encuentra un error, se puede resolver rápidamente.

GitHub para no programadores

El caso de uso de GitHub para programadores se entiende bien. Pero, incluso si no eres un programador, aún podrías beneficiarte de ello. Examinemos dos casos de uso no relacionados con la programación de GitHub.

DevOps

DevOps es un aspecto esencial del ciclo de vida del software. El software actual no se ejecuta en una única plataforma. Se utilizan múltiples servicios de nube pública y privada para implementar el software. Para administrar de manera efectiva dichas implementaciones, DevOps debe trabajar con configuraciones y dependencias complejas.

Los ingenieros de DevOps utilizan muchas herramientas de software para gestionar estas complejidades. La mayoría de estas herramientas se basan en el modelado de la arquitectura del software utilizando YAML o lenguajes de marcado equivalentes. El uso de estos modelos también ha creado el concepto de infraestructura como código, donde la infraestructura que ejecuta el software se define en una colección de Plantillas YAML.

Despliegue de Kubernetes, Gráficos de timón, Plantillas TOSCA, Plantillas de OpenStack Heat, Plantillas de terraformación, Plantillas de AWS CloudFormation son ejemplos de tales técnicas de modelado de aplicaciones. La infraestructura gestionada por estos modelos podría ser máquinas virtuales, contenedores, clústeres de Kubernetes, almacenamiento, redes virtuales e incluso bases de datos.

Los proyectos de software complejos tienden a tener tales definiciones de modelo en una extensa colección de archivos de plantilla. A medida que evoluciona un proyecto, los ingenieros de DevOps deben seguir actualizando estas definiciones de modelo de acuerdo con las necesidades cambiantes del software.

GitHub es el lugar perfecto para alojar este tipo de colecciones de archivos. Además de las funciones de control de versiones, el conjunto de herramientas de colaboración disponible en GitHub podría beneficiar a un equipo de DevOps que trabaja en un proyecto de software ágil.

Escritores técnicos

 Un equipo de redactores técnicos que trabaja en el mismo proyecto en colaboración entre sí trabaja en estrecha colaboración con un equipo ágil de desarrolladores de software. Dichos escritores también pueden usar GitHub de la misma manera que lo hacen los desarrolladores.

GitHub ha implementado una sintaxis de formato de texto que es una versión mejorada de Markdown. Se llama Markdown con sabor a GitHub, que los escritores pueden usar para crear documentos con un formato agradable.

Beneficios de GitHub

Aunque está basado en Git, GitHub no limita su oferta de servicios al control de versiones. GitHub ofrece muchas otras características que son beneficiosas tanto para programadores como para no programadores.

Control de versiones

 Esta es la característica fundamental de Git y GitHub. El control de versiones es crucial para cualquier proyecto de software. Además, para muchos escritos técnicos y trabajos de DevOps, el control de versiones es esencial.

El control de versiones ayuda a realizar un seguimiento de los cambios que hacemos y nos da la posibilidad de volver a una versión anterior. Combinado con la función de bifurcación de Git, el control de versiones permite que un equipo de desarrolladores trabaje en el mismo repositorio simultáneamente.

Incluso si es un desarrollador independiente, el control de versiones y la bifurcación en GitHub son características beneficiosas. GitHub también puede ser una copia de seguridad de su código. Dado que se puede acceder a GitHub desde cualquier lugar, puede continuar trabajando en su repositorio desde varias computadoras sin la molestia de copiar archivos de una computadora a otra.

Colaboración en equipo

La comunicación y colaboración entre los miembros del equipo es un factor principal para el éxito de cualquier proyecto. Con la creciente preferencia por el trabajo remoto, es esencial contar con el conjunto de herramientas adecuado para respaldar el trabajo colaborativo de los desarrolladores, DevOps y los escritores técnicos que trabajan en un proyecto de software.

Las solicitudes de extracción de GitHub son la función principal para la colaboración entre personas que trabajan en el mismo repositorio. Una solicitud de extracción permite que cualquier persona realice cambios en un repositorio y solicite al propietario del repositorio que combine los cambios en la rama principal.

Cuando crea una solicitud de extracción, puede incluir los detalles de los cambios que ha realizado. Luego, los otros colaboradores pueden revisar los cambios y comentarlos para que pueda establecer de manera efectiva un canal de comunicación con todos los interesados en los cambios propuestos en la solicitud de incorporación de cambios. Otros también pueden agregar más actualizaciones a la solicitud de extracción. Una vez que todos estén satisfechos con los cambios, el propietario del repositorio puede fusionar la solicitud de extracción con la rama principal del repositorio.

Seguimiento de problemas

 Los proyectos de código abierto más notables utilizan GitHub para alojar sus bases de código. Estos proyectos tienen muchas personas que contribuyen con el código. Las empresas modernas también tienen grandes equipos de desarrollo que trabajan en proyectos de software donde los requisitos cambian rápidamente. Todos estos proyectos requieren un sistema integral de seguimiento de problemas.

GitHub Issues es la solución de GitHub para el seguimiento de problemas. Un colaborador puede crear un problema para rastrear errores o mejoras. Después de crear un problema, los mantenedores pueden asignarlo a un usuario en particular. También es posible vincular una solicitud de extracción con un problema. Puede crear una lista de tareas para un problema para realizar un seguimiento de los elementos de acción relacionados con el problema. Una vez que se resuelve el problema, su estado se puede actualizar como "Cerrado", por lo que ya no es necesario realizar un seguimiento.

Canalización de CI/CD

GitHub comenzó inicialmente como un sistema de control de versiones para repositorios de software. Pero, más tarde, se le han añadido muchas funciones. Una de esas características es GitHub Actions. Se puede utilizar para implementar un robusto Canalización de CI/CD.

CI/CD es un concepto en el que los desarrolladores actualizan el código, prueban e implementan continuamente en rápida sucesión. Existen herramientas especialmente diseñadas para respaldar y automatizar este proceso. Pero, si está alojando su código en GitHub, usar las acciones integradas de GitHub tiene más sentido que buscar una herramienta de terceros.

GitHub Actions no está estrictamente dedicado a CI/CD. Es un sistema que permite automatizar una gran variedad de tareas asociadas a un repositorio. Las acciones de GitHub se basan en eventos. Hay un conjunto exhaustivo de eventos, como envío, solicitud de extracción, problema abierto, problema cerrado, etc., asociados con un repositorio. GitHub Actions le permite definir una serie de acciones que se ejecutarán cuando se active cualquier evento deseado.

GitHub Actions también proporciona flujos de trabajo predefinidos para configuraciones populares de CI/CD. Como ejemplo, GitHub tiene un flujo de trabajo predefinido para implementar un proyecto de Node.js en Azure Web App Service. Incluso si la configuración de CI/CD que desea no está predefinida, puede implementar cualquier canalización de CI/CD personalizada con GitHub Actions.

Escaneo de código

GitHub proporciona un servicio de escaneo de código gratuito para todos los repositorios públicos. Para repositorios privados, es un servicio pago. El escaneo de código de GitHub puede descubrir vulnerabilidades de seguridad y errores de codificación. GitHub te alerta sobre esto para que puedas tomar las medidas adecuadas.

GitHub Code Scanning puede interactuar con GitHub Actions para que pueda crear una canalización completa de Ci/CD con seguridad integrada.

Documentación del código

Todo el software requiere documentación. Al usar GitHub para un proyecto de software, también puede alojar la documentación en GitHub para facilitar la accesibilidad de los usuarios.

GitHub proporciona dos formas de documentar un proyecto; Archivo README y wiki de GitHub.

Un archivo LÉAME es un archivo con formato Markdown con sabor a GitHub que coloca en la raíz de su proyecto. Esto puede servir como documentación introductoria, ya que se le presentará a cualquier usuario cada vez que visite su repositorio en GitHub.

GitHub también proporciona un wiki independiente para cada repositorio. Wiki es bueno para crear documentación detallada de varias páginas. Con Markdown con sabor a GitHub en la wiki, puede incluir enlaces de página, resaltado de sintaxis, etc., y crear documentación bien estructurada para su proyecto.

Páginas de GitHub: un valor añadido

Cualquier persona con un perfil de GitHub puede usar las páginas de GitHub para alojar un sitio web estático de forma gratuita. Esto se puede crear con HTML simple, CSS o con uno de los generadores de sitios estáticos populares, como jekyll, Siguiente.js, Hugo, etc. Las páginas de GitHub son una excelente razón para crear un perfil de GitHub si aún no lo ha creado.

Conclusión

GitHub es una gran plataforma para alojar repositorios de Git. Los programadores, escritores técnicos, DevOps, etc., se beneficiarán igualmente del uso de GitHub para su trabajo.

Un perfil de GitHub también puede actuar como un portafolio personal para mostrar su trabajo. Como beneficio adicional de tener un perfil de GitHub, puede usar las páginas de GitHub para alojar su Sitio web personal también.

Y en cuanto al futuro de Github y cómo Microsoft ha manejado la plataforma de código abierto, me parece apropiado citar a un desarrollador por el identificador de Reddit. MarcCBD, "En realidad, están haciendo un muy buen trabajo en la comunidad de código abierto y son uno de los principales contribuyentes".

es_CRES