Bienvenida

1

Celery ¿Qué es, para qué sirve, cómo se usa?

2

Repositorio del proyecto

3

Arquitecturas de software basadas en mensajería y colas de tareas

4

Brokers de tareas: Servidores de mensajería y formas de usarlos

5

¿Cuándo debemos usar Celery?

6

Reto: Casos de uso de Celery

Bot de Slack

7

¿Cómo funciona un bot?

8

Cómo funciona el API de Slack para programación de bots (y parecidos y diferencias con otros APIs)

9

¿Cómo crear un bot reactivo?

10

Reto: posibles aplicaciones de bots de Slack, buscar ejemplos y entender cómo se llevarían a cabo

11

Reto: modificar el bot básico y crear alguno que responda a a algún tipo de petición o muestre algo

Brokers de mensajería

12

¿Qué es un broker de mensajería y cuándo debe usarse?

13

Conceptos: mecanismos de publicación/suscripción. Canales. Intercambiadores

14

Brokers de mensajería open source

15

Python con RabbitMQ uso básico de la terminal

16

Comparación de diferentes brokers de mensajería para trabajar con Celery

17

Reto: Crear una pequeña aplicación cliente-servidor que use RabbitMQ desde Python

Celery y brokers de mensajería

18

Creando un entorno de desarrollo para Celery

19

Instalación y creación de un programa básico pub/sub

20

Cómo usar Celery para programar un robot de Slack: diseño y comienzo de la implementación

21

Monitorización de tareas

22

Solucionando problemas

23

Reto: implementación y despliegue básico de un bot de Slack

Enrutado de tareas

24

Conceptos: enrutado de tareas y por qué se necesita

25

Enrutado manual

26

Mensajería en Celery: uso de Kombu

27

Enrutado automático

28

Reto: diseño de mecanismos de enrutado para un bot de Slack

Integración y despliegue en la nube

29

Estructura de mensajes en Celery y resultados de tareas

30

Tareas periódicas con Celery

31

Configuración de sistemas en la nube

32

Contenedores

33

Despliegue en un PaaS: Heroku

34

Uso de Celery con Node.js

35

Reto: despliegue en la nube (usando cuentas gratuitas)

Conclusiones

36

Despedida, conclusiones y a dónde ir desde aquí

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Celery 4

Curso de Celery 4

Juan Julián Merelo

Juan Julián Merelo

Configuración de sistemas en la nube

31/36
Recursos

¿Cómo construir un entorno virtual con Vagrant y Ansible?

En el mundo del desarrollo y la administración de sistemas, contar con un entorno de pruebas bien configurado es fundamental. Gracias a herramientas como Vagrant y Ansible, esta tarea puede automatizarse fácil y eficientemente. Ambas, líderes en la industria, simplifican la creación y gestión de máquinas virtuales, configurándolas según nuestras necesidades específicas. Este contenido guiará a los lectores en la configuración de entornos de desarrollo reproducibles y eficientes.

¿Qué es Vagrant y cómo se utiliza?

Vagrant es una herramienta que permite crear y gestionar entornos virtuales de desarrollo, haciendo uso de archivos de configuración Ruby conocidos como Vagrantfiles. Su objetivo principal es simplificar la instalación de máquinas virtuales, permitiendo a los desarrolladores integrar fácilmente nuevas herramientas o probar en entornos específicos sin complicaciones.

# Vagrantfile básico con configuración de máquina virtual
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
  end
end
  • Máquina virtual: Especificamos el box a utilizar que en este caso es ubuntu/bionic64, debido a que incluye Python 3 por defecto, facilitando la instalación posterior de Ansible.
  • Provision: Ansible se encargará de configurar la máquina virtual a través de un playbook escrito en YAML.

¿Cómo se aprovecha Ansible para la configuración de entornos?

Ansible es una potente herramienta de automatización que, junto con Vagrant, permite establecer configuraciones precisas mediante playbooks. Estos scripts definen las tareas necesarias para proveer nuestros servidores virtuales.

¿Qué es un Playbook?

Un playbook es un archivo escrito en YAML que detalla todas las acciones necesarias para configurar una máquina virtual. Ansible ejecuta estas acciones con los permisos necesarios, asegurando que cada componente funcione correctamente.

- hosts: all
  become: true
  tasks:
    - name: Instalar dependencias del sistema
      apt:
        name: "{{ item }}"
        state: present
      loop:
        - apt-transport-https
        - ca-certificates

¿Qué pasos se deben seguir para configurar con Ansible?

  1. Preparar el entorno: Antes de instalar herramientas específicas, asegurarse de que el sistema está listo, por ejemplo, añadiendo repositorios o actualizando certificaciones.

  2. Añadir repositorio específico: Esto se hace para garantizar la instalación de versiones actualizadas y compatibles de aplicaciones como RabbitMQ o Erlang.

- name: Añadir repositorio para Erlang
  apt_repository:
    repo: 'deb https://packages.erlang-solutions.com/debian bionic contrib'

- name: Instalar RabbitMQ
  apt:
    name: rabbitmq-server
    state: present
  1. Instalación de paquetes necesarios: Asegurarse de que RabbitMQ y sus dependencias (como Erlang) estén disponibles y actualizados.

¿Cómo verificar la configuración?

Una vez configuradas la máquina virtual con Vagrant y el playbook con Ansible, es importante verificar que todo funcione como se espera. Para ello, se pueden ejecutar comandos para comprobar que las versiones de software estén correctamente instaladas.

sudo vagrant ssh
python --version

¿Por qué usar Vagrant y Ansible en combinación?

La combinación de Vagrant y Ansible para la provisión y configuración de máquinas virtuales es especialmente útil para equipos que buscan:

  • Automatización: Reduce el tiempo de configuración inicial y las inconsistencias entre entornos.
  • Reproducibilidad: Facilita a nuevos miembros del equipo acceder rápidamente a un entorno de trabajo estándar.
  • Escalabilidad: Adaptabilidad para implementar en ambientes de nube si así se requiere.

En conclusión, utilizar Vagrant y Ansible juntos ofrece una solución integral para gestionar y configurar entornos de desarrollo de manera eficiente y escalable. ¡Sigue aprendiendo y explorando estas herramientas para potenciar tus proyectos!

Aportes 2

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

cool

👍