Slurm DevOps: una teta que funciona mejor en 3 días que una hermosa grúa en un futuro lejano

Me encantan los proyectos de una semana y me intimidan los proyectos de un año. En Agile, me gustó mucho el concepto de MVP e incremento, esto es lo mío: hacer una pieza viable, implementarla y seguir adelante.

Al mismo tiempo, la transformación de DevOps, tal como se analiza en libros y conferencias, es sólo un proyecto de un año de duración. O en años.

Construimos nuestro curso de DevOps en el paradigma de "MVP DevOps en un sprint" y "preparación para incrementos". Y si es en términos humanos, entonces “para que el participante, al regresar, pueda implementar inmediatamente algo en casa y beneficiarse de ello”.

MVP DevOps: El curso contiene herramientas para procesos básicos de DevOps. No nos propusimos la tarea de revisar y comparar todos los sistemas CI/CD ni revelar las profundidades del enfoque de Infraestructura como Código. Proporcionamos una pila clara: Gitlab CI/CD, Ansible, Terraform y Packer, Molecule, Prometheus, EFK. Puedes venir de los cursos, reunir la infraestructura para un proyecto piloto a partir de materiales de formación y trabajar en él.

Slurm DevOps: una teta que funciona mejor en 3 días que una hermosa grúa en un futuro lejano

Preparación para incrementos: proporcionamos a cada elemento mucha práctica y ejemplos. Puede tomar una herramienta y comenzar a implementarla utilizando los dibujos de capacitación. Por ejemplo, escriba un manual de Ansible para implementar entornos de desarrollo o conecte un bot y administre el servidor desde su teléfono. Es decir, conseguir un resultado práctico concreto en una semana. Puede que esté infinitamente lejos de la transformación DevOps de toda la empresa, pero está ahí, está aquí, funciona y trae beneficios.

Temas de DevOps de Slurm

Tema #1: Mejores prácticas de Git - habla por si mismo.
Tema #2: Trabajar con la aplicación desde el punto de vista del desarrollo — un ingeniero necesita las competencias de un administrador y un desarrollador, por eso les contamos a los administradores sobre el desarrollo.

Tema 3: Conceptos básicos de CI/CD

  • Introducción a la automatización CI/CD
  • Conceptos básicos de CI de Gitlab
  • Mejores prácticas con gitlab-runner
  • Herramientas Bash, make, gradle como parte de CI/CD y más
  • Docker como forma de resolver problemas de CI

Tema #4: Gitlab CI/CD en producción

  • Competencia al empezar un trabajo
  • Control y restricciones de ejecución: únicamente, cuando
  • Trabajar con artefactos
  • Plantillas, inclusiones y microservicios: simplificando la implementación

Presentamos a los estudiantes los conceptos y conceptos básicos de CI/CD y las herramientas para la implementación de CI/CD. Como resultado, el estudiante podrá elegir de forma independiente un patrón de diseño CI/CD y una herramienta de implementación adecuada.

Luego mostramos la implementación de CI/CD en Gitlab y recorremos la configuración, analizando formas avanzadas de usar Gitlab CI. Como resultado, el estudiante podrá configurar Gitlab CI de forma independiente para sus propios proyectos.

En comparación con el primer DevOps Slurm, reducimos la teoría 2 veces (una hora por tema), dejamos de revisar todos los sistemas y dejamos solo Gitlab CI. Nos centramos en la práctica y agregamos muchas mejores prácticas.

Tema #5: Infraestructura como código

  • IaC: abordar la infraestructura como código
  • Proveedores de nube como proveedores de infraestructura
  • Herramientas de inicialización del sistema, creación de imágenes (empaquetador)
  • IaC usando Terraform como ejemplo
  • Almacenamiento de configuración, colaboración, automatización de aplicaciones.
  • Práctica de creación de playbooks de Ansible
  • Idempotencia, declaratividad
  • IaC usando Ansible como ejemplo

Hemos reducido la parte teórica sobre UI y OpenStack CLI y nos hemos centrado en la práctica.
Veamos dos enfoques de IaC que utilizan la misma aplicación y mostremos los pros y los contras de cada enfoque. Como resultado, el estudiante comprenderá qué enfoque utilizar y dónde y podrá trabajar tanto con Terraform como con Ansible.

