Hospedagem Java com alta disponibilidade e escalabilidade!
A hospedagem Java com alta disponibilidade e escalabilidade tornou-se essencial para garantir o sucesso de aplicações web e serviços online. Saiba tudo sobre ela!
Monolithic X Microservices - Comparação
Abaixo será apresentado a diferença entre os modelos monolithic e de microservices:
- 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
Diagrama
- O usuário vai fazer uma requisição de um domínio no seu navegador, o servidor DNS vai fazer uma ligação entre um domínio e um número de IP e com isso o usuário chega a nossa infraestrutura.
- O usuário vai fazer uma requisição de um domínio no seu navegador, o servidor DNS vai fazer uma ligação entre um domínio e um número de IP e com isso o usuário chega aos containers de nossa infraestrutura.
- Os nossos containers estao separados em, load balancer, aplicação e banco de dados
Escalabilidade vertical e horizontal
Escalabilidade horizontal é adicionar mais instancias de um mesmo servidor a um ambiente, como adicionar um outro nó de um servidor de aplicação para o mesmo sistema.
Escalabilidade vertical
Vantagens
- 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
Desvantagens
- 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
Escalabilidade vertical/horizontal na SaveinCloud
A principal vantagem da SaveinCloud para outras plataformas de hospedagem Java, é a possibilidade configurar a alocação de recurso para os ambientes sem precisar que a aplicação tenha downtime, Abaixo será apresentados alguns benefícios da escalabilidade horizontal e vertical:
Escalabilidade Vertial
- Resolver o problema de alocação de recursos sem necessidade de deinir exatamente quando vai utilizar
- RAM e CPU disponiveis de acordo ao uso e limites estabelecidos na configuração do container
- O consumo é monitorado e cobrao em tempo real baseado no uso
- Capacidade de ajustar os limites maximos sem necessidade de migração
Escalabilidade horizontal
Limites vs Uso real em uma VM
Nas outras plataformas de hospedagem Java normalmente é contratado um limite de recursos para uma VM, esses recursos dificilmente são totalmente utilizados.
Elasticidade em um Cloud baseado em Containers
Elasticidade vertical automática
Pagar pelo contratado VS Pagar pelo uso
Na SaveinCloud usamos o modelo paga somente pelo que foi utilizado assim ao usar a escalabilidade vertical automática na nossa plataforma, você conseguira uma economia significativa dos custos do cloud, baseados no uso real.
Escalabilidade Horizontal de hospedagem Java
Containers com escalabilidade horizontal
Stateless (Criação de um novo) vs Stateful (Clone)
Regras de anti-affinity
Escalabilidade horizontal automática de hospedagem Java
A opção escalabilidade horizontal automática da hospedagem Java pode ser acessada clicando na opção de configurações do ambiente, nessa opção é possível configurar uma regra que permita adicionar novos containers e remove-los
Opção auto-clustering de hospedagem Java
Superando o desperdício de memoria Java
Requerimentos de uso de memória
O gráfico acima é referente a uma pesquisa feita em um evento no Jakarta EE em 2018, onde foi perguntado quais seriam os pontos a melhorar se tratando de hospedagem java, mais de 40% dos entrevistados responderam que seria o requerimentos de uso de memória.
Entendendo o JVM Footprint
A JVM tem duas funções primárias, que são, permitir que uma aplicação Java funcione em qualquer dispositivo ou sistema operacional, e controlar e otimizar o uso de memória pelas aplicações.
Solução para Java < 12: Execução de serviço GC a todo momento
Exemplo do resultado do ADD-ON
Depois de instalar o jelastic Agent GC, o consumo de memoria 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.
Escalabilidade e economia garantidas
Quer hospedar sua aplicação Java em uma empresa referência, pagando apenas pelo que utiliza?
Na SaveinCloud, oferecemos ambientes de alta performance, com escalabilidade e disponibilidade garantidas. Aumente seus recursos de forma prática e aproveite o melhor custo-benefício do mercado.
Faça o teste agora e descubra!