IBM Cloud Docs
Configurando o ajuste de escala do aplicativo

Configurando o ajuste de escala do aplicativo

Com o IBM Cloud® Code Engine, você não precisa pensar em dimensionar seu aplicativo porque o número de instâncias em execução de um aplicativo é automaticamente dimensionado para cima ou para baixo (até zero) com base nas cargas de trabalho recebidas. Com o ajuste de escala automático, você não paga por recursos que não são usados.

O Code Engine monitora o número de solicitações no sistema e aumenta e diminui a capacidade das instâncias do aplicativo para atender à carga de solicitações recebidas, incluindo quaisquer conexões HTTP com seu aplicativo. Essas conexões HTTP podem ser solicitações que vêm de fora do seu projeto, de outras cargas de trabalho que estão em execução em seu projeto, ou de produtores de eventos aos quais você pode estar inscrito, independentemente de onde esses produtores estão localizados. O Code Engine replica automaticamente as instâncias de aplicativos e configura a infraestrutura de rede para balancear a carga das solicitações em todas as instâncias.

Como o ajuste de escala funciona

O Code Engine monitora o número de solicitações no sistema e ajusta a escala das instâncias do aplicativo, dentro das restrições das configurações de simultaneidade do aplicativo.

Para observar o ajuste de escala do aplicativo no console do Code Engine, navegue até a sua página de aplicativo específica. Enquanto o aplicativo está em execução, o número de instâncias em execução é 1 ou maior com base no número máximo de instâncias que você especificou. Quando o aplicativo manipula menos solicitações do que sua simultaneidade de destino configurada, o aplicativo escala o número de instâncias em execução para o número mínimo configurado de instâncias. Se o número mínimo de instâncias for definido como 0 (valor padrão), o aplicativo será reduzido a zero e o número de instâncias do aplicativo refletirá 0 instâncias. Quando o aplicativo é reduzido e uma solicitação é roteada para o aplicativo, o Code Engine aumenta a capacidade do aplicativo e roteia a solicitação para a instância do aplicativo recém-criada.

Para que os aplicativos possam diminuir a capacidade de forma limpa, o código do aplicativo deve manipular um sinal SIGTERM. Quando o Code Engine é reduzido automaticamente, um sinal SIGTERM é enviado para seu aplicativo. Se seu aplicativo não manipular o sinal SIGTERM, suas instâncias do app permanecerem no status Terminating pelo tempo configurado pelo valor de tempo limite da solicitação (o valor padrão é 300 segundos). Após a duração do tempo limite da solicitação, o Code Engine envia um sinal SIGKILL para forçar a parada das instâncias do app no status Terminating

Limites de ajuste de escala

É possível configurar limites de ajuste de escala configurando um intervalo de valores para o número mínimo e máximo de instâncias no qual o Code Engine escala automaticamente o número de instâncias em execução de seu aplicativo. Configure esse intervalo quando você criar ou atualizar aplicativos

  • Número mínimo de instâncias-o número mínimo de instâncias do app que estão sempre em execução, mesmo se nenhuma solicitação for processadas Quando configurado como 0 (padrão), o Code Engine remove todas as instâncias quando nenhum tráfego está acessando o aplicativo. Para sempre manter uma instância em execução de seu aplicativo, configure esse valor maior que 0. Ao criar ou atualizar um aplicativo com Code Engine por meio do console, configure o número mínimo de valores de instâncias na seção Ajuste automático de escala da guia Recursos e ajuste de escala.. Com a CLI, especifique a opção --min-scale no app create e app update comandos.

  • Número máximo de instâncias-O número máximo de instâncias que podem estar em execução para o app O dimensionamento automático ocorre até esse limite. Se você definir esse valor como 0, o aplicativo será dimensionado conforme necessário, e o dimensionamento do aplicativo será limitado apenas pelas instâncias de acordo com a cota de recursos do projeto do seu aplicativo. Consulte Limites e cotas para o Code Engine. Ao criar ou atualizar um aplicativo com Code Engine no console, configure o número máximo de valores de instâncias na seção Ajuste automático de escala da guia Recursos e ajuste de escala. Com a CLI, especifique a opção --max-scale no app create e app update comandos. O valor padrão para essa opção é 10.

