É possível executar os aplicativos no App Engine usando o ambiente flexível ou padrão do App Engine. Também é possível optar por usar os dois ambiente simultaneamente para o aplicativo e permitir que seus serviços tenham os benefícios individuais de cada um deles.
Ambientes do App Engine
O App Engine é indicado para aplicativos projetados com arquitetura de microsserviços (link em inglês), principalmente se você decidir utilizar ambos os ambientes. Use as seções a seguir para saber mais e entender qual ambiente atende melhor às necessidades do seu aplicativo.
Quando escolher o ambiente padrão
As instâncias do aplicativo são executadas em um sandbox (em inglês), usando o ambiente de execução de uma das linguagens compatíveis, que estão listadas abaixo.
Aplicativos que precisam lidar com escalonamento rápido.
O ambiente padrão é ideal para aplicativos com as seguintes características:
- Destina-se a ser executado gratuitamente ou a um custo muito baixo, em que você paga apenas pelo que precisa e quando precisa. Por exemplo, o aplicativo pode ser escalonado para 0 instâncias quando não há tráfego.
- Passa por picos súbitos e extremos de tráfego que exigem escalonamento imediato.
Quando escolher o ambiente flexível
As instâncias do aplicativo são executadas em contêineres do Docker em máquinas virtuais (VM, na sigla em inglês) do Compute Engine.
Aplicativos que recebem tráfego consistente, passam por flutuações de tráfego regulares ou atendem aos parâmetros para aumentar e diminuir gradualmente a escala.
O ambiente flexível é ideal para aplicativos com as seguintes características:
- Executado em um contêiner do Docker que inclui um ambiente de execução personalizado ou código-fonte escrito em outras linguagens de programação.
- Usa ou depende de frameworks que incluem código nativo.
- Acessa os recursos ou serviços do projeto do Google Cloud que estejam na rede do Compute Engine.
Comparar os recursos de alto nível
A tabela a seguir resume as diferenças entre os dois ambientes:
Recurso | Ambiente padrão | Ambiente flexível |
---|---|---|
Tempo de inicialização de instâncias | Segundos | Minutos |
Tempo limite máximo da solicitação | Depende do ambiente de execução e do tipo de escalonamento. | 60 minutos |
Linhas de execução em segundo plano | Sim, com restrições | Sim |
Processos em segundo plano | Não | Sim |
Depuração SSH | Não | Sim |
Escalonamento | Manual, básico, automático | Manual, automático |
Escalonamento para zero | Sim | Não, mínimo de 1 instância |
Gravação em disco local |
Acesso de leitura e gravação ao diretório /tmp .
|
Sim, temporariamente (disco inicializado em cada inicialização da VM) |
Modificação do ambiente de execução | Não | Sim (pelo Dockerfile) |
Tempo de implantação | Segundos | Minutos |
Patches de segurança automáticos no local | Sim | Sim (exclui o ambiente de execução da imagem do contêiner) |
Acesso a APIs e serviços do Google Cloud, como Cloud Storage, Cloud SQL, Memorystore, Google Tarefas e outros. | Yes | Sim |
WebSockets | Não | Sim |
Compatível com a instalação de binários de terceiros | Sim | Sim |
Local | Locais para o ambiente padrão | Locais para o ambiente flexível |
Preços | Baseado em instância/hora | Baseado no uso de vCPU, memória e discos permanentes |
Confira também uma comparação detalhada dos ambientes.
Comparar o App Engine e o Cloud Run
Para comparar recursos e saber como migrar para o Cloud Run, consulte Comparar o App Engine e o Cloud Run.
Comparar o ambiente flexível com o Compute Engine
O ambiente flexível do App Engine apresenta as seguintes diferenças em relação ao Compute Engine:
As instâncias de VM do ambiente flexível são reiniciadas semanalmente. Durante as reinicializações, os serviços de gerenciamento do Google aplicam todas as atualizações de sistema operacional e segurança necessárias.
Você sempre tenha acesso raiz às instâncias de VM do Compute Engine. Por padrão, o acesso SSH às instâncias de VM no ambiente flexível está desativado. Se você quiser, é possível ativar o acesso raiz às instâncias de VM do seu aplicativo.
As implantações de código podem levar mais tempo à medida que as imagens de contêiner são criadas usando o serviço Cloud Build.
A região geográfica de uma instância de VM do ambiente flexível é determinada pelo local especificado para o aplicativo do App Engine do projeto do Google Cloud. Os serviços de gerenciamento do Google garantem que as instâncias de VM compartilhem o mesmo local para otimizar o desempenho.
Migrar do ambiente padrão para o ambiente flexível
Se você tem um aplicativo no ambiente padrão, talvez queira mover alguns serviços para o ambiente flexível. Para conferir orientações, consulte as recomendações na comparação dos ambientes.
Para migrar serviços específicos para Python, Java, Go e PHP, consulte Como migrar serviços do ambiente padrão para o ambiente flexível.
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do ambiente padrão do Ruby em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Teste o ambiente padrão do Ruby sem custo