Curso NATS Messaging System Fundamentals
16 horasVisão Geral
O Curso NATS Messaging System Fundamentals é um treinamento prático que apresenta o NATS, um sistema de mensagens de código aberto escrito em Go, conhecido por sua leveza, alta performance e simplicidade. Ele explora os conceitos básicos do NATS, como publicação/assinatura (Pub/Sub), filas distribuídas (Queueing) e requisição/resposta (Request/Reply), bem como a configuração do servidor e o uso de bibliotecas cliente em linguagens populares. Os participantes aprenderão a instalar, configurar e integrar o NATS em aplicações, utilizando exemplos práticos em cenários de comunicação distribuída. Curso NATS Messaging System Fundamentals Estruturado, com 16 horas totais, combina teoria, demonstrações detalhadas e exercícios práticos para capacitar os alunos a implementar sistemas de mensagens com o NATS.
Objetivo
Após realizar este Curso NATS Messaging System Fundamentals, você será capaz de:
- Compreender os fundamentos do NATS e seus padrões de mensagens (Pub/Sub, Queueing, Request/Reply).
- Instalar e configurar um servidor NATS em um ambiente local ou em nuvem.
- Utilizar bibliotecas cliente em linguagens populares (ex.: Go, Python, JavaScript) para interagir com o NATS.
- Implementar comunicação assíncrona entre aplicações usando o NATS.
- Monitorar e ajustar configurações básicas do servidor NATS.
Publico Alvo
- Desenvolvedores que desejam implementar sistemas de mensagens em aplicações distribuídas.
- Engenheiros DevOps explorando soluções leves para comunicação entre serviços.
- Arquitetos de software projetando arquiteturas baseadas em mensagens.
- Administradores de sistemas interessados em configurar servidores NATS.
- Entusiastas de tecnologia buscando aprender sobre ferramentas de código aberto.
Pre-Requisitos
- Conhecimento básico de programação em pelo menos uma linguagem (ex.: Go, Python, JavaScript).
- Familiaridade com conceitos de redes (ex.: TCP/IP, portas).
- Experiência com linha de comando (ex.: terminal Linux ou Windows) é recomendada.
- Noções de sistemas distribuídos ou mensageria (ex.: RabbitMQ, Kafka) são desejáveis, mas não obrigatórias.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Dia 1 – Módulo 1: Introdução ao NATS
- Tópicos:
- What is NATS? Sistema de mensagens open-source escrito em Go e sua arquitetura.
- Key features and benefits: Leveza, alta performance e suporte a múltiplas linguagens.
- Use cases and real-world applications: Microserviços, IoT, sistemas distribuídos.
- Comparison with other messaging systems: Kafka, RabbitMQ, Redis Pub/Sub.
- Atividade Prática: Explorar exemplos de uso do NATS em cenários reais e discutir diferenças com Kafka.
Dia 1 – Módulo 2: Configuração Inicial do NATS
- Tópicos:
- Installing NATS on Linux, Windows, and macOS: Via binário e Docker.
- Running a NATS server: Inicialização básica e verificação de status.
- Configuring basic settings: Ajustes em portas, logs e limites de mensagens.
- Atividade Prática: Instalar o NATS em Docker, configurar portas personalizadas e iniciar o servidor.
Dia 2 – Módulo 3: Fundamentos de Mensageria com NATS
- Duração: 4 horas
- Tópicos:
- Understanding Publish-Subscribe pattern: Conceito e implementação no NATS.
- Working with NATS clients: Uso de bibliotecas em Go (nats.go), Python (nats.py), Java, etc.
- Exploring request-reply messaging: Comunicação síncrona entre serviços.
- Atividade Prática: Criar um publicador em Python e um assinante em Go para Pub/Sub, e implementar um Request/Reply em JavaScript.
Dia 2 – Módulo 4: Recursos Avançados do NATS
- Tópicos:
- Queue groups for load balancing: Configuração de filas para distribuir mensagens.
- JetStream for message persistence and streaming: Introdução à persistência de mensagens.
- NATS streaming vs. core NATS: Diferenças e casos de uso (nota: NATS Streaming é legado).
- Handling large-scale deployments: Limites e estratégias iniciais de escalabilidade.
- Atividade Prática: Configurar um Queue Group e testar balanceamento, além de habilitar JetStream para persistir mensagens.
Dia 3 – Módulo 5: Segurança no NATS
- Tópicos:
- Securing NATS communications: Princípios de segurança em sistemas de mensageria.
- Authentication and authorization strategies: Configuração de usuários e permissões.
- TLS and token-based authentication: Implementação de TLS e tokens no servidor.
- Atividade Prática: Configurar autenticação com token e habilitar TLS no servidor NATS, testando com um cliente seguro.
Dia 3 – Módulo 6: Escalabilidade e Otimização de Performance
- Tópicos:
- Clustering and superclusters: Configuração de clusters para alta disponibilidade.
- Load balancing strategies: Distribuição de carga em múltiplos nós.
- Performance tuning best practices: Ajustes de memória, conexões e throughput.
- Atividade Prática: Criar um cluster NATS com dois nós e testar a replicação de mensagens entre eles.
Dia 4 – Módulo 7: Monitoramento e Solução de Problemas
- Tópicos:
- Logging and metrics collection: Configuração de logs e endpoints de monitoramento (/varz, /connz).
- Integrating with monitoring tools: Introdução a Prometheus e Grafana com NATS.
- Debugging common NATS issues: Identificação e resolução de falhas de conexão.
- Atividade Prática: Configurar logs, integrar o NATS com Prometheus e criar um dashboard básico no Grafana.
Dia 4 – Módulo 8: NATS em Ambientes Cloud-Native
- Tópicos:
- Running NATS in Kubernetes: Implantação básica em um cluster Kubernetes.
- Deploying NATS in cloud platforms: Configuração em AWS, Azure ou GCP.
- Integrating NATS with other messaging systems: Visão geral de interoperabilidade (ex.: Kafka).
- Atividade Prática: Implantar o NATS em Minikube, testar Pub/Sub em um Pod e simular integração com um serviço externo.