SlideShare uma empresa Scribd logo
1 de 25
Batch, Spring, Performance e
outras coisas mais…
TDC SP 2017
Firme e forte na amizade
Diogo Souza
 Java Dev no PagSeguro
 Aficionado por clean code
 Sim, gosta duma praia arretada!
Blz?
“
Como reduzimos o tempo de execução
de um batch de 3:30h para 5 min?
O dito cujo…
 Desafios
 Inovação
 Negócio
 Backoffice
 Crescimento
Os “x”
crescimento
performance
resiliência
escalabilidade
flexibilidade
As dores…
Legado
 Solução própria de batch
 Libs e técnicas obsoletas
 Pensado para funcionar!
Tecnologia
Nunca subestime o poder de
uma tecnologia (e de sua
documentação)!
Custo
 Alto risco em alterações
 Manutenção difícil
 Alto acoplamento
O “bicho reclamão”
É de autonomia que estamos falando…
💃
Qual stack?
3:30h
1
Let’s Spring it!
3:30h
2
“n” linhas (milhões)
/dia
R
E
A
D
P
R
O
C
E
S
S
W
R
I
T
E
B
D
B
D
B
D
B
D
B
D
“n” linhas (milhões)
/dia
R
E
A
D
P
R
O
C
E
S
S
W
R
I
T
EB
D
a la “chunks”
20mil
Remova os excessos.
Simplifique.
1:33h
3
 Tabelas/Proc’s
 Códigos mortos/redundantes
 Libs e configs não usadas ou
obsoletas
 @Deprecated’s
🔌
Qual o momento certo de cada operação?
Seja amigo do seu
banco.
45m
4
 Persistir agora ou não?
 Tudo via entity mesmo?
 Queries otimizadas…
 Cache + pagination!
 Não esqueça o AD.
“
The amount to increment by when allocating
sequence numbers from the sequence
A arte do allocationSize
hibernate.jdbc.fetch_size
hibernate.jdbc.batch_size
vs
Mission complete!
5 min e 43 segundos
Monitore5
 RAM, CPU, etc.
 Onde estão os gargalos?
 JConsole, VisualVM, Probes
Que mais?
Spring XD Spring Integration
Onde me achar?
◉ @diogosouzac
◉ diogosouza.com.br
Vlew!

Mais conteúdo relacionado

Semelhante a Batch, Spring, Performance e outras coisas mais...

curso-228532-aula-10-20e2-completo 1..pdf
curso-228532-aula-10-20e2-completo  1..pdfcurso-228532-aula-10-20e2-completo  1..pdf
curso-228532-aula-10-20e2-completo 1..pdf
kassiocarlos
 

Semelhante a Batch, Spring, Performance e outras coisas mais... (14)

Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015
 
Cs 2
Cs 2Cs 2
Cs 2
 
Aspectos profissionais 3pontos
Aspectos profissionais 3pontosAspectos profissionais 3pontos
Aspectos profissionais 3pontos
 
Pep 8
Pep 8Pep 8
Pep 8
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Agile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10xAgile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10x
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
curso-228532-aula-10-20e2-completo 1..pdf
curso-228532-aula-10-20e2-completo  1..pdfcurso-228532-aula-10-20e2-completo  1..pdf
curso-228532-aula-10-20e2-completo 1..pdf
 
Do legado ao DDD
Do legado ao DDDDo legado ao DDD
Do legado ao DDD
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Como transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOSComo transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOS
 
Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
 

Mais de Diogo Souza (6)

GraalVM: Harder, Better, Faster, Stronger
GraalVM: Harder, Better, Faster, StrongerGraalVM: Harder, Better, Faster, Stronger
GraalVM: Harder, Better, Faster, Stronger
 
Desenvolvimento Web: Por que Java?
Desenvolvimento Web: Por que Java?Desenvolvimento Web: Por que Java?
Desenvolvimento Web: Por que Java?
 
Envers + Seam + JBoss: Why to use?
Envers + Seam + JBoss: Why to use?Envers + Seam + JBoss: Why to use?
Envers + Seam + JBoss: Why to use?
 
Android: Por que usar? Como desenvolver?
Android: Por que usar? Como desenvolver?Android: Por que usar? Como desenvolver?
Android: Por que usar? Como desenvolver?
 
Java, android e o mercado de ti
Java, android e o mercado de tiJava, android e o mercado de ti
Java, android e o mercado de ti
 
Simples pelo simples google android com robo guice
Simples pelo simples   google android com robo guiceSimples pelo simples   google android com robo guice
Simples pelo simples google android com robo guice
 

Batch, Spring, Performance e outras coisas mais...