DevOps & Plataforma

Engenharia do Aurora Hub: Catálogo e Orquestração de 86+ Serviços

Como construímos uma central unificada de governança de infraestrutura, com health probing em tempo real, streaming de eventos via SSE e catálogo interativo de microsserviços.

Carlos Felipe
Carlos Felipe Oliveira da Silva Senior Infrastructure & DevOps Engineer
Objetivo da Engenharia: Prover uma "Single Source of Truth" para engenheiros de infraestrutura e suporte, catalogando metadados, portas, status de containers Docker e nós Kubernetes de mais de 86 aplicações corporativas ativas.

1. O Desafio: A Complexidade do Crescimento Rápido de Microsserviços

À medida que o parque de serviços se expandiu (bancos de dados MySQL/PostgreSQL, clusters Kafka, instâncias GLPI, pipelines de CI/CD e gateways de comunicação), mapear dependências, URLs e portas em planilhas se tornou inviável e propenso a erros.

2. Arquitetura do Aurora Hub

O Aurora Hub foi projetado com arquitetura desacoplada e foco em baixíssima latência:

  • Backend em Node.js / Express: Motor assíncrono com cache em memória e persistência de metadados em JSON Schema validado.
  • Módulo de Health Probing: Varredura paralela não-bloqueante verificando sockets TCP e endpoints HTTP/HTTPS com timeouts inteligentes.
  • Event Streaming (SSE): Notificações em tempo real enviadas para a interface web via Server-Sent Events sem a sobrecarga de polling constante.
  • Bridge de Automação em Python: Utilitários auxiliares para geração automatizada de documentação técnica profunda de cada projeto.

3. Motor de Probing Assíncrono e Detecção de Falhas

O mecanismo de verificação foi desenvolvido para testar dezenas de portas simultaneamente sem gerar gargalos de I/O de rede:

// server.js - Probing assíncrono de integridade de serviços
const net = require('net');

function probeServiceSocket(host, port, timeoutMs = 1500) {
  return new Promise((resolve) => {
    const socket = new net.Socket();
    let isSettled = false;

    socket.setTimeout(timeoutMs);

    socket.on('connect', () => {
      isSettled = true;
      socket.destroy();
      resolve({ port, status: 'ONLINE', latencyMs: Date.now() - startTime });
    });

    socket.on('timeout', () => {
      if (!isSettled) {
        socket.destroy();
        resolve({ port, status: 'TIMEOUT', latencyMs: timeoutMs });
      }
    });

    socket.on('error', (err) => {
      if (!isSettled) {
        socket.destroy();
        resolve({ port, status: 'OFFLINE', error: err.message });
      }
    });

    const startTime = Date.now();
    socket.connect(port, host);
  });
}

4. Impacto Operacional e Integração

O Aurora Hub se transformou no portal de referência para todas as operações diárias da equipe técnica:

86+ Projetos Indexados

Inventário completo com links diretos, credenciais de teste centralizadas e portas documentadas.

Diagnóstico Instantâneo

Identificação de serviços caídos ou com degradação de tempo de resposta em menos de 2 segundos.

Conclusão

A consolidação do Aurora Hub reduziu drasticamente o tempo gasto procurando informações de portas e hosts, proporcionando clareza de governança e facilitando a entrada de novos membros no time de engenharia.