Conocimientos DevOps

Hoja de Ruta

Hoja de Rutas de DevOps

Adminstración de sistemas:

  • Instalación de SO: Saber crear un pendrive booteable con la imagen de un SO y realizar el proceso de instalación del mismo.
  • Linux: Tener un conocimiento básico de su estructura de archivos y paquetes, así como las distros más usadas.
  • Bash: Permite navegar y administrar el SO, así como implementar scripts en el mismo.
  • Nano/Vim: Es útil saber usar un editor de texto en la terminal para poder editar archivos de configuración en servidores.
  • SSH: Permite conectarse mediante la terminal de forma remota a otra PC.
  • SCP: Permite copiar archivos entre PCs usando el protocolo SSH.
  • YAML: Lenguaje de scripting muy común en archivos de configuración del sistema y varias aplicaciones.

Redes:

  • Conceptos básicos: Es necesario tener un conocimiento básico de redes para poder implementarlas y configurarlas. Esto abarca conceptos como: qué es una red, cómo se crean y configuran, qué son las direcciones IP, DNS, puertos, paquetes, firewalls, etc.
  • Redes en premisa: Instalación y configuración de redes dentro de un espacio físico. Involucra la configuración de cada dispositivo dentro de la red, así como la instalación de sus componentes de hardware físicos, como cableados, placas, etc.
  • Redes en la nube: Implica saber establecer redes virtuales que abstraen al técnico de sus aspectos físicos, pero que requieren una buena administración de recursos rentados, a fines de evitar grandes costos.

Infraestructura:

  • Terraform: Herramienta de aprovisionamiento que permite declarar manifiestos para crear entornos de trabajo replicables y escalables.
  • Ansible: Herramienta que facilita la configuración y el deploy de aplicaciones en la infraestructura establecida. Nota: Ambas herramientas son muy similares ya que son parte de la categoría de “Infraestructura como código”, pero es útil conocer ambas y usualmente se usan de forma conjunta. Se utiliza Terraform para establecer y aprovisionar la infraestructura y Ansible para configurarla y lanzar aplicaciones.
  • Docker: Herramienta que crea imágenes que encapsulan una aplicación junto a sus dependencias y luego pueden ser lanzadas en varios contenedores de forma veloz.
  • Docker compose: Manifiestos donde se configuran varios servicios de Docker, facilitando su lanzamiento en cualquier entorno.
  • Kubernetes: Orquestador que provee herramientas para administrar una gran cantidad de contenedores de Docker, así como asegurar una alta disponibilidad de los servicios lanzados.
  • Proxmox: Herramienta que permite establecer nodos administrables de VMs.

Desarrollo:

  • Git: Herramienta de organización y respaldo del código. Brinda herramientas para evitar conflictos en grupos de desarrollo.
  • CI/CD: Es una categoría de herramientas que permite la automatización del testeo y lanzamiento de una aplicación, una vez que su código es actualizado. Dependiendo de la plataforma en la que se almacene el código pueden variar como Github Actions, Gitlab o herramientas independientes como Jenkins.
  • Backend
  • Frontend

Soporte técnico:

  • Soporte de software: A veces solapado con áreas de administración de sistemas y redes. Implica tener conocimientos básicos para poder diagnosticar y solucionar problemas relacionados al software o sistema operativo en uso.
  • Soporte de hardware: Implica comprender cómo diagnosticar problemas de hardware, reemplazar componentes y poder hacer un relevamiento de recursos necesarios para casos de uso específicos.

Seguridad:

Nota: La seguridad es un área trasversal a todo el resto. Según el rol que se tome, variarán las herramientas para aprender.

  • Un administrador de sistemas debe garantizar los permisos necesarios para limitar la magnitud de incidencia de distintas categorías de usuarios para evitar modificaciones indeseadas en el sistema, así como la ejecución de código malicioso.
  • Un técnico de redes debe establecer firewalls y redireccionamiento de puertos para evitar conexiones externas indeseadas en la infraestructura.
  • Un técnico de infraestructura debe evitar el uso de aplicaciones o dependencias que impliquen riesgos en la seguridad de la misma.
  • Un desarrollador debe prevenir el acceso indeseado a datos de su aplicación o el control o modificación involuntarios de la misma.
  • Un técnico de soporte debe estar seguro que las soluciones que aplica no pueden llevar al daño de los componentes de hardware, el sistema o sus aplicaciones.

Conocimientos periféricos útiles:

  • Buen manejo de inglés: Permite acceder a un mayor volumen de documentación y recursos educativos.
  • Uso avanzado de herramientas de búsqueda: Permite filtrar mejor los resultados al realizar una búsqueda, agilizando el proceso de encontrar la respuesta más adecuada.

Nota: DevOps Roadmap

0%