Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Arquitetando e evoluindo um ERP para a Nuvem
Search
Marcus Barcelos
March 27, 2015
Technology
310
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
630
Other Decks in Technology
See All in Technology
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
140
[2026 Oracle Technical Deep Dive] OCI AI Resilience -OCIのセキュリティ対策機能をきちんと使いこなす- (2026年9月17日開催)
oracle4engineer
PRO
0
130
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
340
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
390
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
560
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
150
調査タスクをAIと乗り切る 〜過去の調査をナレッジ化し 調査手順をスキルにする〜
mot_techtalk
1
120
Claude起点の仕様駆動開発
tanakaseiya
0
390
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
550
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
0
120
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
890
Documentation Writing (for coders)
carmenintech
77
5.6k
Practical Orchestrator
shlominoach
192
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Accessibility Awareness
sabderemane
1
230
The agentic SEO stack - context over prompts
schlessera
0
970
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Visualization
eitanlees
153
17k
Everyday Curiosity
cassininazir
0
340
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
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!