DevOps es mucho más que dominar herramientas nuevas en programación, DevOps es una cultura organizacional que está revolucionando la manera en que los equipos de programadores trabajan. ¿Qué pensarías si te diéramos la fórmula para mejorar tus resultados invirtiendo menos tiempo en tus desarrollos? ¿Y si pudieras llevar esta fórmula a tu equipo de trabajo? ¡Este es el día a día de un DevOps Developer! En este post te daremos los cuatro ingredientes iniciales de esta fórmula.
Testea cada etapa de tus proyectos
Desarrollar código de calidad es una tarea complicada y divertida a partes iguales, pero somos humanos y es inevitable que en algún momento se nos cuele algún gazapo: un caso de uso mal implementado, una condición no contemplada, una excepción no controlada, etc. Cuanto más lejos llega un error en el ciclo de vida de nuestro proyecto o producto, peores son las consecuencias que produce: dificultad para reproducirlo, funcionamiento imprevisible, problema de diseño sobre el que se ha construido funcionalidad, etc.
Por ello es importante que desarrolles tests que puedan poner a prueba los casos de uso que has implementado, y así minimizar un posible impacto negativo ya desde fases tempranas. Todos los lenguajes de programación tienen sus librerías y/o frameworks para escribir tests: busca cuál aplica a tu caso y dedica tiempo a dominarlos.
Automatiza parte de tu trabajo
Las tareas repetitivas y mecánicas no son nuestro fuerte, y ante la probabilidad creciente de introducir errores, debemos automatizarlas todo lo posible. La integración de código es un gran ejemplo. El código que se sube al repositorio debe estar siempre en estado desplegable; esto asegura, entre otras cosas, que podamos desplegar en cualquier entorno de manera controlada y sin riesgo, pues el código tiene la calidad esperada y el producto final presume de robustez.
Esto se consigue definiendo una serie de acciones destinadas a testar, medir e integrar de manera automática cada cambio que se hace en el repositorio de código. Puedes apoyarte en los servicios de CI/CD que ofrecen GitHub y GitLab, entre otros muchos, para implementar Integración Continua en tus proyectos.
Utiliza entornos virtuales
Si tus proyectos te exigen generar distintos entornos para la ejecución de pruebas, compilaciones, empaquetados y/o despliegues, vas a apreciar herramientas como Vagrant o Docker. Tanto máquinas virtuales (VM) como contenedores de software pueden ayudarte a levantar entornos en cuestión de minutos, e incluso segundos, tan solo con un clic o un comando de tu terminal. No es necesario que degrades tu equipo instalando cientos de librerías y dependencias para intentar simular un entorno: apóyate en estas herramientas.
Mide y vencerás
Monitoriza y obtén métricas de todo lo que sea susceptible de ello. Esto te ayudará a entender mejor cómo tu software se está desenvolviendo en la plataforma donde está desplegado. Por ejemplo, podrías tener acceso en tiempo real al consumo de recursos (CPU, memoria, red, etc.) de tu software e identificar así posibles optimizaciones a acometer. O también, ver cómo se comporta cuando recibe un incremento de tráfico de usuarios o detectar anomalías. Incluso puedes definir alertas para recibir notificaciones de casos graves que deban ser atendidos con urgencia. Todo esto puedes hacerlo con herramientas como Prometheus y Grafana.
Este es solo el comienzo en la cultura DevOps, pero te podemos asegurar que aplicando estos consejos a tu trabajo, podrás ver cómo empezarán a mejorar notablemente tus procesos de desarrollo. ¿Ahora quieres saber qué sigue? El siguiente paso será convertirte en un Full Stack DevOps Developer y dominar los métodos, tecnologías y herramientas que potenciarán tu trabajo y el de tu equipo.