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
310
1
Share
Arquitetando e evoluindo um ERP para a Nuvem
Palestra apresentada na qcon.
Marcus Barcelos
March 27, 2015
More Decks by Marcus Barcelos
See All by Marcus Barcelos
HTTP2
mvlbarcelos
0
110
TDC - Integração continua
mvlbarcelos
1
620
Other Decks in Technology
See All in Technology
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
45
47k
Unlocking the Apps
pimterry
0
190
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1k
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
150
Ruby::Boxでできること、Refinementsでできること
joker1007
3
380
AI と創る新たな世界 / A New World Created with AI
ks91
PRO
0
100
GoとSIMDとWasmの今。
askua
3
490
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
320
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
190
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
730
Platform engineering for developers, architects & the rest of us (AI agents)
danielbryantuk
0
180
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Side Projects
sachag
455
43k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
RailsConf 2023
tenderlove
30
1.5k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
Practical Orchestrator
shlominoach
191
11k
Become a Pro
speakerdeck
PRO
31
6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
74k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
190
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
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!