SlideShare uma empresa Scribd logo
ARQUITETURAJAVA
escalandosuaaplicaçãoalémdohype
ahh o hype…
Arquitetura Java - Escalando além do Hype
podemos escalar
SEM o hype…
Rafael Ponte
@rponte
Arquitetura Java - Escalando além do Hype
ARQUITETURAJAVA
escalandosuaaplicaçãoalémdohype
Como escalar minha
app para MILHARES de
usuários?
Loja Virtual
Arquitetura Java - Escalando além do Hype
Revisitando a Web…
servidor
servidor
navegador
servidor
navegador
servidor
requisição
navegador
servidor db
requisição
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
Performance 

X 

Escalabilidade
2conceitos
importantes
tempoderesposta
(responsetime)
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
tempo resposta
navegador
servidor db
requisição
resposta
tempo resposta: 100ms
operações/unidade_tempo
(throughput)
usuários/minuto
(throughput)
usuários/segundo
(throughput)
usuários/segundo
(throughput)
requisições/segundo
(throughput)
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
tempo resposta: 100ms
servidor db
requisição
resposta
tempo resposta: 100ms
servidor db
requisição
resposta
tempo resposta: 100ms
servidor db
requisição
resposta
tempo resposta: 1s
servidor db
requisição
resposta
tempo resposta: 7s
servidor db
requisição
resposta
tempo resposta: 24s
servidor db
requisição
resposta
tempo resposta: 0
nossaaplicaçãonãoescalamais
doque:80req/s
navegador
servidor db
requisição
resposta
throughput:80req/s
navegador
servidor db
requisição
resposta
throughput:250req/s
navegador
servidor db
requisição
resposta
throughput:1000req/s
PASSOS5
RESUMINDO EM
Passo 1

(TUNANDO A APLICAÇÃO)
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
JVM
Arquitetura Java - Escalando além do Hype
2Gb
2Gb
???
2Gb
256Mb
2Gb
??Mb
2Gb
2Gb
2Gb
2Gb
=
2Gb
2Gb
=
X
2Gb
1Gb
2Gb
1Gb
-Xms256m	-Xmx1024m	

-XX:MaxPermSize=192m
2Gb
1Gb
-Xms256m	-Xmx1024m	

-XX:MaxPermSize=192m
2Gb
1Gb
-Xms256m	-Xmx1024m	

-XX:MaxPermSize=192m
minimo != maximo
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
minimo = maximo
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
HeapSize
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
PermGenSize
2Gb
1Gb
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
memoria
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
-server
modo servidor
memoria
2Gb
1Gb
-Xms1024m	-Xmx1024m	

-XX:MaxPermSize=192m
-XX:+UseConcMarkSweepGC

-XX:+CMSParallelRemarkEnabled
-server
modo servidor
memoria
coletor de lixo (GC)
Sistema

nãoaguenta?
Passo 2

(MELHORANDO A MÁQUINA)
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
cpu
memoria
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
X
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
x 6
x 6
Mais
requisições?
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Escalabilidade Vertical
(scale up)
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
X
Sistema

nãoaguenta?
Passo 3

(ADICIONANDO MAIS MÁQUINAS)
navegador
servidor db
requisição
resposta
navegador
servidor db
requisição
resposta
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
ip?
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
200reqs
200reqs
100reqs100reqs
Balanceador
deCarga
Balanceador
deCarga
Balanceador
deCarga
Arquitetura Java - Escalando além do Hype
Mais
requisições?
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Cluster
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Escalabilidade Horizontal
(scale out)
Apesardemais
barata…
Arquitetura Java - Escalando além do Hype
(1a requisição)
(1a requisição)
Sessão
(2a requisição)
qual?
(2a requisição)
(2a requisição)
StickySession
♥
Masese…
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
?
?
Falta
Redundância
Passo 4

(REPLICANDO ESTADO)
Arquitetura Java - Escalando além do Hype
(1arequisição)
(1arequisição)
(2arequisição)
(2arequisição)
Arquitetura Java - Escalando além do Hype
Session
Replication
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
ReplicaEstado
Arquitetura Java - Escalando além do Hype
Alta Disponibilidade
(high availability)
Mais
requisições?
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Setenhomais
máquinas…
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Replicarsessãoé
CARO
Passo 5

(REMOVENDO ESTADO)
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
ONDE?
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
CacheDistribuído
CacheDistribuído
CacheDistribuído
Arquitetura Java - Escalando além do Hype
STATELESS
(shared nothing architecture)
Mais
requisições?
Arquitetura Java - Escalando além do Hype
256GB
Todas
plataformas
Nãoescala
ainda…
Nuvens
Arquitetura Java - Escalando além do Hype
esóentão…
Arquitetura Java - Escalando além do Hype
@rponte
http://triadworks.com.br/
@triadworks