En el tema sobre Terraform, veremos el trabajo en equipo y el almacenamiento del estado en una base de datos en la práctica. Al trabajar con módulos, el estudiante escribirá y configurará el módulo él mismo, aprenderá a trabajar con él: reutilizarlo, versionarlo. Agreguemos trabajo con Consul, mostremos en qué casos es necesario y cómo usarlo correctamente.

Tema #6: Pruebas de infraestructura

  • Averigüemos por qué no escriben pruebas.
  • ¿Qué pruebas hay en IaC?
  • Analizadores estáticos, ¿realmente son tan inútiles?
  • Prueba unitaria de IaC usando la molécula ansible + como ejemplo
  • Pruebas como parte de ci
  • Pruebas de esteroides o cómo no esperar 5 horas para que terminen las pruebas de IaC

Hemos reducido la parte teórica, menos historias sobre Vagrant/Molecule, más práctica y pruebas directas, centrándonos en los linters y trabajando con ellos. Mirándolo desde el punto de vista de la CI
cómo hacer que las pruebas sean más rápidas. En la práctica habrá:

  • un linter autoescrito que verifica la presencia de variables obligatorias para el host según el rol;
  • Agregamos a las pruebas de CI solo aquellos roles que han cambiado, lo que puede reducir significativamente el tiempo de ejecución de las pruebas;
  • agregando pruebas de escenarios. Implementamos toda la aplicación como prueba de integración.

Tema #7: Monitoreo de infraestructura con Prometheus

  • Cómo construir un sistema de monitoreo saludable
  • Monitorización como herramienta de análisis, eficiencia en el desarrollo y estabilidad del código, incluso antes de la venta.
  • Configurando prometheus + alertmanager + grafana
  • Pasar del monitoreo de recursos al monitoreo de aplicaciones

Hablaremos mucho sobre el monitoreo de microservicios: ID de solicitud, herramienta de monitoreo de API. Habrá muchas mejores prácticas y mucho trabajo independiente.

Escribamos nuestro propio exportador. Configuraremos el monitoreo no solo de la infraestructura y las aplicaciones de producción, sino también de los ensamblajes en Gitlab. Veamos las estadísticas sobre pruebas fallidas. Veamos en la práctica cómo será la monitorización sin HealthCheck y con él.

Tema No. 8. Registrar una aplicación con ELK

  • Descripción general de Elastic y sus herramientas
  • ELK/Elastic Stack/x-pack: ¿qué es qué y cuál es la diferencia?
  • Qué problemas se pueden resolver usando ElasticSearch (búsqueda, almacenamiento, funciones de escalado, flexibilidad de configuración)
  • Monitoreo de infraestructura (x-pack)
  • Registros de aplicaciones y contenedores (x-pack)
  • Registro usando nuestra aplicación como ejemplo
  • Prácticas de trabajo con Kibana
  • Distribución abierta para Elasticsearch de Amazon

El tema ha sido completamente rediseñado, está presentado por Eduard Medvedev, muchos lo vieron en el seminario web sobre DevOps y SRE. Él contará y demostrará las mejores prácticas para trabajar con EFK usando el ejemplo de una aplicación educativa. Habrá práctica con Kibana.

Tema #9: Automatización de infraestructura con ChatOps

  • DevOps y ChatOps
  • ChatOps: Fortalezas
  • Holgura y alternativas
  • Bots para ChatOps
  • Hubot y alternativas
  • seguridad
  • pruebas
  • Mejores y peores prácticas

ChatOps agregó la práctica de autenticación con separación de derechos, confirmación de acciones de otro usuario, la teoría y práctica de una alternativa a Slack en forma de Mattermost, la teoría de pruebas unitarias y de integración para el bot.

La crisis de DevOps comienza el 30 de enero. Precio - 30.
Para quienes hayan terminado de leer, hay un 15% de descuento en el curso DevOps usando el código promocional habrapost.

Registrarse aquí

¡Estaré encantado de verte en Slurms!

Fuente: habr.com

Añadir un comentario