Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Arquitetando e evoluindo um ERP para a Nuvem
Search
Marcus Barcelos
March 27, 2015
Technology
1
300
Arquitetando e evoluindo um ERP para a Nuvem
Palestra apresentada na qcon.
Marcus Barcelos
March 27, 2015
Tweet
Share
More Decks by Marcus Barcelos
See All by Marcus Barcelos
HTTP2
mvlbarcelos
0
110
TDC - Integração continua
mvlbarcelos
1
600
Other Decks in Technology
See All in Technology
実践マルチモーダル検索!
shibuiwilliam
1
410
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
550
様々なファイルシステム
sat
PRO
0
260
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
160
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
190
20251027_findyさん_音声エージェントLT
almondo_event
2
500
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
2
470
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
1.7k
データとAIで明らかになる、私たちの課題 ~Snowflake MCP,Salesforce MCPに触れて~ / Data and AI Insights
kaonavi
0
150
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
130
webpack依存からの脱却!快適フロントエンド開発をViteで実現する #vuefes
bengo4com
4
3.7k
.NET 10のBlazorの期待の新機能
htkym
0
150
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.9k
Designing Experiences People Love
moore
142
24k
A Modern Web Designer's Workflow
chriscoyier
697
190k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
We Have a Design System, Now What?
morganepeng
53
7.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Done Done
chrislema
185
16k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
620
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Transcript
u m e r p p a r a a
n u v e m ARQUITETANDO E EVOLUINDO @andremidea @mvlbarcelos
André Midea Dev focado em Ops na Bluesoft. www.andremidea.com @andremidea
@mvlbarcelos Marcus Barcelos Arquiteto de soluções. Objetivo de estrangular o
legado! :)
a EMPRESA
A EMPRESA
A EMPRESA carreiras.bluesoft.com.br labs.bluesoft.com.br
None
DESAFIO Migrar de um data center para a AWS
ROADMAP Identificar Problemas 2 Soluções Solução para Problemas internos
ANTES
Foi pra aws
depois Availability Zone #1 Availability Zone #2 Cliente 1,2 Cliente
3 Cliente 4,5,6 Cliente ….. Web app WEB APP WEB APP
CONSEQUENCIAS PIOPS. Tipos de instancias. Multi-AZ
WE HAVE A PROBLEM Nosso software não foi feito pensando
na nuvem.
Precisamos Evoluir!
Mas… Como?
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
“Uma longa caminhada começa com o primeiro passo” –Lao Tse
identificar Processos pesados concorrendo com o usuário Processamento de arquivos
texto com grande volume direto no web server Não Escala na Horizontal
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
ACÃO HACKATHON!! =)
MUITAS ÍDEIAS
IdéÉÉias
TORNADO 1.0 Processamento Pesado Assíncrono vs Síncrono Emagrecer o ERP
Escala na Horizontal
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
BÔNUS Escala na Horizontal Menos Carga no WebServer Processamento em
Fila 10.000 Tarefas/dia retirados do web server Tolerancia a Falha
Porém…. o ônus sempre acompanha o bônus
ÔNUS Estrutura Complexa Deploy Centralizado Code Ownership Adoção do Time
não foi boa.
TORNAdo 2.0 Pegar os pontos positivos da primeira versão e
melhorar! TORNADO 1 = PERFORMANCE TORNADO 2 = FACILIDADE
Objetivos OWNERSHIP ONECLICK DEPLOY SIMPLE DEV ENV
Microservices é hype… vamos usar.
AçÕES Separar Tasks em Serviços Processo que controla Serviços Deploy
Individual e sem Downtime
ARQUITETURA 2.0
FLUXO
BENEFÍCIOS Tarefas Isoladas Deploy sem Downtime e a qualquer momento
Desenvolvimento não precisa conhecer da infra
Desvantagens Maior Complexidade no Manager Mais Coisas para Gerenciar
TORNADO CLI ./newtask.sh • Archetype • Cria Repositório • Gera
Pipeline no Jenkins • Gera todas configurações
ONE CLICK DEPLOY
DASHBOARD
APRENDIZADO NÃO CENTRALIZE ISOLAMENTO RASTREABILIBADE USE A NUVEM A SEU
FAVOR
NEXT STEPS CONTAINER SERVICE!
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
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>
mvn clean package docker:build - DpushImage
Final
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
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
ANTES
Problemas Consumo de CPU Contínuo Não Escala Cupons param de
processar se webserver fica fora Não temos garantia de processamento
Objetivos RESILIÊNCIA ESCALABILIDADE NÃO AFETAR USUÁRIO
COMO? Lembrando… Use e abuse o que a cloud oferece!
http://aws.amazon.com/pt/kinesis/
DEPOIS
benefícios 22% de requests a menos Disponibilidade Escala Horizontalmente Acompanhamento
de Venda em Tempo Real Usuários não são mais afetados
Os Desafios não Acabam :)
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
Perfomance boa, entrega devagar… não está certo
Identificar Demora para fazer o build. Ambiente de dev ≠
Ambiente de build. Insegurança para Entregar. Feedback rapido por equipes.
Objetivos BUILD RÁPIDO RELEASE CONFIÁVEL AMBIENTE PADRONIZADO
Abordagem Amazon EC2 Spot Instances
jenkis Integração Continua. Criação das instancias SPOT. Deploy.
Docker image Firefox headless. Ruby + Watir. Java + Tomcat.
Volume montado (war + testes) Docker hub (mesma imagem dev / build)
ec2 spot Uma instancia por equipe Custo +- U$ 20,00/instancia
ansible SPOT cai com frequência Criar a SPOT pelo Jenkis.
Docker? Passa na minha maquina, mas quebra no Jenkins!
PQ docker? Desenvolvimento Build/Produção
Já rodou os teste na sua maquina com o docker?
então… RODA LÁ!
FLUXO
Valeu a pena? Sem docker Com docker
Valeu a pena?
wrap up Conheça bem os produtos que sua provedora de
cloud oferece
wrap up BigBang não é viável em um produto grande.
Começa pelas bordas.
wrap up Delegue o máximo possível para a provedora de
cloud.
Obrigado!