Ao conectar seus aplicativos aos produtores de eventos, lembre-se de contabilizar a frequência e o volume dos eventos desses produtores ao configurar seus limites de escala. Por exemplo, se você espera receber muitos eventos ao mesmo tempo e o processamento de cada evento pode levar vários minutos, talvez seja necessário um valor de escala máximo mais alto do que se cada evento puder ser processado rapidamente. Se você configurar o valor muito baixo, poderá experimentar atrasos no recebimento de eventos ou até mesmo perder eventos devido a tempos limites enquanto espera a liberação dos recursos de processamento.

Configurações de ajuste automático de escala para simultaneidade e sincronização

Use as seguintes definições de configuração para controlar o dimensionamento do aplicativo.

  • Concurrency (Concorrência)- Esse valor indica quantas solicitações cada instância do seu aplicativo pode processar ao mesmo tempo. Por exemplo, um valor de moeda de 100 significa que seu código pode lidar com 100 solicitações simultâneas ao mesmo tempo. Este valor é um "limite máximo", significando que o Code Engine não permite mais do que o número de solicitações (conforme especificado com a configuração de simultaneidade) para atingir qualquer instância de seu aplicativo. Portanto, se o seu código for de thread único e puder processar apenas uma solicitação por vez, considere definir a simultaneidade como 1. Quando o número especificado de solicitações é enviado a todas as instâncias em execução do seu aplicativo, o site Code Engine aumenta o número de instâncias em preparação para mais solicitações. Ao criar ou atualizar um aplicativo com Code Engine no console, configure o valor máximo de simultaneidade na seção Ajuste automático de escala da guia Recursos e ajuste de escala. Com a CLI, especifique a opção --concurrency nos comandos app create e app update.

  • Concorrência alvo - Esse valor funciona como um "limite flexível" ou número de solicitações por instância que você deseja em um sistema carregado. Por exemplo, se você especificar concurrency como 100 e target concurrency como 70, Code Engine tentará limitar o número de solicitações por instância a 70.Especificar essa opção não garante que as solicitações por instância não ultrapassem 70, pois é provável que isso aconteça durante um aumento no tráfego. No entanto, o buffer entre 70 e 100 permite que o sistema crie novas instâncias para reduzir a carga por instância para 70 (ou inferior). Se target concurrency não for especificado, o padrão será o valor de concurrency. Ao criar ou atualizar um aplicativo com Code Engine no console, defina o valor de simultaneidade de destino na seção Autoscaling da guia Resources & scaling. Com a CLI, especifique a opção --concurrency-target no app create e app update comandos.

  • Tempo limite da solicitação-A quantidade de tempo, em segundos que o aplicativo deve responder às solicitações, ou então elas falham. Ao criar ou atualizar um aplicativo com Code Engine por meio do console, configure o valor de tempo limite da solicitação na seção Autoscaling da guia Recursos e ajuste de escala. Com a CLI, especifique a opção --request-timeout no app create e app update comandos.

  • Atraso de redução de escala - A quantidade de tempo, em segundos, que deve passar com a simultaneidade reduzida antes que o aplicativo reduza a escala. Se você souber o padrão de solicitações recebidas para seu aplicativo, poderá optar por especificar um valor maior que o padrão de 0 para atrasar o ajuste de escala de seu aplicativo. Se você usar um valor alto para essa opção, o número médio de instâncias do aplicativo em execução simultaneamente poderá aumentar, o que incorre em custo adicional. Mesmo com uma configuração de atraso de redução de escala do 0, o sistema aguarda um curto período de tempo antes que o aplicativo reduza o número de instâncias para assegurar que uma queda na simultaneidade de solicitação seja estável o suficiente para garantir uma redução de capacidade. Ao criar ou atualizar um aplicativo com o Code Engine por meio do console, configure o valor de atraso de ajuste de escala na seção Ajuste de escala automático da guia Recursos e ajuste de escala Com a CLI, especifique a opção --scale-down-delay no app create e app update comandos.

Por exemplo, se o valor do número máximo de instâncias for configurado como 10 e a simultaneidade for configurado como 100, um aplicativo poderá processar 1000 solicitações simultâneas antes que possa ocorrer um possível enfileiramento de solicitações. Se você esperar mais de 1000 solicitações simultaneamente, poderá considerar o aumento do número máximo de valores de instâncias para seu app.

