3
respostas

Deploy de site não estatico

Tem algum curso ou algum lugar que eu entenda como subir um site não estático (sem ser via bucket e sim com servidor) no ar no google cloud?! Eu tentei pegar as configurações no curso do "deploy no GCP com spring mvc" mas eu só consegui fazer pelo eclipse que é o que é explicado no curso. Eu tentei seguir os passos do curso, tentei também olhar na documentação e ver algumas coisas na net mas tudo que eu faço no meusite.com.br continua com o 404 do google.

3 respostas

Olá Enzo, tudo bem? Não entendi muito bem seu problema, poderia explicar melhor? No caso você está usando uma aplicação spring mvc, correto? Você está usando o projeto spring do curso de Google Cloud: Deploy de uma aplicação em Spring MVC é isso?

Mas o que eu não entendi muito bem foi: Onde você deseja fazer o deploy dessa aplicação? É no Google Cloud Storage? Se for, então creio que não seja possível, porque o Google Cloud Storage é apenas para armazenamento, então podemos colocar um site estático nele, porque é apenas um site simples HTML, sem processamento, porém para colocar uma aplicação que precise de algum processamento como é o caso de uma aplicação spring precisamos de um servidor que realidade o processamento das informações, um servidor que realmente fique executando a aplicação, como é o caso servidor Compute Engine, como no curso de Google Cloud: Deploy de uma aplicação em Spring MVC, o instrutor usa um servidor realmente para fazer o processamento da aplicação.

Outro caso seria usar um serviço como o Google Cloud Function que executa funções, porém uma aplicação complexa como é essa em spring não é uma boa ideia usar como uma função.

Espero ter esclarecido sua dúvida!

Opa Jonilson, tudo bem e contigo ?

Pelo que você já deve ter entendido por ter me respondendo mil perguntas, hahah, estou tentando fazer o deploy de diferentes formas.

O que eu havia questionado era como fazer o deploy no Google Cloud sem ser um site estático, ou seja, sem ser no GC Storage. No curso de Deploy no GC com Spring MVC o instrutor explica muito bem, mas como é focado em Spring, o deploy acaba sendo feito dentro do Eclipse e eu estava com dificuldade em fazer um deploy de uma aplicação que não fosse feita em Java.

Mas de todo jeito consegui achar o caminho. Eu criei uma instancia linux no GC, fiz o apt-get update, instalei o apache2, acessei o root pelo sudo -su e fui até a pasta var/www/html e entendi que é lá que fica o index.html. Depois fiz as configurações de DNS colocando o IP do servidor no tipo A e o www do tipo CNAME. Deu tudo certo, consegui substituir o index.html.

Dai eu fui fazer um outro teste e agora me confundiu mais, rs! Veja se consegue me tirar essa dúvida.

Eu fui subir um projeto bem simples, de teste, em Angular. Pelo que eu percebi fica mais prático fazer a configuração com o Docker e o Nginx. Então eu fiz as configurações do docker e do nginx dentro do projeto. Depois criei a imagem docker e subi essa imagem no "Container Registry", dentro do GCP. E ai fiz o deploy pelo serviço de "Cloud Run" e reconfigurei o DNS de acordo com os IPs que estavam na tela.

Isso deu certo, mas eu não entendi muito bem o que que aconteceu. Pelo que eu vi , essa imagem não está no servidor que eu já tinha criado. Eu dei um stop no servidor (e portanto não tinha mais nenhum servidor rodando no VM) e mesmo assim a aplicação estava rodando. Onde então eu acesso esse servidor que está a rodando essa aplicação?!

Então Enzo, esse serviço (Cloud Run), vai colocar a imagem para executar sobre VM, porém ele vai abstrair toda a configuração para você, os containers estão sendo executados em VMs porém não na VM que você criou e configurou do zero, ele vai subir uma VM pronta com todas as configurações e vai colocar sua imagem em execução sem a necessidade que você configure. Por isso, mesmo que você desligue a sua VM o container ainda vai ficar em execução já que está sendo executado em outra (ou outras) máquinas criadas por baixo dos panos.

Espero ter esclarecido sua dúvida