Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Devolta ao Monolito

Devolta ao Monolito

Uma discussão sobre Microserviços e Monolito

reinaldob

March 28, 2016
Tweet

More Decks by reinaldob

Other Decks in Programming

Transcript

  1. @reinaldob • Mais de 20 anos de experiência em desenvolvimento

    • Programador na Spree Commerce Inc. • Empresa focada em eCommerce • Equipe distribuída • 99% home office
  2. Store (Rails, Repo) • Acessado por um volume de usuários

    específico • Tem mecanismo de cache diferente • Requisitos diferentes de disponibilidade
  3. Checkout (Rails, Repo) • Unico app para todas as lojas

    • Requisitos de segurança diferentes • Mais simples, menos deploys
  4. Core (Gem, Repo) Themes (Gem, Repo) Admin (Rails, Repo) Store

    (Rails, Repo) Checkout (Rails, Repo) Site (Rails, Repo)
  5. Infra • Docker para cada Rails • Git repo para

    cada projeto • Git Flow • AWS (elb, ec2, s3, etc..) • DynamoDB
  6. Deploy demorado • Tempo para rodar CI • Gerar imagem(AMI)

    • Publicar • Montar servidores(EC2, ELB, etc) • 15min por projeto(4 projetos)
  7. Dependencias • 5 projetos • Nova versão, 5 tags, 5

    releases, 5 … • 1 Bug = Git flow hell
  8. Evolução Rápida • Startup • Features ortogonais a todo o

    tempo • Time to Market • Times Pequenos
  9. Criar apenas 1 repo • Tag para 1 repo •

    Melhor visão (encontrando problemas) • Sem sofrimento para bugs
  10. Deploy • Processo de rodar o CI • Como geramos

    as imagens (AMI) • Normalizamos as apps para usarem a mesma estrutura e assim reutilizar as configs
  11. Admin + Site • A app site estava meio perdida,

    ai margeamos com o Admin • Um passo seguro
  12. Infra • A infra foi toda redesenhada • Tudo imutável

    • Evidenciou nossos problemas • Ficou muito pior do que estava
  13. Mergear Tudo • Crazy Ideas de novo • Todos os

    projetos viraram 1 só • Rotas, views, assets, etc
  14. Themes (pasta) Admin Store Site Checkout (Rails) Core (pasta) Repo

    • I18n centralizada • Assets centralizados • Packages/Namespaces melhores • Melhores specs
  15. Admin Store Site Checkout (Rails) AMI • CI em 8min

    (mesmo com o dobro de features) • Deploy 10min • Scripts de infra simplificados • Arquitetura 100% imutável (inclusive o banco de dados)