Como as instâncias são gerenciadas

Instâncias são as unidades computacionais que o App Engine usa para fazer o dimensionamento automático do aplicativo. A qualquer momento, o aplicativo pode estar em execução em uma ou várias instâncias, com solicitações espalhadas por todas elas.

Suas instâncias com escalonamento manual e básico são executadas indefinidamente, mas não há garantia de tempo de atividade. Falhas de hardware ou software que causem encerramento antecipado ou reinicializações frequentes podem ocorrer sem qualquer aviso e levar muito tempo para serem solucionadas.

Todas as instâncias flexíveis são reiniciadas semanalmente. Durante essas reinicializações, atualizações críticas e compatíveis com versões anteriores são automaticamente implementadas no sistema operacional. A imagem do aplicativo permanecerá a mesma durante as reinicializações.

Verificação de integridade

O App Engine envia solicitações periódicas de verificação de integridade para confirmar que uma instância foi implantada com êxito, além de verificar se uma instância em execução mantém um status de integridade. Todas as verificações de integridade precisam ser respondidas dentro de um intervalo de tempo especificado. Uma instância apresenta problemas na integridade quando não responde a um número especificado de solicitações de verificação de integridade consecutivas. Uma instância com problemas na integridade não receberá qualquer solicitação de clientes, mas as verificações de integridade ainda assim serão enviadas. Se uma instância com problemas de integridade continuar falhando ao responder a um número predeterminado de verificações de integridade consecutivas, ela será reiniciada.

Há dois tipos de verificações de integridade usadas: atividade e prontidão. As verificações de atividade confirmam que uma instância e o contêiner estão em execução, reiniciando todas as instâncias com falha na verificação. As verificações de prontidão confirmam que uma instância está pronta para aceitar solicitações de entrada, não encaminhando solicitações para nenhuma instância que falhou na verificação. Ambos são personalizáveis por meio do arquivo app.yaml do app.

Um aplicativo íntegro precisa responder a uma verificação de integridade com um código de status HTTP de 200.

Como monitorar o uso de recursos

A página "Instâncias" do Console do Cloud fornece visibilidade sobre o desempenho das instâncias. Veja o uso de memória e CPU de cada instância, bem como o tempo de atividade, o número de solicitações e outras estatísticas. Também é possível iniciar manualmente o processo de encerramento de qualquer instância.

Local da instância

As instâncias são localizadas automaticamente por região geográfica, de acordo com as configurações do projeto.

Escalonamento de instâncias

Durante a execução de um aplicativo, as solicitações recebidas são encaminhadas para uma instância atual ou nova do serviço/versão apropriada. Cada versão ativa pode ter pelo menos uma instância em execução e o tipo de escalonamento de um serviço ou versão controla como as instâncias são criadas. As configurações de escalonamento são configuradas no arquivo app.yaml. Há dois tipos de escalonamento:

Escalonamento automático
O escalonamento automático cria instâncias baseadas na taxa de solicitação, nas latências de resposta e em outras métricas do aplicativo. É possível especificar limites para cada uma dessas métricas, bem como um número mínimo de instâncias para continuar em execução em todos os momentos.
Escalonamento manual
O escalonamento manual especifica o número de instâncias que são executadas continuamente, independentemente do nível de carga. Isso permite a realização de tarefas como inicializações complexas e a execução de aplicativos que dependem do estado da memória ao longo do tempo.