Para obter mais informações sobre o funcionamento do site Code Engine, consulte Ajuste do atraso de redução de escala do site IBM Cloud Code Engine para reduzir os tempos de resposta do aplicativo.

Se você configurar o número mínimo de instâncias igual ao número máximo de instâncias, o ajuste de escala não ocorrerá e os valores de atraso de moeda de destino e de redução de escala não se aplicarão. No entanto, o valor de simultaneidade ainda está em vigor.

Cenário de exemplo para ajuste automático de escala

Suponha que você tenha um aplicativo configurado com as configurações de ajuste automático de escala a seguir.

  • Número mínimo de instâncias = 4
  • Número máximo de instâncias = 20
  • Simultaneidade = 2

Com essas configurações, seu app pode processar 2 solicitações simultâneas ao mesmo tempo.. Quando não há tráfego, seu aplicativo é escalado automaticamente para 4 instâncias.. As 4 instâncias podem manipular apenas 4 * 2 (moeda) = 8 solicitações O aplicativo pode escalar até um máximo de 20 instâncias, de modo que as 20 instâncias possam manipular 20 * 2 (moeda) = 40 solicitações, assumindo configurações suficientes de CPU e memória para o aplicativo.

Suponha que seu aplicativo seja um aplicativo da web estático que requer 6 chamadas para seu aplicativo para carregar uma página de login. Suponha que 10 pessoas efetuem login na página de login do aplicativo ao mesmo tempo (10 * 6 = 60 chamadas). Como 60 chamadas são maiores que 40 solicitações que podem ser manipuladas por seu aplicativo, os usuários do aplicativo provavelmente observam lentidão conforme as chamadas são enfileiradas.

Após cerca de um minuto sem tráfego com relação ao seu app, o Code Engine começa a diminuir a capacidade automaticamente. Quando seu aplicativo é reduzido, algumas instâncias são configuradas no status Terminating. Code Engine envia um sinal SIGTERM para seu aplicativo e seu código deve manipular esse sinal e encerrar. Se seu aplicativo não manipular esse sinal, suas instâncias do app permanecerem no status Terminating pelo tempo configurado pelo valor de tempo limite da solicitação (o valor padrão é 300 segundos). Após a duração do tempo limite da solicitação, o Code Engine envia um sinal SIGKILL para forçar a parada das instâncias do app no status Terminating

Se você tiver 8 instâncias ativas e 12 instâncias permanecer no status Terminating por 300 segundos (5 minutos). Essas 12 instâncias não recebem nenhuma solicitação de solicitação. Se mais de 8 * 2 (moeda) = 16 solicitações chegarem, o Code Engine escalará novas instâncias.

Neste exemplo, o valor de simultaneidade 2 é baixo para esse conteúdo estático. Deve-se determinar os valores de ajuste automático de escala a serem configurados para seu app, o que depende do que a implementação de seu app pode manipular com seus recursos de memória e CPU designados.

Otimizar a latência e o rendimento

Para otimizar a latência e o rendimento do aplicativo, entenda os prós e os contras de alguns modelos comuns e as melhores práticas para configurar a simultaneidade do contêiner.

Use a configuração de simultaneidade para especificar o número máximo de solicitações que podem ser processadas simultaneamente por instância quando você cria ou atualiza um aplicativo. Na guia do console do Code Engine, configure o valor de simultaneidade na seção Tempo de execução. Com a CLI, use a opção --concurrency (alias --cn) com o comando app create ou app update.

