Skip to content
Latchkey

O Que É um Monólito? Um Codebase, Um Deploy

Um monólito é uma aplicação única onde todas as funcionalidades vivem em um codebase e são entregues como uma única unidade implantável.

Um monólito mantém tudo junto: a UI, a lógica de negócio e o acesso a dados compilam e fazem deploy como um único artifact. É o ponto de partida padrão para a maioria dos sistemas e, apesar do hype em torno de separar as coisas, um monólito bem estruturado é frequentemente a escolha certa. Seu formato de artifact único dá ao CI/CD uma história refrescantemente simples.

Como um monólito se parece

Um repositório, um build, um artifact implantável. Uma requisição pode fluir pelas camadas via chamadas de função in-process em vez de saltos de rede, então não há service discovery, nem autenticação entre serviços, nem falha distribuída para raciocinar.

A vantagem

  • Deploys simples: um artifact, um release.
  • Desenvolvimento local fácil: rode o app inteiro em um laptop.
  • Chamadas in-process rápidas em vez de idas e voltas na rede.
  • Testes de ponta a ponta diretos em um único processo.

Onde ele sofre

À medida que o codebase e a equipe crescem, um build compartilhado se torna um gargalo. Cada mudança rebuilda e reimplanta tudo, escalar significa duplicar o app inteiro, e um único commit ruim pode bloquear o release inteiro.

O panorama de CI/CD

Um monólito tem exatamente um pipeline, que é fácil de raciocinar mas tende a ficar lento. A suíte de testes completa roda a cada mudança, então os tempos de build sobem à medida que o app cresce. Caching, paralelismo de testes e execuções seletivas de testes são as alavancas usuais para manter esse pipeline rápido.

Monólito não significa bagunçado

Um monólito ainda pode ser limpamente estratificado internamente. A distinção é o formato de deployment, não a qualidade do código. Um monólito organizado com limites de módulo claros é frequentemente mais fácil de operar do que um emaranhado de serviços mal definidos.

Mantendo o pipeline único rápido

Como tudo roda em um único pipeline, a duração do build é o que se deve observar. Caching de dependências e runners warm (como o Latchkey fornece) cortam o imposto do cold start que, de outra forma, se acumula em um build monolítico grande.

Principais conclusões

  • Um monólito é um codebase que faz build e deploy como uma única unidade.
  • Ele oferece a história de CI/CD mais simples, mas um único pipeline que desacelera à medida que cresce.
  • Monólito descreve o formato de deployment, não se o código está bem organizado.

Guias relacionados