Visão Geral
Este Curso Distributed Task Automation with Python Celery, apresenta uma abordagem completa para automação de tarefas distribuídas utilizando Python e o framework Celery. O participante aprenderá desde os conceitos fundamentais de sistemas distribuídos, mensageria e brokers, até a implementação prática de ambientes containerizados com Docker, integração com bancos de dados PostgreSQL, uso do RabbitMQ como message broker e orquestração de tarefas assíncronas em escala. O curso cobre tanto fundamentos quanto tópicos avançados de Celery, incluindo monitoramento, escalabilidade, alta disponibilidade e boas práticas para ambientes de produção.
Conteúdo Programatico
Module 1: Overview of Distributed Task Automation
- What is Distributed Task Automation
- Use cases and real-world scenarios
- Synchronous vs asynchronous task execution
Module 2: Celery Fundamentals
- Overview of Celery and its Features
- Celery architecture and components
- Celery compared to Faust
- When to use Celery
Module 3: Message Broker Concepts
- What is Message Broker
- Messaging patterns
- Reliability, durability, and acknowledgments
Module 4: RabbitMQ Deep Dive
- What is RabbitMQ
- Exchanges, queues, and bindings
- RabbitMQ + PostgreSQL compared Kafka + Zookeeper
- Choosing the right broker for distributed tasks
Module 5: Development Environment Setup
- Configure Visual Studio Code for Python Script Programming
- Python Code Linting & Reformatting with Ruff & MyPy
- Debugging Python Scripts with Visual Studio Code
Module 6: Containerization Fundamentals
- What is a Container
- What is Docker
- What is Docker Hub
- Images and Containers
Module 7: Docker in Practice
- Create an Image with Dockerfile
- Run Containers
- Configure Containers with Environment Variables
Module 8: Docker Compose Essentials
- What is Docker Compose
- Docker Compose Networking
- Docker Compose Volume
Module 9: Remote Data Storage Concepts
- What is Remote Data Storage
- Data persistence strategies
Module 10: PostgreSQL with Docker
- Running a Data Storage in a Container
- Running PostgreSQL in a Container
- Running PostgreSQL Client Tool in a Container
- Configure with Docker Compose
Module 11: Python and PostgreSQL Integration
- Read/Write Data to PostgreSQL with Python SQLAlchemy
- Managing sessions and transactions
- Error handling and migrations
Module 12: Remote Message Broker Implementation
- Running a Message Broker in a Container
- Messaging service design considerations
Module 13: RabbitMQ with Docker
- Running RabbitMQ in a Container
- Running RabbitMQ Client Tool in a Container
- Configure with Docker Compose
Module 14: Python and RabbitMQ Integration
- Read/Write Data to RabbitMQ with Python and Pika
- Message acknowledgment and durability
- Error handling in message publishing
Module 15: Celery Basics
- Installing Celery and its dependencies
- Setting up a simple Celery project
- Defining and running tasks
- Task decorators and options
- Passing arguments and results between tasks
- Task retries and error handling
- Monitoring and managing Celery workers
Module 16: Advanced Celery Concepts
- Task serialization and message brokers
- Task routing and prioritization
- Task result backends
- Grouping and chaining tasks
- Scheduling periodic tasks with Celery beat
Module 17: Scaling and Deployment
- Load balancing tasks with multiple workers
- Deploying Celery in a production environment
- Configuring Celery for high availability
- Best practices for handling long-running tasks
Module 18: Monitoring and Performance Tuning
- Monitoring Celery workers
- Performance bottlenecks
- Logging and observability
- Tuning brokers and workers
Module 19: Course Wrap-up
- Summary of Key Concepts
- Common pitfalls and best practices
- Q&A
- Further Resources and Next Steps