Quebrei minhas aplicações em microserviços

e agora?

Bianca Rosa

lead dev @ stone

  • Python
  • Go
  • Lua
  • JS
  • PythOnRio / Gophers RJ
  • Pyladies / WWG

Vamos fazer um software!

Padarias do Seu Joaquim

  • Funcionalidade 1: Estoque
  • Funcionalidade 2: Cadastro de Funcionários
  • Funcionalidade 3: Pagamento
  • Funcionalidade 4: Cadastro de Clientes no Site
  • Funcionalidade 5: Assinatura
  • Funcionalidade 6: Pedidos Online
  • Funcionalidade 7: Faturamento das Padarias

e assim nasce um monolito

É fácil de alterar alguma dessas coisas sem afetar as outras?

É fácil escalar?

É fácil de alterar corrigir problemas com rapidez?

Alguém precisa manter e criar novas funcionalidades.

Vamos usar microserviços!

  • Eu li um artigo que...
  • Eu tenho um amigo que....
  • No blog do Martin Fowler.....
  • Saiu um livro muito bom......

... e nunca mais vamos ter problemas!

  • A linguagem correta pra resolver o problema correto.
  • Aplicações menores e modulares.
  • Deploys independentes.

Beleza, vamos para produção!!!!

  • 1 pipeline de CI vs N pipelines de CI
  • 1 stack vs N stacks
  • 1 deploy vs N deploys

O que esquecemos de ler

Pré-requisitos

Não suba microserviços se você não tem...

  • Provisionamento rápido
  • Monitoramento Básico
  • Deploy rápido
  • Cultura DevOps

Mas não era pra ser mais fácil?

Segredo: ninguém disse que seria.

SUBIMOS!

MELHOR TIME! MELHOR STACK! TÁ TUDO LINDO!

  • Logs
  • Alertas - Definição de Falha

Fronteiras

BoundedContext

Defina-as bem.

Não expor outros times a como você organiza sua arquitetura de serviços é essencial. Exponha interfaces claras.

Segurança

Microservices Security Questions

Seu serviço tem autenticação? Ou ele trabalha confiando nos outros serviços? Como você garante isso?

Reusabilidade

É melhor deixar um time da mesma empresa usar meu microserviço ou ajudar a pessoa a subir o dela?

Complexidade de Desenvolvimento

Cuidado com stacks complexas

Padrões

  • Logs
  • Monitoramento

Boilerplate

  • Exemplos
  • Mínimo Viável
  • Code style

twitter: @__biancarosa

slides: biancarosa.com.br/slides

tks :)