Exemplos de simultaneidade em aplicativos Code Engine
Modelo Prós Contras
Simultaneidade única, --cn=1 Escolha a configuração de simultaneidade única quando o aplicativo entregar uma carga de trabalho com uso intensivo de memória ou de CPU porque apenas uma solicitação entra na instância do aplicativo por vez e, portanto, obtém a quantia total de CPU e de memória configurada para ela. Os aplicativos que usam o modelo de simultaneidade única são ampliados rapidamente. A expansão pode introduzir latência adicional e rendimento inferior porque é mais caro criar uma nova instância do aplicativo do que reutilizar uma existente. Não escolha esse modelo se as solicitações puderem ser processadas simultaneamente e a latência for um aspecto crítico do aplicativo.
Alta simultaneidade, --cn=100 (padrão) ou superior Escolha essa configuração se seu aplicativo entregar um alto volume de cargas de trabalho de solicitação de HTTP ou de resposta que não façam uso intensivo de CPU ou de memória e que possam aguardar recursos. Você pode escolher essa configuração de simultaneidade para um back-end de API que lê e grava dados em operações de criação, recuperação, atualização e exclusão em um banco de dados remoto. Enquanto algumas solicitações aguardam E/S, outras solicitações podem ser processadas sem impactar a latência geral e o rendimento. Essa configuração não é ideal quando solicitações simultâneas competem por CPU, memória ou E/S porque a competição por recursos pode atrasar a execução e impactar negativamente a latência e o rendimento.
Simultaneidade ideal, --cn=N Escolha a configuração de simultaneidade ideal se você souber a quantidade de recursos que são necessários para uma única solicitação a fim de atender o tempo de resposta que você deseja para o seu aplicativo. Você pode escolher essa configuração se o seu aplicativo for um aplicativo de tradução de idioma natural, em que o modelo de aprendizado de máquina para a conversão de idioma é 32 GB, e um único cálculo de tradução precisa de cerca de 0.7 vCPU por solicitação. É possível escolher uma configuração de 9 vCPUs e 32 GB de memória por instância. A simultaneidade de contêiner ideal é de cerca de 13 (9 vCPU/0.7 vCPU). Não escolha a configuração de simultaneidade ideal se você não souber os requisitos de recursos para o seu aplicativo. Configurar a simultaneidade de contêiner errada pode causar um ajuste de escala muito agressivo ou muito lento, o que pode impactar a latência, a taxa de erros e os custos de seu aplicativo. Para obter mais informações, consulte Determinar simultaneidade para o seu contêiner de aplicativo.
Simultaneidade infinita, --cn=0 (desativado) Desativado A configuração de simultaneidade infinita não é suportada no Code Engine. A configuração de simultaneidade infinita encaminha o maior número possível de solicitações para uma única instância de aplicativo, o que pode atrasar o ajuste de escala de instâncias de aplicativos adicionais.

Determinando a simultaneidade do seu contêiner de aplicativo

O valor de simultaneidade de contêiner ideal é determinado pelo número máximo de solicitações simultâneas que o aplicativo pode manipular com uma latência de solicitação aceitável.

A simultaneidade de contêiner tem um impacto direto na taxa de sucesso, na latência e no rendimento do aplicativo. Quando o valor de simultaneidade do contêiner é muito alto para o aplicativo suportar, a latência e a taxa de transferência sofrem um impacto negativo, e você pode observar respostas de erro em 502 e 503.

Quando o valor de simultaneidade do contêiner é muito baixo para o aplicativo, o sistema ajusta a escala do aplicativo mais rapidamente e espalha a solicitação em muitas instâncias do aplicativo, introduzindo custos adicionais e latência. Durante um burst de carga, um valor de simultaneidade baixo também pode levar a respostas temporárias de 502 quando os buffers internos do sistema são executados.

Para determinar a configuração de simultaneidade de contêiner para o seu aplicativo, examine solicitações e latência.

  1. Crie um aplicativo e configure sua simultaneidade como 1000 (max) e ambos, min-scale e max-scale como 1.

    ibmcloud ce application create --name APPNAME --image APPIMAGE --min-scale=1 --max-scale=1 --concurrency=1000
    
  2. Comece pelo envio de uma alta taxa de solicitações. Se ocorrerem erros 502, diminua a taxa até que o resultado mostre uma taxa de 100% de sucesso.

  3. Encontre a latência de solicitação da saída da Etapa 2. Se a latência de solicitação não for aceitável, diminua ainda mais a taxa de solicitação até que a latência da solicitação pareça aceitável. Observe que a duração da solicitação também é importante, pois há diferença quando o cálculo da solicitação leva 2 segundos ou 100 milissegundos.

    Sua taxa de solicitação e sua latência aceitáveis variam de acordo com as características de seu aplicativo e com sua configuração de ajuste de escala. Por exemplo, se o cálculo dentro do seu aplicativo demorar cerca de 100 ms e sua configuração de simultaneidade for de 10, uma instância de aplicativo será capaz de processar cerca de 100 solicitações por segundo com uma latência de cerca de 100 ms (ignorando a latência de rede).

  4. Para calcular o valor de simultaneidade de contêiner para o seu aplicativo, pegue a taxa da Etapa 2 (em req/s) e divida pela latência da Etapa 3 (em segundos): CC = RATE/LATENCY. Por exemplo, se a taxa for 80 solicitações por segundo e a latência for 2 segundos, a simultaneidade resultante será simultaneidade = 80 req/s / 2 s = 40.

  5. Atualize o aplicativo para configurar a simultaneidade de contêiner para o valor que você localizou na etapa anterior e reexecute a carga de trabalho para verificar se a taxa de sucesso e a latência são aceitáveis.

  6. Experimente com o aplicativo aumentando o valor de simultaneidade do contêiner e observando a taxa de sucesso e a latência.

  7. Atualize o seu aplicativo com o valor de simultaneidade de contêiner ideal e remova os limites min-Scale e max-scale para permitir que o aplicativo escale automaticamente.

