
Como ingeniero DevOps, aprender los conceptos básicos de git es muy esencial. En este blog, voy a hablar de git para devops y por qué git es una habilidad importante para un ingeniero DevOps. También he enumerado los recursos relevantes para aprender Git de la manera correcta.
¿Qué es Git?
Git es un sistema de control de versiones distribuido de código abierto. Es muy ligero y funciona en casi todos los sistemas operativos.
En 2005, Linus Torvalds creó git como un sistema de control de versiones distribuido cuando el equipo de desarrollo Linux kernel no pudo seguir utilizando BitKeeper de forma gratuita.
Ahora, git es el sistema de control de versiones de facto utilizado por desarrolladores de todo el mundo. Su naturaleza distribuida facilita el desarrollo, seguimiento y buena colaboración en los cambios de código.
Los resultados de la encuesta para desarrolladores de StackOverflow que se muestran a continuación, muestran que el 93% de los ingenieros utilizan Git y que es una herramienta fundamental para ellos.
Cuando decimos git, hoy la mayoría de los alumnos nuevos se refieren a Github.
Plataformas como Github o Bitbucket están construidas sobre git con funcionalidades adicionales que ayudan a los ingenieros y a las organizaciones a alojar y controlar la versión del código en el repositorio remoto Git. También, viene con buenas integraciones para trabajar con otras herramientas CI/CD de código abierto.
Con Github Actions, usted puede configurar toda la pipeline de CI/CD utilizando las propias plataformas de Github y Gitlab. Esto elimina la necesidad de gestionar múltiples herramientas para CI/CD.
Git para Devops
Veamos los factores clave de por qué Git es necesario para DevOps.
-
Para tener discusiones significativas de CI/CD con los desarrolladores
Una de las tareas de un ingeniero de DevOps es diseñar y desarrollar pipelines de CI/CD.
Git juega un papel clave en CI/CD. Desde mi experiencia trabajando en diferentes empresas, puedo decir que no hay un único estándar para la ramificación de git y flujos de trabajo. A veces, usted necesita sentarse con los desarrolladores y discutir el enfoque correcto para la ramificación de git en el pipeline de CI/CD. Esto incluye el etiquetado git, versión de lanzamiento, etc.
De hecho, en la mayoría de las organizaciones, los ingenieros de DevOps poseen y operan los repositorios git.
Por lo tanto, para tener una discusión significativa con los equipos de desarrollo, debe tener un buen conocimiento de Git.
-
Para la infraestructura como código
También, cuando hablamos de infraestructura como código, desarrollamos y mantenemos todo la infraestructura de código de la en Git. Ya sea un pipeline de Jenkins, un playbook de Ansible o un módulo de Terraform.
Tratamos el código de la infraestructura de la misma manera que el código de la aplicación. Es decir, el código de infraestructura pasa por las mismas unidades de pruebas y de integración antes de ser desplegado en cualquier entorno.
Esto significa que incluso el código de la infraestructura necesita tener un pipeline CI/CD. Esto también se traduce en flujos de trabajo basados en Git.
La mayoría de las empresas no siguen el desarrollo dirigido por pruebas para el código infra, pero es la forma estándar de desarrollar código de infraestructura.
-
Gitops
Con prácticas técnicas como GitOps, git actúa como fuente de verdad para todas las configuraciones de la infraestructura.
Con Gitops, cualquier cambio en las configuraciones del repo de git se despliega en la infraestructura.
Así que es una necesidad para los ingenieros de DevOps saber todo sobre git.
Hoja de ruta de aprendizaje de Git
Aquí está la hoja de ruta sobre cómo usted puede aprender git.
Tema | Recurso |
Entender el sistema de control de versiones | ¿Qué es un sistema de control de versiones? |
Entender el control de versiones distribuido | ¿Qué es el control de versiones distribuido? |
Instalación de Git | Sitio web oficial de Git Descargas |
Clientes GUI | Clientes GUI de Git |
Bases de Git | Fundamentos de Git Videos |
Fundamentales de Git | Tutorial guiado de git |
Git Avanzado | Tutorial avanzado de Git Atlassian |
¿Cuáles son los mejores recursos para aprender Git?
Si está buscando cursos guiados para aprender git, he escogido los siguientes y mejores recursos para aprender git de la manera correcta.
- Guía de Git y Control de Versiones [curso interactivo educativo].
- Control de versiones con Git [Curso gratuito de Udacity]
- Git Complete: La guía definitiva, paso a paso de Git [Udemy]
Preguntas de la entrevista de Git DevOps
Cuando se trata de preguntas de entrevista DevOps, se trata más de escenarios prácticos. Así que la mayoría de las preguntas de la entrevista de Git DevOps se basarán en escenarios en tiempo real del proyecto particular para el que lo estén entrevistando.
Usted puede aprender sobre las funcionalidades genéricas de Git utilizando los recursos que he mencionado anteriormente. Debería ser capaz de responder a todas las preguntas genéricas sobre Git.
Sin embargo, si no tiene experiencia en trabajar con git en proyectos en tiempo real, tengo una solución para usted.
Vaya a la etiqueta git de Stackoverflow, y busque temas específicos de git. Por ejemplo git rebase. Deberían aparecer muchos escenarios y problemas en tiempo real a los que se enfrenta la gente, como se muestra en la siguiente imagen.
Obtendrá mucha información que puede ayudarlo en las entrevistas.
Otro lugar que puede buscar es, Reddit Git. Aquí también puede encontrar muchas conversaciones sobre git que serán útiles para el aprendizaje y las entrevistas.
A continuación, los conceptos importantes de git que debe aprender para las entrevistas de DevOps.
- Estrategias de ramificación de Git
- Flujos de trabajo de Git
- Desarrollo basado en Trunk
- Git Cherry Picking
- Importancia de git Rebase
- git merge vs git rebase
- git pull vs fetch
- git revert vs reset
- git stash
- Etiquetado de Git
- Comprobar un commit específico
- detached HEAD
Conclusión
Git es un sistema de control de versiones simple, pero hay poderosas herramientas alrededor de git para la automatización de DevOps.
Una vez que aprenda lo básico, es mejor crear sus repositorios de código y probar todas las características avanzadas de git. Para retener el conocimiento, puede documentar todas las funcionalidades de git que aprendió en un repositorio de git.
También, si quiere aprender Linux, eche un vistazo a mi guía sobre cómo aprender shell scripting en Linux.
Tomado de la web:
Traducido al español por Devops Latam.
Contribuido por Bibin Wilson, Enero 11 de 2022, – https://devopscube.com/git-for-devops/