Esta es una guía paso a paso sobre cómo convertirse en ingeniero de DevOps, con enlaces a recursos de aprendizaje relevantes.
Si desea obtener más información sobre DevOps, asegúrese de suscribirse a mi boletín .
Si encuentra útil este repositorio, considere apoyarme en Patreon:
El propósito de esta hoja de ruta es darle una idea sobre el paisaje. La hoja de ruta lo guiará si no sabe qué aprender a continuación, en lugar de alentarlo a elegir lo que está de moda y está de moda. Debería comprender por qué una herramienta sería más adecuada para algunos casos que otra y recordar que exagerar y estar de moda no siempre significa que sea la más adecuada para el trabajo.
Si le gusta o está utilizando este proyecto para aprender o comenzar su solución, dele una estrella. ¡Gracias!
Descargar la versión PDF.
Recursos de aprendizaje para ingenieros de DevOps (en su mayoría gratuitos)
1. GIT
2. Aprenda un lenguaje de programación
3. Aprenda Linux y secuencias de comandos
4. Aprenda redes y seguridad
5. Aprenda a administrar servidores
6. Aprenda los contenedores
7. Aprenda a orquestar contenedores
8. Aprenda infraestructura como código
9. Aprenda CI/CD
10. Aprenda a monitorear y observar
11. Conozca un proveedor de la nube
12. Aprenda prácticas de ingeniería de software
Recursos adicionales
Herramientas
Libros
Todos sus recursos (archivos) se guardarán en un repositorio GIT. Esos archivos son código de aplicación pero también infraestructura como código .
Git es una herramienta gratuita que se utiliza para la gestión del código fuente. Git está acostumbrado a rastrear cambios en el código fuente, lo que permite que varios desarrolladores trabajen juntos en un desarrollo no lineal.
Las dos plataformas Git más populares son GitLab y GitHub .
Aquí necesita aprender los comandos de Git, como git clone, bifurcar, fusionar y cómo colaborar en un proyecto con solicitudes de extracción.
Recursos:
Libro Pro Git GRATIS
Aprenda Git por Atlassian GRATIS
Aprenda la ramificación de Git GRATIS
Aprenda Git y GitHub en CodeAcademy GRATIS
Explorador de comandos Git GRATIS
Inmersión en Git GRATIS
Una referencia de Visual Git GRATIS
Como ingeniero, se recomienda conocer al menos un lenguaje de programación que pueda utilizar para escribir scripts de automatización .
Algunos lenguajes de programación populares para DevOps-es son Python, Go y JavaScript .
Python es un lenguaje multiparadigma. Al ser un lenguaje interpretado, el código se ejecuta tan pronto como se escribe y la sintaxis permite escribir código de diferentes maneras. Con frecuencia se recomienda Python como el primer idioma que los nuevos programadores deben aprender, debido a su enfoque en la legibilidad, la coherencia y la facilidad de uso.
Aquí necesita aprender conceptos básicos de lenguajes de programación, como sintaxis, if/else, bucles, estructuras de datos, etc.
Recursos:
Automatiza las cosas aburridas con el libro Python GRATIS
Curso intensivo de Python GRATIS
El tutorial de JavaScript moderno GRATIS
Curso intensivo de JavaScript para principiantes GRATIS
JavaScript elocuente, tercera edición, libro GRATUITO de Marjin Haverbeke
Sigue el ejemplo GRATIS
Un sistema operativo sirve como puente entre el usuario de una computadora y su hardware. Su función es ofrecer un entorno en el que un usuario pueda ejecutar programas de forma cómoda y eficaz.
Como la mayoría de los servidores utilizan el sistema operativo Linux , es necesario que se sienta cómodo con Linux y su CLI.
Una distribución fácil de iniciar es Ubuntu .
Además, necesita conocer secuencias de comandos para automatizar tareas de desarrollo y operaciones.
Aquí puedes aprender lenguajes específicos del sistema operativo, como Bash o Powershell , o independientes, como Python o Go.
Recursos:
Sistema operativo: descripción general GRATIS
Tutorial de secuencias de comandos de Shell GRATIS
Tutorial de Powershell para principiantes: aprenda secuencias de comandos de Powershell GRATIS
Manual de referencia de Bash GRATIS
Guía definitiva: introducción gratuita a Ubuntu
Manual de FreeBSD GRATIS
Manual de comandos de Linux GRATIS
Un protocolo de red es un conjunto establecido de reglas que determinan cómo se transmiten los datos entre diferentes dispositivos en la misma red. Básicamente, permite que los dispositivos conectados se comuniquen entre sí, independientemente de cualquier diferencia en sus procesos internos, estructura o diseño.
Aquí necesitarás saber cómo funciona una red, cómo configurar firewalls , entender cómo funciona DNS , modelo OSI , direcciones IP, puertos, etc.
Recursos:
Modelo OSI explicado GRATIS
Redes de computadoras: un enfoque de arriba hacia abajo libro Video Contenido video
Curso TCP/IP y fundamentos de redes para profesionales de TI Pluralsight
DevSecOps: Protección maestra de CI/CD | Curso de Udemy sobre DevOps Pipeline
Seguridad práctica en DevOps: garantice la seguridad, la implementación y la entrega continuas con DevSecOps Book
Libro de seguridad de DevOps: seguridad en la nube
La gestión de servidores incluye toda la supervisión y el mantenimiento de la infraestructura necesarios para que los servidores funcionen de forma fiable y con niveles de rendimiento óptimos. Los objetivos principales de una estrategia eficaz de gestión de servidores son:
Minimice las ralentizaciones y el tiempo de inactividad del servidor mientras maximiza la confiabilidad.
Cree entornos de servidores seguros.
Escale servidores y operaciones relacionadas para satisfacer las necesidades de la organización a lo largo del tiempo.
Aquí necesitará saber qué son los servidores proxy directos e inversos , los servidores de almacenamiento en caché y cómo operar servidores web , como Nginx, Apache o IIS.
Recursos:
¿Qué es un proxy inverso? GRATIS
Servidor de caché GRATIS
Proxy inverso versus proxy directo: las diferencias GRATIS
¿Qué es el equilibrio de carga? GRATIS
¿Qué es un cortafuegos? GRATIS
El manual de NGINX GRATIS
Aprenda el servidor Apache GRATIS
Aprenda IIS GRATIS
Un contenedor es una unidad estándar de software que empaqueta código y todas sus dependencias, de modo que la aplicación se ejecute de forma rápida y confiable de un entorno informático a otro.
Docker es, con diferencia, la tecnología de contenedores más popular en la actualidad. Una imagen de contenedor Docker es un paquete de software ejecutable, liviano e independiente que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones. Aquí necesita saber cómo ejecutar contenedores, Docker Networking, volúmenes, Dockerfiles y ejecutar varios contenedores con Docker-Compose.
Recursos:
¿Qué son los contenedores? GRATIS
Contenedores de aprendizaje desde abajo hacia arriba GRATIS
Tutorial de Docker para principiantes de TechWorld con Nana GRATIS
Docker Mastery: con Kubernetes +Swarm de un curso de Udemy de Docker Captain
¿Qué es la malla de servicios? GRATIS
DevOps con Kubernetes GRATIS
La orquestación de contenedores automatiza la implementación, gestión, escalado y creación de redes de contenedores.
La orquestación de contenedores se puede utilizar en cualquier entorno en el que se utilicen contenedores. Puede ayudarle a implementar la misma aplicación en diferentes entornos sin necesidad de rediseñarla. Y los microservicios en contenedores facilitan la organización de servicios, incluidos el almacenamiento, las redes y la seguridad.
Aquí debe aprender cómo funciona Kubernetes y cómo administrar el clúster de Kubernetes e implementar aplicaciones en él.
Recursos:
Curso intensivo de Kubernetes para principiantes absolutos de TechWorld con Nana GRATIS
Introducción: cómo surgió Kubernetes, qué es y por qué debería importarle
Curso de Udemy Administrador certificado de Kubernetes (CKA) con pruebas de práctica
Aprenda Kubernetes: desde principiantes hasta avanzados con el curso KodeKloud
Comprenda cuándo usar Cluster Services, Ingresses o API Gateway GRATIS
Comprenda qué problemas resuelve Service Mesh (use una abstracción smi-spec.io GRATIS
Aprenda a automatizar TLS y DNS GRATIS
Libro de funcionamiento de Kubernetes
Ruta de aprendizaje de Kubernetes: 50 días desde cero hasta el héroe de Microsoft GRATIS
A veces denominado IaC , se refiere a las técnicas y herramientas utilizadas para definir la infraestructura, generalmente en un lenguaje de marcado como YAML o JSON. La infraestructura como código permite a los ingenieros automatizar la configuración y el desmontaje del entorno. Acelera y elimina riesgos en la implementación mediante el aprovisionamiento de entornos de copia dorada bajo demanda.
Terraform es la herramienta de aprovisionamiento de infraestructura más popular, pero existen otras como Ansible, Chef, Puppet y Vagrant.
Aquí necesita saber cómo realizar el aprovisionamiento de infraestructura y la gestión de configuración .
Recursos:
GUI, CLI, API: aprenda los términos básicos de infraestructura como código GRATIS
Tutoriales oficiales de Terraform GRATIS
Una guía completa para Terraform GRATIS
¡Automatiza la documentación de Terraform como un profesional! GRATIS
Escribir módulos Terraform reutilizables GRATIS
¿Qué es Istio? GRATIS
Descripción general de marionetas GRATIS
Cursos de Títeres GRATIS y DE PAGO
Comenzando con Ansible GRATIS
Aprender los conceptos básicos de Ansible
Comience a utilizar Red Hat Ansible GRATIS y DE PAGO
Curso de Udemy Dominar Ansible
Aprende Chef GRATIS
La integración continua/implementación continua (CI/CD) es un método para entregar aplicaciones con frecuencia a los clientes mediante la introducción de la automatización en las etapas de desarrollo de la aplicación. CI/CD es una solución a los problemas que la integración de código nuevo puede causar a los equipos de desarrollo y operaciones.
CI/CD introduce automatización continua y monitoreo continuo a lo largo del ciclo de vida de las aplicaciones, desde las fases de integración y prueba hasta la entrega y la implementación. Estas prácticas conectadas a menudo se denominan " canalización de CI/CD " y cuentan con el respaldo de equipos de desarrollo y operaciones.
Hay diferentes etapas de una canalización de CI/CD, como: compilación, prueba e implementación , pero podrían incluirse muchas más actividades:
Verificar el código desde el control de versiones y compilarlo
Tener puertas preparadas para diferentes tipos de aprobaciones.
Gestión de variables de entorno
Reiniciar servicios
Ejecutando pruebas
Y más...
Aquí debe aprender cómo configurar el servidor CI/CD, integrar código y activar canalizaciones automáticamente, y crear y empaquetar herramientas de administración.
Algunas herramientas de CI/CD populares son Jenkins, TeamCity, CircleCI, Bamboo, GitLab y Azure DevOps.
Recursos:
Integración Continua GRATIS
Canalización de CI/CD: una suave introducción GRATIS
Aprende GitLab con tutoriales GRATIS
Comience con GitLab CI/CD GRATIS
Jenkins, de cero a héroe: conviértete en un curso de Udemy Master de DevOps Jenkins
Aprenda las acciones de GitHub GRATIS
Sintaxis de flujo de trabajo para GitHub Actions GRATIS
Aprenda Azure DevOps GRATIS
Hojas de trucos de GitLab GRATIS
El monitoreo implica supervisar todo el proceso de desarrollo desde la planificación, el desarrollo, la integración y las pruebas, la implementación y las operaciones. Implica una vista completa y en tiempo real del estado de las aplicaciones, servicios e infraestructura en el entorno de producción.
Esto es especialmente importante cuando nuestro software está en producción y necesitamos realizar un seguimiento de todo tipo de problemas en nuestra infraestructura y aplicación.
Las dos herramientas más populares son Prometheus y Grafana .
Aquí necesita saber cómo configurar el monitoreo y visualizar datos.
Recursos:
¿Qué es la observabilidad? Guía completa para principiantes GRATIS
Los cómo, los porqués y el qué de la monitorización de microservicios GRATIS
Monitoreo DevOps GRATIS
Aplicación de técnicas de monitoreo básicas versus avanzadas GRATIS
Aprende Prometeo GRATIS
Aprende Grafana GRATIS
Pila elástica GRATIS
Los proveedores de la nube proporcionan una capa de API para abstraer la infraestructura y aprovisionarla en función de los límites de seguridad y facturación. La nube se ejecuta en servidores en centros de datos, pero las abstracciones dan hábilmente la apariencia de interactuar con una única "plataforma" o aplicación de gran tamaño. La capacidad de aprovisionar, configurar y proteger rápidamente recursos con proveedores de nube ha sido clave tanto para el tremendo éxito como para la complejidad de DevOps moderno.
Los proveedores de nube más populares del mercado son AWS y Azure , así como Google Cloud .
Aquí necesitas saber cómo gestionar usuarios y administración, redes, servidores virtuales, etc.
Recursos:
Examen AZ-900: Fundamentos de Microsoft Azure GRATIS
Curso de certificación de fundamentos de Microsoft Azure (AZ-900) GRATIS
AZ-900 | Curso completo de Microsoft Azure Fundamentals, pruebas de práctica gratuitas, sitio web y guías de estudio GRATIS
Practicante de nube certificado por AWS definitivo - Udemy 2022
Desarrollador de AWS por A Cloud Guru Ruta de aprendizaje
Como ingeniero de DevOps, probablemente trabajará en equipo con otros desarrolladores en un mundo ágil, como Scrum . Por eso, es muy importante conocer las diferentes partes de SDLC , así como las herramientas que se utilizan allí.
Además, sería bueno saber cómo funcionan las pruebas de automatización , ya que deberá configurarlas en forma CI/CD.
Aquí necesitas saber qué es Scrum , todas las fases del SDLC , cómo funcionan las pruebas de automatización , etc.
Recursos:
¿Qué es Scrum? GRATIS
Formas de aprender sobre Scrum GRATIS
Fases y modelos del ciclo de vida del desarrollo de software (SDLC) GRATIS
La guía para principiantes sobre Agile en Jira: descripción del curso GRATIS
Aprenda SEGURO GRATIS
Aprenda pruebas de automatización GRATIS
GitLab - Guía para principiantes de DevOps GRATIS
Modelos SDLC comunes GRATIS
Seguimiento del trabajo :** Asana, Monday, Jira, Trello, Azure Boards.
Control de código fuente : Git, Github, GitLab, BitBucket, Azure DevOps.
CI/CD : Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip.
Análisis de código fuente : SonarQube, Veracode.
Gestión de artefactos : Artifactory, Docker Container Register, npm, Yarn, NuGet.
Gestión de configuración : Terraform, Ansible, Puppet, Chef.
Orquestación de contenedores : Docker, Kubernetes, Red Hat OpenShift.
Monitoreo : Prometheus, Grafana, Splunk, Dynatrace, Kibana.
El manual de DevOps: Cómo crear agilidad, confiabilidad y seguridad de primer nivel en organizaciones tecnológicas , Gene Kim, Patrick Debois, John Willis, Jez Humble
El libro presenta el desarrollo de productos, el control de calidad, las operaciones de TI y la seguridad de la información. Es una lectura excelente para aquellos que son nuevos en DevOps o que desean aprender más sobre cómo funcionan juntos los distintos componentes de DevOps.
Acelerar: La ciencia del software Lean y DevOps: creación y ampliación de organizaciones tecnológicas de alto rendimiento , Nicole Forsgren, Jez Humble, Gene Kim
Este libro presenta tanto los hallazgos como la ciencia detrás de la medición del desempeño de la entrega de software. Para promover DevOps entre la alta dirección, es una herramienta fantástica.
Entrega continua: lanzamientos de software confiables a través de la automatización de compilación, prueba e implementación , Jez Humble, David Farley
Introduce la gestión automatizada de la arquitectura y la migración de datos. Muchos de los conceptos de canalización de implementación que desde entonces se han convertido en estándar se establecieron en este libro. La configuración como código, la automatización de compilación e implementación y las técnicas de prueba eficientes se tratan con algunos detalles técnicos. Es un libro principalmente técnico.
Topologías de equipo: organización de equipos empresariales y tecnológicos para un flujo rápido , Matthew Skelton, Manuel Pais
El libro habla sobre cómo organizar equipos de una manera que permita un flujo rápido de valor para los clientes. Proporciona un conjunto de cuatro topologías de equipo fundamentales: equipos alineados con la corriente, equipos habilitadores, equipos de subsistema complicado y equipos de plataforma, que se pueden combinar y adaptar para adaptarse a diferentes contextos organizacionales.
DevOps eficaz: creación de una cultura de colaboración, afinidad y herramientas a escala , Jennifer Davis, Ryn Daniels
El libro proporciona formas efectivas de mejorar la coordinación del equipo. Muestra cómo romper los silos de información, monitorear las relaciones y reparar malentendidos que surgen entre y dentro de los equipos de su organización.
The Phoenix Project: una novela sobre TI, DevOps y cómo ayudar a su empresa a ganar , Gene Kim, Kevin Behr, George Spafford
Es una novela clásica sobre eficacia y comunicaciones. El trabajo de TI es como el trabajo de una planta de fabricación y se debe establecer un sistema para optimizar el flujo de trabajo. Uno de los mejores libros que existen.
Ingeniería de confiabilidad del sitio , Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy
Este libro explica todo el ciclo de vida del desarrollo, implementación y monitoreo de Google, y cómo administrar los sistemas de software más grandes del mundo (también conocidos como SRE). Cualquiera que se considere más del lado de "Ops" del lado de DevOps o que quiera saber cómo fortalecer los vínculos entre varios equipos de Dev y Ops debería leer SRE.
Incluso podemos presentar esta hoja de ruta como una hamburguesa :).
Si cree que la hoja de ruta se puede mejorar, abra un PR con las actualizaciones y envíe cualquier problema. Además, continuaré mejorándolo, por lo que es posible que desees destacar este repositorio para volver a visitarlo.
Abrir una solicitud de extracción con mejoras
Discutir ideas en temas.
correr la voz
Dr. Milan Milanović - CTO de 3MD.
Romano Roth - Jefe de DevOps en Zühlke.