Curso NATS Messaging System Fundamentals

  • DevOps | CI | CD | Kubernetes | Web3

Curso NATS Messaging System Fundamentals

16 horas
Visã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ático
Conteúdo Programatico

Dia 1 – Módulo 1: Introdução ao NATS

  • Tópicos:
    1. What is NATS? Sistema de mensagens open-source escrito em Go e sua arquitetura.
    2. Key features and benefits: Leveza, alta performance e suporte a múltiplas linguagens.
    3. Use cases and real-world applications: Microserviços, IoT, sistemas distribuídos.
    4. 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:
    1. Installing NATS on Linux, Windows, and macOS: Via binário e Docker.
    2. Running a NATS server: Inicialização básica e verificação de status.
    3. 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:
    1. Understanding Publish-Subscribe pattern: Conceito e implementação no NATS.
    2. Working with NATS clients: Uso de bibliotecas em Go (nats.go), Python (nats.py), Java, etc.
    3. 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:
    1. Queue groups for load balancing: Configuração de filas para distribuir mensagens.
    2. JetStream for message persistence and streaming: Introdução à persistência de mensagens.
    3. NATS streaming vs. core NATS: Diferenças e casos de uso (nota: NATS Streaming é legado).
    4. 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:
    1. Securing NATS communications: Princípios de segurança em sistemas de mensageria.
    2. Authentication and authorization strategies: Configuração de usuários e permissões.
    3. 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:
    1. Clustering and superclusters: Configuração de clusters para alta disponibilidade.
    2. Load balancing strategies: Distribuição de carga em múltiplos nós.
    3. 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:
    1. Logging and metrics collection: Configuração de logs e endpoints de monitoramento (/varz, /connz).
    2. Integrating with monitoring tools: Introdução a Prometheus e Grafana com NATS.
    3. 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:
    1. Running NATS in Kubernetes: Implantação básica em um cluster Kubernetes.
    2. Deploying NATS in cloud platforms: Configuração em AWS, Azure ou GCP.
    3. 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.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h