devops tutorial ultimate guide devops
Esta es una serie completa de tutoriales de DevOps de más de 25 tutoriales de texto y video que cubren todos los aspectos de DevOps, como Qué es DevOps, los principios de DevOps y su arquitecto.
Lista de tutoriales en la serie de formación DevOps:
#1) Introducción a DevOps (Este tutorial)
#2) DevOps y pruebas de software
Tutoriales en VÍDEO de DevOps:
#3) Video Tutorial 1: Antecedentes de DevOps, definición, valor, beneficios, hábitos y mejores prácticas
- Parte 1 Bloque 1 - Desmitificando DevOps
#4) Video tutorial 2: Prácticas de DevOps basadas en los principios ágiles, el control de origen y la automatización de DevOps
Este video tutorial se divide en 6 bloques:
- Parte 2 Bloque 1 - Práctica de DevOps basada en el manifiesto ágil
- Parte 2 Bloque 2 - Control de versiones y fuentes en DevOps
- Parte 2 Bloque 3 - Automatización en DevOps
- Parte 2 Bloque 4 - Pequeños incrementos de entregas en DevOps
- Parte 2 Bloque 5 - Colaboración en equipos de DevOps
- Parte 2 Bloque 6 - Cómo desarrollar la colaboración en equipos de DevOps
#5) Video tutorial 3: Procesos de DevOps Integración continua, pruebas continuas y entrega continua
Este video tutorial se divide en 4 bloques:
- Parte 3 Bloque 1 - Integración continua en DevOps
- Parte 3 Bloque 2 - Entrega continua en DevOps
- Parte 3 Bloque 3 - Implementación continua en DevOps
- Parte 3 Bloque 4 - Pruebas continuas en DevOps
#6) Video tutorial 4: Gestión de la configuración de DevOps y supervisión del rendimiento de las aplicaciones en directo
Este video tutorial se divide en 3 bloques:
- Parte 4 Bloque 1 - Gestión de la configuración en prácticas de DevOps
- Parte 4 Bloque 2 - Gestión de versiones en DevOps
- Parte 4 Bloque 3 - Supervisión del rendimiento de las aplicaciones en DevOps
#7) Video tutorial 5: Resumen de todo el curso.
- Parte 5 Bloque 1 - Resumen de los tutoriales en vídeo de DevOps
Tutoriales de texto:
#8) Prueba de desplazamiento a la izquierda
#9) Cómo mejorar la calidad del software mediante la integración continua
#10) Proceso de entrega continuo
Herramientas de DevOps:
#11) Herramientas de DevOps
#12) Instalación y configuración de herramientas DevOps de código abierto de uso común
#13) Las mejores herramientas de integración continua
#14) Las mejores herramientas de entrega continua
Microsoft VSTS Tutorial:
#15) Microsoft VSTS parte 1
#16) Microsoft VSTS parte 2
Herramientas de AWS DevOps:
#17) Herramientas de AWS DevOps, parte 1 (CodeCommit)
#18) Herramientas de AWS DevOps, parte 2 (CodeBuild)
#19) Herramientas de AWS DevOps, parte 3 (CodeDeploy)
#20) Implementación de aplicaciones web .NET con AWS Elastic Beanstalk
Ansible para DevOps:
#21) Ansible Parte 1: Instalación y configuración
#22) Ansible Parte 2: Automatización de tareas mediante Playbooks
#23) Ansible Parte 3: Funciones de Ansible e integración con Jenkins
#24) Integración de Jenkins con selenio
#25) Herramienta de integración continua de Hudson
#26) Empresas proveedoras de servicios DevOps
#27) Preguntas de la entrevista de DevOps
Comencemos con el primer tutorial de esta serie.
Lo que vas a aprender:
- Introducción a DevOps
- Descripción general de Agile y DevOps
- ¿DevOps solo se trata de herramientas?
- Componentes de DevOps
- Resumen
- Lectura recomendada
Introducción a DevOps
DevOps no se trata solo de herramientas, sino que también incluye un conjunto de mejores prácticas que permite cerrar la brecha entre los equipos de desarrollo y operaciones en las áreas de integración e implementación continuas mediante el uso de un conjunto integrado de herramientas para automatizar la entrega de software.
mejor descargador gratuito de youtube a mp3
Es imperativo que los desarrolladores comprendan el lado de las operaciones y viceversa. Por lo tanto, el objetivo de DevOps es simplemente ayudar a cualquier organización en la velocidad de entrega de aplicaciones a los usuarios finales y permitir una retroalimentación más rápida de los usuarios finales, que es la necesidad de cualquier empresa en la actualidad.
Descripción general de Agile y DevOps
No hay diferencia entre Agile y DevOps. En cambio, se complementan entre sí. Comencemos por mirar el modelo Waterfall donde todos los requisitos están congelados, y el diseño y el desarrollo se realizan uno tras otro hasta que haya un producto estable disponible.
Entonces, el problema aquí es que si hay un cambio en la necesidad del cliente en esta etapa, entonces no hay forma de incluir y entregar la necesidad modificada.
Con el fin de abordar el problema de adaptarse a las necesidades del cliente, los cambios se realizaron mejor que en el método de cascada, se adoptó el método Agile. La idea aquí era desarrollar un software en iteraciones o sprints más pequeños, por ejemplo, alrededor de 2 a 3 semanas, lo que ayudó a los equipos de desarrollo a trabajar en los comentarios del usuario final e incorporar los cambios en las versiones más recientes.
Por tanto, los equipos de desarrollo y operación deben tener agilidad en sus áreas de trabajo yDevOpsnació para permitir una mejor colaboración entre ellos.
Agile incorpora procesos como XP, SCRUM, etc. y DevOps incorpora prácticas como Integración continua, Entrega continua, Pruebas continuas y Monitoreo continuo que veremos en detalle a medida que avancemos en este tutorial.
¿DevOps solo se trata de herramientas?
En cierto modo, puede argumentar que para implementar DevOps necesita herramientas. Es cierto, pero las herramientas son solo aceleradores.
Pero en realidad, se trata de los siguientes 3 aspectos:
Gente :Es muy importante capacitar y tener un equipo de personas altamente motivado para poder comunicarse y colaborar de manera efectiva a lo largo de todo este viaje de cambio cultural.
Proceso: Como estamos hablando de cambio cultural para la implementación de DevOps, es muy necesario contar con prácticas y estrategias que brinden valor al cliente. Una forma adecuada de hacerlo sería realizar una evaluación de madurez TAL CUAL, observar las deficiencias y proponer una hoja de ruta para la implementación de las recomendaciones adecuadas.
No hablaré en profundidad sobre cómo he logrado hacer estas evaluaciones, pero estaré encantado de compartir cualquier aportación al respecto.
Instrumentos: Finalmente, se trata de utilizar los aceleradores automatizando el proceso utilizando herramientas DevOps estándar que están disponibles en la actualidad. Puede ser de código abierto (Jenkins, Git, etc.), comercial (Microsoft TFS, VSTS, IBM Rational, Jira, etc.) o una combinación de ambos.
Componentes de DevOps
Espero que a estas alturas ya tengas una idea de lo que es DevOps.
Veamos ahora los siguientes 4 componentes de DevOps que forman el núcleo desde el punto de vista de la implementación y también las organizaciones han desarrollado buenos marcos de automatización en torno al mismo ofreciéndolo como un servicio a sus clientes.
- Integración continua
- Prueba continua
- Entrega continua
- Monitoreo continuo
Realmente he creído que si un desarrollador tiene que trabajar en este modo, entonces debería haber un elemento de ejecución como una Tarea o un Defecto (en Ágil puede ser parte de la Historia del Usuario) asignado a él para permitirle entregar el trabajo dentro de el período de tiempo del sprint.
Entonces, incluso antes de que se puedan implementar los pasos enumerados anteriormente, estas Tareas o Defectos del desarrollador deben planificarse en un Sprint. Por lo tanto, herramientas como JIRA, IBM Rational Team Concert, Microsoft TFS / VSTS, etc., ayudan a crear los planes Agile Release / Sprint.
Echemos ahora un vistazo a cada uno de estos componentes en detalle.
# 1) Integración continua
Como desarrollador, trabaja en las tareas o defectos asignados y registra el código en un repositorio compartido varias veces al día. De manera similar, los otros miembros del equipo también registran el código en el repositorio compartido.
Luego integrará todo el trabajo realizado por los miembros del equipo en un servidor de compilación común y realizará una compilación automatizada. Hacer estas integraciones y compilaciones automatizadas de forma regular se denomina Integración continua.
Esta práctica ayuda a detectar problemas muy temprano y también asegura que todos los módulos que están integrados funcionen según sea necesario. Entonces, si no sigue este enfoque, la integración del trabajo del equipo puede ocurrir una vez al mes, lo que puede llegar tarde para encontrar y solucionar cualquier problema de integración.
Ejemplo de flujo de trabajo de integración continua:
# 2) Entrega continua
La entrega continua es el siguiente paso después de la integración continua. El objetivo de Continuous Delivery es impulsar la aplicación integrada en producción lo más rápido posible. Durante este proceso, pasa por varias etapas en el ciclo de vida de la entrega, es decir, QA, Staging, entornos de producción, etc.
Este proceso de entrega regular de las aplicaciones integradas en varias etapas se conoce como Entrega Continua.
La entrega continua ayuda a acelerar el tiempo de comercialización en comparación con los métodos tradicionales, reduce el riesgo, reduce el costo al fomentar una mayor automatización en el proceso de lanzamiento y, lo más importante, obtener comentarios más rápidos de los usuarios finales para producir un producto de calidad.
Por mi experiencia, he visto que este proceso funciona bien para cualquier tipo de desarrollo de aplicaciones web.
También he realizado una buena cantidad de evaluaciones sobre implementaciones de DevOps para organizaciones en el área comercial de semiconductores, pero debido a sus ciclo de lanzamiento esta área de Entrega Continua no parece encajar con ella, ya que es más un proceso en cascada que se está siguiendo y las implementaciones se realizan como y cuando se solicita en un entorno de cliente.
Ejemplo de flujo de trabajo de entrega continua:
En el diagrama anterior, puede ver los diferentes entornos disponibles y, por lo tanto, este aprovisionamiento de la infraestructura para los entornos también se puede automatizar durante este proceso de entrega continua.
# 3) Prueba continua
De las 2 prácticas anteriores, llegamos a saber que CI y CD ayudan a implementar la aplicación o los cambios en la producción. Todo este proceso implica la validación adecuada del código y su integración con todos los componentes involucrados en él para asegurar que la aplicación funcione como está previsto y esté libre de errores o defectos.
Entonces, Continuous Testing es el proceso de ejecutar varios tipos de pruebas automatizadas comenzando con el proceso de CI hasta el momento en que la aplicación finalmente se implementa en producción.
Puede ver en el diagrama anterior que en el paso de Integración Continua integramos todos los trabajos de los desarrolladores en un servidor de compilación común y también durante esta etapa los desarrolladores ejecutarían una cierta cantidad de pruebas unitarias.
Una vez que estas integraciones y pruebas funcionan sin errores, solo entonces la aplicación o los cambios se implementan en el entorno de control de calidad después de solicitar estas puertas de calidad y aprobaciones.
En el entorno de control de calidad, se ejecutan las pruebas funcionales y, de nuevo, en función de las aprobaciones, se implementaría en el entorno de ensayo que estaría en paridad como se ejecutan los sistemas de producción y las pruebas de aceptación. Una vez finalizada esta actividad, la aplicación o los cambios finalmente se implementan en los sistemas de producción.
Por lo tanto, se puede observar aquí que la prueba continua como actividad comienza desde la etapa de CI en sí y es un paso muy obligatorio a lo largo del proceso de entrega continua.
aplicaciones para descargar videos de youtube
Flujo de trabajo de prueba de muestra en el proceso de entrega continua:
# 4) Monitoreo continuo
A medida que la aplicación o los cambios se implementan en el entorno de producción, el equipo de operaciones buscará monitorear la aplicación y el entorno desde un punto de vista de tiempo de actividad, estabilidad y disponibilidad. Este proceso se conoce como monitoreo continuo.
Los equipos de operaciones tendrán su propio software para monitorear el entorno, pero también deberán desempeñar su papel para monitorear las aplicaciones implementadas para detectar cualquier problema. Para ello, necesitarían trabajar con los equipos de desarrollo a fin de crear ciertas herramientas para analizar los problemas de la aplicación.
Por lo tanto, los problemas de infraestructura, medio ambiente y aplicaciones son todo lo que se monitorea en el proceso de monitoreo continuo.
Resumen
En este tutorial, llegamos a saber de qué se trata exactamente el proceso DevOps, incluidos los diversos componentes involucrados en él. Estos componentes ayudan a acelerar la entrega de aplicaciones y también a ahorrar tiempo de comercialización, que es la necesidad de las empresas hoy en día desde un punto de vista competitivo.
En la próxima serie de tutoriales en el segmento de DevOps, verá los diferentes videos / probables herramientas de DevOps que los equipos pueden usar y también la implementación de DevOps usando ciertas herramientas para las instalaciones y la nube.
Y como dije y hecho, he encontrado que la implementación de DevOps es emocionante, en la forma de mirar desde un cambio organizacional.
Nuestro próximo tutorial le explicará todo sobre DevOps y pruebas de software.
Lectura recomendada
- Tutoriales detallados de Eclipse para principiantes
- Entrega continua en DevOps
- Implementación continua en DevOps
- Tutorial de pruebas de DevOps: ¿Cómo afectará DevOps a las pruebas de control de calidad?
- Integración continua en DevOps
- Pruebas continuas en DevOps
- Resumen de los tutoriales en vídeo de DevOps
- Tutorial de AWS CodeCommit para la implementación de DevOps en la nube