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

Arquitetando e evoluindo um ERP para a Nuvem

Arquitetando e evoluindo um ERP para a Nuvem

Palestra apresentada na qcon.

Marcus Barcelos

March 27, 2015
Tweet

More Decks by Marcus Barcelos

Other Decks in Technology

Transcript

  1. u m e r p p a r a a

    n u v e m ARQUITETANDO E EVOLUINDO @andremidea @mvlbarcelos
  2. depois Availability Zone #1 Availability Zone #2 Cliente 1,2 Cliente

    3 Cliente 4,5,6 Cliente ….. Web app WEB APP WEB APP
  3. IDENTIFI CAR O que Conseguimos Mudar? AGIR Alterar! MEDIR Ver

    se o que alteramos deu resultado VER ReSULTA DO O que fizemos deu certo? PROCESSO
  4. identificar Processos pesados concorrendo com o usuário Processamento de arquivos

    texto com grande volume direto no web server Não Escala na Horizontal
  5. AçÃO Processos pesados concorrendo com o usuário Processamento de arquivos

    texto com grande volume direto no web server Não Escala na Horizontal
  6. Arquitetura Web app Web Amazon SQS Tornado Cliente Cliente Cliente

    Enviar NF-e Gerar SPED Task X Task Y Task Z Amazon S3 Amazon RDS Amazon Redshift PostgreSQL
  7. BÔNUS Escala na Horizontal Menos Carga no WebServer Processamento em

    Fila 10.000 Tarefas/dia retirados do web server Tolerancia a Falha
  8. TORNAdo 2.0 Pegar os pontos positivos da primeira versão e

    melhorar! TORNADO 1 = PERFORMANCE TORNADO 2 = FACILIDADE
  9. BENEFÍCIOS Tarefas Isoladas Deploy sem Downtime e a qualquer momento

    Desenvolvimento não precisa conhecer da infra
  10. TORNADO CLI ./newtask.sh • Archetype • Cria Repositório • Gera

    Pipeline no Jenkins • Gera todas configurações
  11. 1 2 3 4 5 1. Nova Release 2. Deploy

    - Docker Image 3. Mudança de Versão Subir docker image correspondente 4. Enviar Tasks para versão nova 5. Matar Serviço Antigo FLOW
  12. DOcker maven plugin <build> <plugins> ... <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.2.4</version>

    <configuration> <imageName>task-sped-fiscal</imageName> <dockerDirectory>docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> ... </plugins> </build>
  13. U S E O Q U E A N U

    V E M O F E R C E - M A N U T E N ç Ã O + I N O V A Ç Ã O
  14. AçÃO Processos pesados concorrendo com o usuário Processamento de arquivos

    texto com grande volume direto no web server Não Escala na Horizontal
  15. Problemas Consumo de CPU Contínuo Não Escala Cupons param de

    processar se webserver fica fora Não temos garantia de processamento
  16. IDENTIFI CAR O que Conseguimos Mudar? AGIR Alterar! MEDIR Ver

    se o que alteramos deu resultado VER ReSULTA DO O que fizemos deu certo? DEPLOY Deploy Está 
 Lento Teste não Passa Teste passa
 na minha máquina
  17. Identificar Demora para fazer o build. Ambiente de dev ≠

    Ambiente de build. Insegurança para Entregar. Feedback rapido por equipes.
  18. Docker image Firefox headless. Ruby + Watir. Java + Tomcat.

    Volume montado (war + testes) Docker hub (mesma imagem dev / build)