Home » Cómo empezar como DevOps – Parte 4
desarrollo profesional como devops

Cómo empezar como DevOps – Parte 4

Esta es la parte 4, la última sobre la serie de artículos "Cómo empezar como DevOps". Hoy nos toca hablar sobre Monitoreo, Bases de datos y Pipelines CI/CD.

Esta es la parte 4, la última sobre la serie de artículos «Cómo empezar como DevOps». Empecemos a hablar sobre los 3 puntos pendientes para formarte en esta línea de especialización.

Si no leíste la parte 3 de este artículo, te recomiendo hacerlo ahora para mantener la hilación.

Paso 5 – Monitoreo y observabilidad

No podemos hablar de un verdadero Ingeniero DevOps o SRE si el monitoreo y observabilidad no está bajo su radar y dominio.

Por qué aprender sobre monitoreo

Aquí algunas razones de por qué debemos enfocarnos en el aprendizaje de este tema:

1. Entendimiento Profundo del Sistema: El monitoreo, observabilidad y APM (Gestión del Rendimiento de Aplicaciones) son pilares fundamentales para comprender cómo funcionan tus sistemas en tiempo real.

2. Detectar Problemas antes de que Afecten a los Usuarios: La observabilidad te proporciona una visión en tiempo real de tus sistemas y aplicaciones. Esto significa que puedes detectar problemas potenciales antes de que impacten a tus usuarios.

3. Mejora Continua: Utilizando la información de monitoreo de métricas, puedes realizar mejoras continuas en tus sistemas para optimizar su funcionamiento y eficiencia.

4. Alineación con Objetivos del Negocio: El monitoreo y la observabilidad no solo se trata de detectar problemas técnicos, sino de alinear tus sistemas con los objetivos del negocio. Puedes medir cómo tus aplicaciones afectan los resultados empresariales y tomar decisiones basadas en datos.

5. Rápida Respuesta a Incidentes: Cuando ocurre un incidente, como una caída del servidor o una aplicación que no responde, el APM te ayuda a identificar rápidamente la causa raíz.

Herramientas, automatización y experiencia de usuario

Aprender a utilizar herramientas y tecnologías como Prometheus, Grafana, Elastic Stack y otras, te hace más atractivo para los empleadores y te posiciona como un profesional en la vanguardia de la tecnología. Por eso, no olvides incluir estas herramientas en tu área de conocimiento.

Sistema de monitoreo integral con Prometheus y Grafana

Al combinar la observabilidad con la automatización, puedes crear sistemas que se adapten automáticamente a las condiciones cambiantes, lo que reduce la necesidad de intervención manual y aumenta la eficiencia operativa.

Finalmente, la experiencia del usuario final es esencial para el éxito de cualquier aplicación. El monitoreo y la observabilidad te permiten medir y mejorar la experiencia del usuario, lo que puede marcar la diferencia en la retención de clientes.

Paso 6 – Bases de datos

Las bases de datos son quizá el componente más importante de toda arquitectura de aplicaciones. Por eso, si queremos trabajar de forma eficiente con un enfoque DevOps, debemos desempeñarnos bien en un nivel básico sobre la gestión de bases de datos.

Importancia del aprendizaje de bases de datos

1. Datos como Activo Empresarial: Aprender sobre bases de datos te permite comprender cómo se almacenan, gestionan y utilizan estos datos para impulsar la toma de decisiones y la estrategia empresarial.

2. Integración de Sistemas: Las bases de datos son fundamentales para la integración de sistemas. Aprender a trabajar con ellas te permite conectar aplicaciones y sistemas de manera efectiva, lo que es esencial en un entorno DevOps donde la automatización y la orquestación son clave.

3. Almacenamiento Eficiente: Una comprensión de las BBDDs te ayuda a diseñar esquemas de almacenamiento eficientes que optimizan el rendimiento y el uso de recursos. Esto es crucial para garantizar que tus aplicaciones funcionen de manera óptima.

4. Escalabilidad y Rendimiento: Conocer los conceptos de bases de datos te permite diseñar sistemas escalables que pueden manejar cargas de trabajo crecientes. Asimismo, te permite identificar y resolver cuellos de botella de rendimiento.

5. Seguridad de Datos: Aprender sobre bases de datos te ayuda a implementar medidas de seguridad adecuadas para proteger la información sensible y cumplir con regulaciones de seguridad.

6. Automatización de Tareas: Aprender a automatizar copias de seguridad, actualizaciones y despliegues de bases de datos te ahorra tiempo y reduce el riesgo de errores humanos.

Tecnologías

Es crucial conocer sobre Bases de Datos Relacionales (RDBMS) y las Bases de Datos NoSQL, la diferencia entre ellas y los casos de uso de cada uno.

