O documento compara a escalabilidade vertical versus horizontal em aplicações Java, discutindo os benefícios e desafios de cada abordagem. Também explica como a SaveinCloud oferece escalabilidade automática de containers Java sem necessidade de provisionamento manual de recursos.
2. COMPARAÇÃO
● Downtimes/Oscilações no Deploy
● Downtimes/Oscilações ao reiniciar serviço
● Alto risco de falhas ou sobrecarga na VM
● Dificuldade para escalar
● Modular e Flexível
● Deploy e atualizações independentes
● Mais fácil para escalar e manter
6. ESCALABILIDADE VERTICAL
● Fácil de configurar e publicar
● Sem necessidade de alterações no código para
escalar
● Sem necessidade de sincronização de dados
● Pouca complexidade
● Menores custos
● Ambientes com muita memória não disponíveis em
alguns provedores
● Facilidade para aumentar a performance
● Sem problemas com a rede ou latência
● Sem alta disponibilidade - risco significativo
de downtime se falhar o servidor ou exceder
os limites
● Dificuldade de fazer deploy sem downtime
● Dificuldade para migrar a outro servidor físico
ou infraestrutura maior, e o live migration
depende da tecnologia de virtualização
escolhida
É a capacidade de aumentar e diminuir os recursos disponíveis do seu ambiente, de maneira
rápida e flexível.
Prós Contras
7. Escalabilidade Horizontal
● Solução dos problemas de alta
disponibilidade: fácil de configurar um
ambiente pronto para produção
● Opção de auto-cluster disponível,
diminuindo a complexidade
● Escalabilidade Automática
● Disponível Escalabilidade Stateful ou
stateless
● Inteligência na distribuição dos ambientes
(Anti-affinity)
● Flexibilidade na gestão com opções de UI,
API y JPS
ESCALABILIDADE VERTICAL/HORIZONTAL NA SAVEINCLOUD
Escalabilidade Vertical
● Resolve o problema de alocação de
recursos sem necessidade de definir
exatamente quanto vai utilizar
● RAM e CPU disponíveis de acordo ao
uso e limites estabelecidos na
configuração do container
● O consumo é monitorado e cobrado
em tempo real baseado no uso
● Capacidade de ajustar os limites
máximos sem necessidade de
migração
13. ESCALABILIDADE VERTICAL AUTOMÁTICA
Cada container hospedado com
SaveinCloud Jelastic PaaS é dividido em
unidades.
1 cloudlet = 128MiB de RAM e 400MHz de CPU
14. ESCALABILIDADE VERTICAL AUTOMÁTICA
É possível configurar um limite de
escala máxima para cada container,
onde os recursos ficam disponíveis
sempre que necessário.
15. PAGAR PELO CONTRATADO VS PAGAR PELO USO
Ao usar a escalabilidade vertical automática, você conseguirá uma economia
significativa dos custos do cloud, baseados no uso real.
Forbes - A ilusória eficiência da nuvem: você realmente paga o quanto usa?
Pay-As-You-Go Pay-per-Use
18. STATELESS (CRIAÇÃO DE UM NOVO) VS STATEFUL (CLONE)
MasterMaster Worker Worker
Stateless Stateful
Stateless mode cria um container vazio
baseado no template padrão do servidor de
aplicação.
É mais rápido que o Statefull e mais fácil de
paralelizar a escalabilidade
Stateful mode cria um novo containers
fazendo uma clonagem a partir do Master.
Normalmente leva mais tempo que o Stateless,
mas os dados são replicados
automaticamente.
Empty Clone
19. REGRAS DE ANTI-AFFINITY
Todos os containers
adicionados em um
ambiente de Cluster são
criados em diferentes
servidores físicos, tendo uma
avançada alta
disponibilidade e proteção
contra falhas.
21. OPÇÃO AUTO-CLUSTERING DE CONTAINERS JAVA
A funcionalidade Auto-Clustering mode está disponível para diferentes servidores
de aplicação. Os containers já vem pré configurados com replicação de sessão e
load balancer, garantindo um ambiente com performance e alta disponibilidade.
24. O MAIOR DESAFIO DE TRABALHAR COM JAVA EE
Jakarta EE Developer Survey 2018
“The most widely acknowledged issue
when employing with Java EE is
large memory requirements (40%)”
25. ENTENDENDO O JVM FOOTPRINT
MAXIMUM MEMORY USAGE FORMULA
MAX = [-Xmx] + [-XX:MaxMetaspaceSize] + [-XX:MaxDirectMemorySize] + Num_Of_Threads * [-Xss]
29. SOLUÇÃO PARA JAVA < 12: EXECUÇÃO DE SERVIÇO GC A TODO MOMENTO
https://github.com/jelastic-jps/java-memory-agent
30. EXEMPLO DO RESULTADO DO ADD-ON NO JENKINS
Depois de instalar o Jelastic Agent GC, o consumo de memória trabalha com um nível mínimo. Sem
o agent, o consumo chega nos 3G sem necessidade. Se o uso da aplicação é mais intenso, os
números são ainda piores.
Container limitado com 8G, max heap limit (Xmx) 6.5G e o consumo de memória depois da
entrada chega aos 3G.