Mais conteúdo relacionado

PDF
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
PDF
ExpressoBR para Um Milhão (de Usuários)
PDF
Gerenciando Portais Liferay com Soluções de Performance Digital
PDF
Introdução ao desenvolvimento Web
PDF
2290494 integrando-flex-com-php
PDF
Ligação do Flex a um backend LAMP usando AMFPHP
PDF
Webservices e Computação em Nuvem com PHP
PDF
FISL12. Web Services e Computação em Nuvem com PHP
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
ExpressoBR para Um Milhão (de Usuários)
Gerenciando Portais Liferay com Soluções de Performance Digital
Introdução ao desenvolvimento Web
2290494 integrando-flex-com-php
Ligação do Flex a um backend LAMP usando AMFPHP
Webservices e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP

Semelhante a Arquitetura Java - Escalando além do Hype (20)

PDF
Pangea - Plataforma digital com Google Cloud Platform
PDF
Impulsionando startups com api publica
PDF
Precisamos de um barco maior introdução ao dimensionamento de aplicações
PDF
Do War Room ao DevOps
PPTX
Big Data, Performance, Posix, RTB no mercado de publicidade online
PDF
Microservices reativos e a experiência do iFood
PDF
Devcamp 2017 Microservices Reativos
PPT
Qcon 2013 - Walmart Frontend Solution using Node.js
PPTX
Debug de cabo a rabo
PPT
Mini Curso Mashup Coreu
PDF
Infraestrutura em nuvem com Amazon Web Services (AWS)
PDF
[GUTS-RS] Testes de Performance
ODP
Apresentação Minas - Desenvolvendo Sites
PDF
CakePHP - Aprendendo a fazer o primeiro bolo
PDF
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
PDF
JS Experience 2017 - Otimizando o front end
PDF
Desenvolvedor de software para Big Data
PPTX
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
PPTX
Do 502 BadGateway ao record de 200
PPTX
Pangea - Plataforma digital com Google Cloud Platform
Impulsionando startups com api publica
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Do War Room ao DevOps
Big Data, Performance, Posix, RTB no mercado de publicidade online
Microservices reativos e a experiência do iFood
Devcamp 2017 Microservices Reativos
Qcon 2013 - Walmart Frontend Solution using Node.js
Debug de cabo a rabo
Mini Curso Mashup Coreu
Infraestrutura em nuvem com Amazon Web Services (AWS)
[GUTS-RS] Testes de Performance
Apresentação Minas - Desenvolvendo Sites
CakePHP - Aprendendo a fazer o primeiro bolo
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
JS Experience 2017 - Otimizando o front end
Desenvolvedor de software para Big Data
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
Do 502 BadGateway ao record de 200
Anúncio

Mais de Rafael Ponte (20)

PDF
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
PDF
TechDay Retrospectiva 2018
PDF
Como treinar seu estagiario
PDF
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
PDF
Como Apresentar Codigo em Slides - Javou #7 - 2016
PDF
Migrations for Java (Javou #4 - JavaCE)
PDF
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
PDF
Hibernate efetivo (IA-2014 / Disturbing the Mind)
PDF
Hibernate efetivo (COALTI-2014 / ALJUG)
PDF
Migrations for Java (QCONSP2013)
PDF
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
PDF
Importância dos testes automatizados no dia a dia
PDF
Hibernate Efetivo (QCONSP-2012)
PDF
Migrations for Java
PDF
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
PDF
Importância dos testes automatizadoss
KEY
Greenbar - Testes automatizados na sua empresa
PDF
Desafios de um desenvolvedor JSF
PDF
Curso de Java server faces (JSF)
PDF
Os 10 maus hábitos dos desenvolvedores JSF
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay Retrospectiva 2018
Como treinar seu estagiario
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
Como Apresentar Codigo em Slides - Javou #7 - 2016
Migrations for Java (Javou #4 - JavaCE)
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (COALTI-2014 / ALJUG)
Migrations for Java (QCONSP2013)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importância dos testes automatizados no dia a dia
Hibernate Efetivo (QCONSP-2012)
Migrations for Java
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Importância dos testes automatizadoss
Greenbar - Testes automatizados na sua empresa
Desafios de um desenvolvedor JSF
Curso de Java server faces (JSF)
Os 10 maus hábitos dos desenvolvedores JSF
Anúncio

Último (11)

PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
PPTX
Mecânico de Manutenção de Equipamentos.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Manejo integrado de pragas na cultura do algodão
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Viasol Energia Solar -Soluções para geração e economia de energia
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Arquitetura de computadores - Memórias Secundárias
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes
Mecânico de Manutenção de Equipamentos.pptx

Arquitetura Java - Escalando além do Hype