
Já faz algum tempo que uso o Google Cloud para hospedar meu portfolio, blog pessoal e meus projetos pessoais de desenvolvimento web de graça. Desde então, além da melhoria de desempenho, pude aprender mais sobre o uso dos serviços de computação em nuvem.
Talvez você não saiba, mas tanto o Google Cloud como a AWS e o Microsoft Azure possuem níveis gratuitos de utilização de alguns dos seus produtos. Eles podem ser limitados por tempo de uso, capacidade computacional e/ou de armazenamento.
Para uma aplicação pequena, como um portfolio de desenvolvedor web, o nível gratuito do Google Cloud é suficiente. Isso me permitiu reduzir muito o custo de manter meu site disponível, já que hoje praticamente só gasto com a renovação anual do meu domínio.
E ainda com a vantagem técnica de utilizar um sistema robusto e rápido de infraestrutura de rede, armazenamento, disponibilidade e segurança do Google Cloud, utilizado por grandes empresas de diversos setores.
Além disso, a migração me deu liberdade para adicionar funcionalidades que meu antigo provedor pago de hospedagem de sites não fornecia: otimização de imagens, atualizações para versões mais recentes do PHP e algoritmos de compactação, por exemplo. O impacto no tempo de carregamento do site foi incrivelmente eficaz.
Sem contar as possibilidades de aprendizado e reforço de conhecimento relacionados a desenvolvimento web e a própria utilização dos serviços do Google Cloud. Utilização do terminal de sistemas operacionais Linux e o deploy de aplicações dockerizadas são alguns dos exemplos.
Desde então expandi o uso para outros serviços gratuitos com o conhecimento adquirido no curso de fundamentos do Google Cloud.
Como tudo funciona
Primeiramente, as requisições ao domínio do site levam a um IP externo Premium, em que o tráfego é roteado o máximo possível dentro da rede do Google. Após passar por regras de firewall, a requisição chega a uma máquina virtual do Compute Engine, com armazenamento e processamento dentro da categoria gratuita do Google Cloud.
A VM tem instalado um servidor Nginx, com suporte a PHP, e um servidor de banco de dados relacional MariaDB, versão open-source do conhecido MySQL. Com isso é possível rodar o WordPress, bem como outros projetos que necessitem ou não de banco de dados.
Alguns dos projetos pessoais utilizam linguagens como Java, ou são aplicações que rodam em servidores Node.js. Nestes casos, elas utilizam os limites gratuitos do Cloud Run, uma plataforma sem servidor (serverless) para executar containers na nuvem.
Passei a usar esse serviço após o Heroku extinguir o plano gratuito, e fiz o deploy de um dos projetos no Google Cloud utilizando o Cloud Run.
Os projetos são importados e sincronizados de repositórios no meu GitHub, e compilados utilizando o serviço Cloud Build. A aplicação é disponibilizada utilizando um mapeamento de domínio, em que um subdomínio é atribuído ao projeto para evitar o uso de endereços aleatórios gerados pelo sistema.
Backups, monitoramento e atualizações
Com grandes poderes vêm grandes responsabilidades
Tio Ben
A possibilidade de ter um servidor configurado à sua maneira em serviços de nuvem traz, no entanto, a “desvantagem” de ter que assumir as tarefas de manutenção e disponibilidade do seu site e/ou da sua aplicação.
Na verdade, não se trata de uma desvantagem. Além de aprender e aplicar novos conhecimentos, o Google Cloud facilita bastante o trabalho, e de graça.
Os logs de acessos e possíveis mensagens de erros do servidor, além de serem temporariamente hospedados na máquina virtual, são enviados ao serviço Cloud Logging. Ali podem ser buscados e filtrados para monitoramento de possíveis anormalidades.
Além disso, há rotinas de backups com snapshots e atualização do servidor via gerenciamento de correções de SO. Todos eles programados para acontecer periodicamente de maneira automática.
Na parte de custos, deixei configurado alertas dentro do sistema de faturamento para me notificar caso algum projeto esteja criando custos inesperados.
Por fim, o desempenho do servidor, uso de rede, e o faturamento do uso dos serviços podem ser acompanhados tanto pelo console do Google Cloud no navegador quanto em um aplicativo disponível para celulares.
Por onde começo?
Se você ficou interessado em aprender mais sobre serviços de computação em nuvem, tanto o Google Cloud quanto AWS e Microsoft Azure possuem treinamentos em que você pode estudar. Novos usuários também podem receber vouchers com créditos para serem utilizados para testar os serviços.