$30 off During Our Annual Pro Sale. View Details »
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
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
1
140
Databricksによるエージェント構築
taka_aki
1
120
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
120
AI時代におけるアジャイル開発について
polyscape_inc
0
110
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
3.1k
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
230
M5UnifiedとPicoRubyで楽しむM5シリーズ
kishima
0
120
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.9k
Noを伝える技術2025: 爆速合意形成のためのNICOフレームワーク速習 #pmconf2025
aki_iinuma
2
1.5k
Digitization部 紹介資料
sansan33
PRO
1
6.1k
JSConf JP 2025 LINEヤフーのセッション紹介&アンケート 結果発表
lycorptech_jp
PRO
0
130
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
1.7k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
A designer walks into a library…
pauljervisheath
210
24k
Navigating Team Friction
lara
191
16k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Cult of Friendly URLs
andyhume
79
6.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Side Projects
sachag
455
43k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Statistics for Hackers
jakevdp
799
230k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
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!