Observando como seu app é escalado com a CLI

É possível observar o número de instâncias em execução de seu app com a CLI.

  1. Crie um aplicativo com o comando app create.

    ibmcloud ce application create --name myapp --image icr.io/codeengine/helloworld
    
  2. Chame o aplicativo. É possível obter a URL de seu app por meio da saída do comando app create ou executando ibmcloud ce app get --name myapp --output url.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  3. Execute o comando application get para exibir o status de seu aplicativo. Verifique o valor de Running instances. Neste exemplo, o app tem 1 instância em execução. Por exemplo,

    ibmcloud ce application get --name myapp
    

    Saída de exemplo

    [...]
    OK
    
    Name:          myapp
    [...]
    
    URL:           https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Status Summary:  Application deployed successfully
    
    Environment Variables:    
        Type     Name             Value  
        Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
        Literal  CE_APP           myapp  
        Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
        Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
        Literal  CE_REGION        us-south  
        Literal  CE_SUBDOMAIN     abcdabcdab
    Image:                icr.io/codeengine/helloworld
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  400M
        Memory:             4G
    
    Revisions:
    myapp-ds8fn-1:
        Age:                6m25s
        Traffic:            100%
        Image:              icr.io/codeengine/helloworld (pinned to fe0446)
        Running Instances:  1
    
    Runtime:
        Concurrency:    100
        Maximum Scale:  10
        Minimum Scale:  0
        Timeout:        300
    
    Conditions:
        Type                 OK    Age    Reason
        ConfigurationsReady  true  6m10s
        Ready                true  5m56s
        RoutesReady          true  5m56s
    
    Events:
        Type    Reason   Age    Source              Messages
        Normal  Created  6m28s  service-controller  Created Configuration "myapp"
        Normal  Created  6m28s  service-controller  Created Route "myapp"
    
    Instances:
        Name                                       Revision       Running  Status   Restarts  Age
        myapp-ds8fn-1-deployment-79bdd76749-khtmw  myapp-ds8fn-1  2/2      Running  0         32s
    

    Espere alguns minutos que podem ser necessários para seu app escalar para zero.

  4. Execute o comando application get novamente e observe que o valor para Running instances foi escalado para zero. Quando o aplicativo manipula menos solicitações do que sua simultaneidade de destino configurada, o aplicativo escala o número de instâncias em execução para o número mínimo configurado de instâncias. Neste cenário, o número de instâncias em execução é escalado automaticamente para zero.. Quando a opção --min-scale é configurada como 0 (valor padrão), o número de instâncias em execução é escalado automaticamente para zero..

    Espere alguns minutos que podem ser necessários para seu app escalar para zero.

    ibmcloud ce application get -n myapp
    

    Saída de exemplo

    OK
    
    Name:          myapp
    [...]
    
    URL:           https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Image:                icr.io/codeengine/helloworld
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  400M
        Memory:             4G
    
    Revisions:
    myapp-ds8fn-1:
        Age:                12m
        Traffic:            100%
        Image:              icr.io/codeengine/helloworld (pinned to 548d5c)
        Running Instances:  0
    
    Runtime:
        Concurrency:         100
        Maximum Scale:       10
        Minimum Scale:       0
        Timeout:             300
    
    Conditions:
        Type                 OK    Age    Reason
        ConfigurationsReady  true  3m7s
        Ready                true  2m54s
        RoutesReady          true  2m54s
    
    Events:
        Type    Reason   Age    Source              Messages
        Normal  Created  3m21s  service-controller  Created Configuration "myapp"
        Normal  Created  3m20s  service-controller  Created Route "myapp"
    
  5. Chame o aplicativo novamente para ajustar a escala de zero.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  6. Execute o comando application get novamente e observe que o valor para Running instances foi aumentado de zero. Por exemplo,

    ibmcloud ce application get -n myapp
    

    Saída de exemplo

    OK
    
    Name:          myapp
    [...]
    
    URL:           https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Status Summary:     Application deployed successfully  
    
    Environment Variables:    
        Type     Name             Value  
        Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
        Literal  CE_APP           myapp  
        Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
        Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
        Literal  CE_REGION        us-south  
        Literal  CE_SUBDOMAIN     abcdabcdab  
    Image:                  icr.io/codeengine/helloworld  
    Resource Allocation:      
    CPU:                1  
    Ephemeral Storage:  400M  
    Memory:             4G  
    
    Revisions:     
    myapp-00001:    
        Age:                42s  
        Latest:             true  
        Traffic:            100%  
        Image:              icr.io/codeengine/helloworld (pinned to 1cee99)  
        Running Instances:  1  
    
    Runtime:       
    Concurrency:       100  
    Maximum Scale:     10  
    Minimum Scale:     0  
    Scale Down Delay:  0  
    Timeout:           300  
    
    Conditions:    
    Type                 OK    Age  Reason  
    ConfigurationsReady  true  25s    
    Ready                true  12s    
    RoutesReady          true  12s    
    
    Events:        
    Type    Reason   Age  Source              Messages  
    Normal  Created  44s  service-controller  Created Configuration "myapp"  
    Normal  Created  43s  service-controller  Created Route "myapp"  
    
    Instances:     
    Name                                    Revision     Running  Status   Restarts  Age  
    myapp-00001-deployment-d59b87654-xkqh7  myapp-00001  3/3      Running  0         43s
    