En lo concerniente a motores de bases de datos y habilidades afines yo incluiría:

  • MySQL o MariaDB (mandatorio)
  • PostgreSQL (deseado)
  • MongoDB (deseado)
  • Motores de BD NoSQL en Cloud
    • DynamoDB (Amazon)
    • Cosmos DB (Azure)
    • Bigtable (Google Cloud)
  • Monitoreo de métricas de bases de datos
  • Monitoreo de slow queries

Paso 7 – Pipelines CI/CD

Este, a mi parecer, es la parte más importante de todas las prácticas DevOps: la automatización de flujos de trabajo.

¿Por qué son tan importantes?

1. Entrega Continua de Software: Los pipelines CI/CD son la columna vertebral de la entrega continua de software. Así pues, aprender a diseñar y gestionarlos te permite automatizar la construcción, pruebas y despliegue de aplicaciones de manera eficiente y confiable.

2. Reducción de Errores: Minimiza los errores humanos en el proceso de desarrollo y despliegue. Así, lograrás una mayor calidad del software y a la reducción de problemas post-lanzamiento.

3. Velocidad y Eficiencia: Los pipelines permiten que las nuevas características y correcciones de errores llegan más rápidamente a los usuarios finales.

4. Feedback Continuo: Te permiten la retroalimentación continua a través de pruebas automáticas y despliegues incrementales. Gracias a ello, ayudas a los equipos a identificar y solucionar problemas de manera temprana, lo que ahorra tiempo y recursos.

5. Reducción de Costos: La adopción de pipelines CI/CD ahorra tiempo y recursos, lo que se traduce en una reducción de costos operativos. En consecuencia, los procesos de desarrollo y despliegue sean más rentables para la empresa.

Herramientas tecnológicas

A mi parecer, Jenkins es una de las herramientas clave que no podemos dejar de lado. No soy partidario de su uso pero, sí considero que al menos aprendamos su uso básico.

En su lugar, recomendaría trabajar con herramientas más completas, extensibles, más limpias en su configuración y entendimiento. Entre ellas está GitLab CI, GitHub Actions y Azure Pipelines (parte de Azure DevOps).

Compendio de herramientas usadas en pipelines CI/CD

Las soluciones CI/CD son una parte fundamental de este apartado. Sin embargo, hay más herramientas complementarias que deben integrarse como:

  • Linters o analizadores de sintaxis (ESLint, Hadolint, phplint, etc.)
  • Escaneo de secretos (gitleaks o similares)
  • Tests (Cypress, Selenium, Postman/Newman, Mocha, Jest y un largo etcétera)
  • Escaneo de vulnerabilidades (SonarQube, Trivy, Veracode, Checkmarx, Fortify, y otro largo etcétera)
  • Política como Código (Hashicorp Sentinel, Open Policy Agent, checkov, etc.)
  • Y varias otras más

No te dejes asustar por la lista arriba mostrada. Algunas de ellas las irás conociendo poco a poco, según la naturaleza de tus proyectos y la la demanda en tu trabajo.

Conclusión y cierre

Este ha sido un artículo extenso, dividido en 4 partes. Si has llegado hasta aquí, ¡te felicito! Se ve que estás realmente comprometido con tu desarrollo profesional y de verdad te interesa adentrarte en el mundo DevOps.

Los temas cubiertos en esta serie de artículos no son exhaustivos. Puede haber aspectos importantes no considerados, como la puesta en práctica de conceptos como TDD (Test Driven Development), BDD (Behavior Driven Development), Infrastructura inmutable, Desarrollo seguro y DevSecOps, métricas de rendimiento de procesos y equipos DevOps, cultura y prácticas de agilidad, entre otros.

Por lo tanto, invito al lector a seguir investigando más sobre estos temas conforme vaya adoptando más y más estas prácticas en su trabajo diario. Asimismo, el comprometerse seriamente con su desarrollo profesional, plantearse objetivos (Ejm: cursos y certificaciones) son imprescindiblesl si en verdad queremos llegar al siguiente nivel.

Finalmente, aunque no directamente ligado al tema técnico, recomiendo encarecidamente el aprendizaje del idioma inglés. No solo conformarse en tener capacidad de lectura, sino de escucha y habla fluida. Esto te servirá no solo para acelerar tu proceso de aprendizaje técnico de DevOps -pues la gran parte del conocimiento en Internet está en inglés- sino también para postular a una oferta laboral del extranjero, ya que hay una gran demanda no satisfecha de Ingenieros DevOps, para la cual se pide un nivel avanzado de inglés. ¿No querrás dejar pasar la oportunidad de ganar un 50% o hasta 100% más solo por no saber inglés, cierto?

Gracias por acompañarme hasta aquí. Te deseo el mejor de los éxitos en tu carrera profesional.

Post navigation

Deja un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *