3
respostas

Aplicações Java

A aplicação é atualizada pelo Cloud Storage e é escalada de acordo com a demanda. Muito bom. Mas se eu tiver uma aplicação Java, como deploy desta em cada instância, uma vez que não sei quantas estarão disponíveis e nem os respectivos IPs?

3 respostas

Olá Mateus, tudo bem? Eu não entendi muito bem sua dúvida, mas de ante mão, você poderia criar uma VM e instalar a plicação Java, e depois gerar uma imagem a partir dessa VM e depois criar outras máquinas a partir dessa imagem, assim não vai precisar saber IPs só replicar ou aumentar a quantidade de máquina que estão atrás do LoadBalancer e os clientes também não vão sentir impacto. Mas explica melhor sua dúvida que posso ti dar uma resposta mais adequada!

O PHP é interpretado e o Java compilado. Toda vida que preciso colocar uma aplicação Java, tenho que fazer remover a versão antiga e colocar a nova, diferentemente do PHP, que posso apenas atualizar os arquivos. Nesse cenário, toda vida que precisar colocar uma nova verão de uma aplicação Java, tenho que criar uma nova imagem da VM pra subir o cluster a partir dessa imagem?

Usando apenas o Compute Engine temos que fazer dessa forma, sempre criar uma nova imagem para depois criar as instâncias usando essa nova imagem que tem uma nova versão da aplicação. No caso de aplicações Java que são compiladas, acho mais vantajoso usar um serviço PaaS (Platform as a Service), ou seja plataforma como serviço, como é o caso do App Engine, e seu equivalente na AWS é o Elastic Beanstalk, usando uma plataforma como serviço é mais simples de gerenciar essas versões, assim podemos simplesmente configurar uma nova versão, subir as máquinas e depois que todas as máquinas estiverem funcionando podemos mudar uma URL e pronto, já teremos uma nova versão da aplicação sendo executadas em quantas máquinas acharmos necessário e sem que o usuário sofra qualquer impacto. Aqui na plataforma não temos um curso sobre App Engine, porém temos dois cursos de Elastic Beanstalk:

Acho que eles podem ti dar uma ideia de como poderoso é esse serviço, principalmente quando usamos esse tipo de aplicação compilada. Ele abstrai toda a configuração de máquina, com servidor web e tudo mais, e só precisamos colocar a aplicação por meio do arquivo para deploy, no caso de uma aplicação Java é o arquivo WAR.

Espero ter ajudado!