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
99
TDC - Integração continua
mvlbarcelos
1
520
Other Decks in Technology
See All in Technology
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
280
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
1.1k
データベース02: データベースの概念
trycycle
0
190
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
8
660
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
130
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
150
LLMアプリケーション_リリース後の苦労とGROW.pdf
horiuchie
0
130
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
1
740
Handling focus in 2024
tahia910
0
260
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
210
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
830
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Infographics Made Easy
chrislema
238
18k
Web Components: a chance to create the future
zenorocha
306
41k
How GitHub (no longer) Works
holman
305
140k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
12
1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
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!