GAE: [Parte 4] Como funciona o scaling

A configuração de scaling do GAE é feita através do arquivo de configuração da aplicação ".yaml "

Normalmente uma aplicação irá ter um arquivo .yaml, porém esta configuração pode ser feita por "módulo" da aplicação, como na figura abaixo:
Hierarchy graph of yaml modules
 
Cada arquivo .yaml define:
 
  • version: versão da aplicação
  • tipo de scaling : manual, basic ou automatic (default)
  • tipo de instância:
  • URL mapping: mapeamento de URLs para pontos específicos da aplicação (ex: static files)
Abaixo podemos ver um exemplo de configuração de cada tipo de scaling:

Manual Scaling

application: simple-sampleapplication: simple-sample
runtime: python27
api_version: 1
instance_class: B8
manual_scaling: instances: 5

  • instances: número de instância que serão criadas no start da aplicação.

Basic Scaling 

application: simple-sample
version: uno
runtime: python27
api_version: 1
instance_class: B8
basic_scaling:
  max_instances: 11
  idle_timeout: 10m
  • max_instances: (Obrigatório) número máximo de instâncias que serão criadas (útil para limitar o custo).
  • idle_timeout: (Opcional) este é o tempo que a instância ficará "idle" (desocupada). Se atingir este valor, a instância será desligada. O valor default é 5 minutos.

Automatic Scaling

application: simple-sample
version: uno
runtime: python27
api_version: 1
instance_class: F2
automatic_scaling:
min_idle_instances: 5
max_idle_instances: automatic # default value
min_pending_latency: 30ms # default value
max_pending_latency: automatic
max_concurrent_requests: 50
Os parâmetros abaixo refletem diretamente no custo. Eles são utilizados para determinar o número de instâncias livres e também o tempo necessário para subir uma nova instância:
 
  • min_idle_instances: número mínimo de instâncias "livres" (idle)
  • max_idle_instances: número máximo de instâncias "livres" (idle)
  • min_pending_latency/max_pending_latency: determinam o tempo mínimo e máximo que um request deve esperar, até que ele seja atendido por uma instância. Se não houve instância disponível, ela será criada.
  • max_concurrent_requests: (opcional) número máximo de requests que uma instância pode receber, antes de subir uma nova (Default: 8, Máximo: 80).
 
 
Link para as demais partes do post:

Comentários

Postagens mais visitadas deste blog

Entendendo o conceito de Error Budget: como o Google lida com o downtime

Analista de sistemas – z/VM

Sqlite e o Windows Phone 8.1 Silverlight