Configurando o número de instâncias mínimas e máximas para seu app

É possível mudar o número de instâncias em execução de seu app atualizando o valor mínimo e máximo para o número de instâncias do app..

O valor padrão para o número mínimo de instâncias para o seu aplicativo é 0 Se seu app não receber nenhum tráfego, ele será escalado para o 0 e nenhuma instância de seu app será executada. Nessa situação, seu aplicativo pode ser mais lento para responder quando ele receber o tráfego novamente, enquanto ele escala o backup. É possível alterar esse comportamento atualizando o aplicativo e definindo a escala mínima para 1 no console ou na CLI.

O valor padrão para o número máximo de instâncias para seu app é 0, que permite que seu app seja escalado conforme necessário. Para obter mais informações, consulte Limites de ajuste de escala.

Mudando o intervalo de ajuste automático de escala do console

Para mudar o intervalo no qual o Code Engine escala automaticamente o número de instâncias em execução para um app no console, siga estas etapas.

  1. Navegue para o seu app
  2. Selecione a guia Configuration (Configuração ).
  3. Selecione a guia Resources & scaling (Recursos e dimensionamento ).
  4. Configure o número para instâncias mínimas e máximas para seu app.
  5. (Opcional) Revise e defina as configurações de simultaneidade e de sincronização da solicitação para escalar automaticamente seu app.
  6. Clique em Deploy para salvar suas alterações e implementar a revisão do aplicativo.

Quando você atualiza seu aplicativo, seu app cria uma nova revisão e roteia o tráfego para essa instância.

Mudando o intervalo de ajuste automático de escala com a CLI

Para mudar o intervalo no qual o Code Engine escala automaticamente o número de instâncias em execução para um app com a CLI, execute o comando application update com as opções --min-scale e --max-scale configuradas para o número de instâncias que você deseja para o seu app. Opcionalmente, é possível configurar configurações de simultaneidade e de sincronização de solicitação para seu app. Essas opções incluem --concurrency, --concurrency-target, --request-timeout e --scale-down-delay. Para obter mais informações sobre a configuração desses valores de ajuste automático de escala, consulte Limites de ajuste de escala e Configurações de ajuste automático de escala para simultaneidade e sincronização.

Quando você atualiza seu aplicativo, seu app cria uma nova revisão e roteia o tráfego para essa instância.