Como escalonar no Compute Engine com o .NET

Neste tutorial, mostramos como adicionar recursos de dimensionamento ao aplicativo Bookshelf em .NET.

Esta página é parte de um tutorial com várias páginas. Para ver do início e ler as instruções de configuração, consulte o artigo App Bookshelf em .NET.

As outras seções deste tutorial mostraram como colocar seu aplicativo em funcionamento no Google Cloud Platform (GCP) usando uma única instância de VM do Compute Engine. Essa abordagem funciona bem para aplicativos pequenos. No entanto, o que acontece quando o aplicativo recebe mil consultas por segundo ao meio-dia, mas apenas dez consultas por segundo à meia-noite? Em cenários como esse, o Compute Engine usa grupos de instâncias para dimensionar automaticamente o número de instâncias em execução no seu aplicativo.

Escalonamento horizontal com várias instâncias

O diagrama a seguir ilustra como uma implantação de várias instâncias é compilada em grupos de instâncias no Compute Engine.

Implantação de várias instâncias com grupos de instâncias

Nesta seção, você usa grupos de instância para implantar o aplicativo Bookshelf no GCP em uma configuração com balanceamento de carga e dimensionamento automático. Esta etapa do tutorial é opcional e destina-se a explorar as opções de implantação disponíveis com o GCP. Ela demonstra as seguintes ações:

  • Dimensionamento horizontal do aplicativo usando grupos de instâncias do Compute Engine.
  • Disponibilização de tráfego usando o balanceador de carga HTTP(S) do Compute Engine.
  • Resposta a mudanças no tráfego usando o dimensionador automático do Compute Engine.

Visão geral da criação de um grupo de instâncias

Um grupo de instâncias é um conjunto de instâncias homogêneas com base no mesmo modelo de instância. Um modelo de instância define a configuração da sua instância, incluindo a imagem de origem, o tamanho do disco, os escopos e os metadados, como scripts de inicialização.

Criação de grupo de instâncias com base no modelo de instância

Antes de criar o grupo de instâncias, crie um modelo. O grupo de instâncias usa o modelo para criar novas instâncias.

Como criar o modelo do grupo de instâncias

Crie uma imagem de VM baseada na instância do Compute Engine em execução. Como não é possível criar uma imagem de VM a partir de um disco vinculado a uma instância, inicie o processo de criação de imagem gerando um instantâneo da instância atual em execução no aplicativo ASP.NET. Use esse instantâneo para criar uma nova instância especificamente para gerar uma imagem de VM.

  1. No Console do Google Cloud Platform, no projeto em que você implantou o aplicativo ASP.NET, acesse a página Instantâneos.

    ACESSE "INSTANTÂNEOS"

  2. Clique em Criar instantâneo.

  3. Digite um Nome para o instantâneo.

  4. Na lista suspensa Disco de origem, selecione o disco permanente vinculado à sua instância de VM do ASP.NET.

  5. Clique em Criar.

    Formulário para criação de instantâneos

Como criar uma instância e um disco permanente para gerar uma imagem de VM

  1. No Console do GCP, no projeto em que você criou o instantâneo, vá para a página Instâncias.

    ACESSE "INSTÂNCIAS"

  2. Clique em Criar instância.

  3. Digite um Nome para a instância de VM.

  4. Na seção Disco de inicialização, conclua as seguintes etapas:

    1. Clique em Alterar.
    2. Na guia Instantâneo, clique no nome do instantâneo criado e em Selecionar.
  5. Clique em Definir acesso para cada API.

  6. Na lista suspensa Cloud Datastore, selecione Ativado.

  7. Na lista suspensa Armazenamento, selecione Leitura/gravação.

  8. Na lista suspensa Informações do usuário, selecione Ativado.

  9. Na seção Firewall, marque as caixas de seleção Permitir tráfego HTTP e Permitir tráfego HTTPS.

  10. Clique em Gerenciamento, segurança, discos, rede, locatário individual e, em seguida, na guia Discos.

  11. Na configuração de Regra de exclusão, desmarque a caixa de seleção Excluir disco de inicialização quando a instância for removida.

  12. Para criar a instância, clique em Criar na parte inferior da página.

    Formulário para criação de instâncias de VM

Como preparar o disco permanente para a criação da imagem de VM

Para criar uma imagem de VM a partir da instância da VM e do disco permanente criado, é necessário preparar o disco permanente da instância primeiro.

  1. No Console do GCP, no projeto em que você criou a instância da VM, acesse a página Instâncias.

    ACESSE "INSTÂNCIAS"

  2. Clique no nome da instância da VM recém-criada.

  3. Na janela Detalhes da instância, clique em Definir senha do Windows.

  4. Para criar a conta de usuário em sua instância, na caixa de diálogo Definir nova senha do Windows, adicione seu nome de usuário e clique em Definir.

  5. Anote a senha fornecida e feche a caixa de diálogo.

  6. Para iniciar uma conexão de área de trabalho remota com a instância de VM recém-criada, clique em RDP ao lado da instância de VM que você criou.

  7. Faça login com o nome de usuário e a senha fornecida.

  8. Quando estiver conectado à instância usando o RDP, clique com o botão direito do mouse no ícone do PowerShell e selecione Executar como administrador. Se essa opção não estiver visível, aguarde mais um minuto para permitir que o processo de login da VM seja totalmente concluído e tente outra vez.

    Abrir o PowerShell como administrador

  9. A caixa de diálogo Controle de conta de usuário é exibida e pergunta se você permite que o PowerShell faça alterações no computador. Clique em Sim.

  10. Para preparar o disco permanente da VM para geração de imagens, execute o comando a seguir na janela do PowerShell. O comando fecha a conexão de área de trabalho remota e encerra a instância.

    GCESysprep
    
  11. Feche a janela de RDP e retorne à página Instâncias.

    ACESSE "INSTÂNCIAS"

  12. Para excluir a instância, marque o nome da caixa de seleção da instância de encerramento e clique em Excluir. Com essa operação, apenas o disco permanente desvinculado fica pronto para a criação de imagens.

Como criar uma imagem de VM baseada em um disco permanente desvinculado

  1. No Console do GCP, acesse a página "Imagens".

    ACESSE "IMAGENS"

  2. Clique em Criar imagem.

  3. Digite um Nome para a imagem de VM.

  4. Na lista suspensa Disco de origem, selecione o disco permanente desvinculado que você criou.

  5. Clique em Criar.

    Formulário para criação de imagens de VM

Como criar um modelo de grupo de instâncias com uma imagem de VM

  1. No Console do GCP, acesse a página "Modelos de instância".

    ACESSE "MODELOS DE INSTÂNCIA"

  2. Clique em Criar modelo de instância.

  3. Digite um Nome para o modelo de instância.

  4. Na seção Disco de inicialização, conclua as seguintes etapas:

    1. Clique em Alterar.
    2. Na guia Sua imagem, clique no nome da imagem que você criou e, em seguida, clique em Selecionar.
  5. Clique em Definir acesso para cada API.

  6. Na lista suspensa Cloud Datastore, selecione Ativado.

  7. Na lista suspensa Armazenamento, selecione Leitura/gravação.

  8. Na lista suspensa Informações do usuário, selecione Ativado.

  9. Na seção Firewall, marque as caixas de seleção Permitir tráfego HTTP e Permitir tráfego HTTPS.

  10. Para criar o modelo de instância, clique em Criar.

    Formulário para criação de modelos de instância

Como criar um grupo de instâncias com um modelo de grupo de instâncias

  1. No Console do GCP, acesse a página Grupos de instâncias.

    ACESSE "GRUPOS DE INSTÂNCIAS"

  2. Clique em Criar grupo de instâncias.

  3. Digite um Nome para o grupo de instâncias.

  4. Na seção Método de criação, clique em Usar modelos de instância. Em seguida, na lista suspensa de modelos de instância, selecione o nome do modelo de instância criado.

  5. Na lista suspensa Escalonamento automático, selecione Ativado.

  6. Na lista suspensa Escalonamento automático baseado em, selecione Uso de balanceamento de carga HTTP.

  7. No campo Período de resfriamento, digite 410 segundos.

    Esta configuração informa ao dimensionador automático quantos segundos ele precisa aguardar, após o início de uma nova instância, para começar a coletar informações de uso. Esse número precisa contemplar pelo menos o tempo necessário para inicializar uma nova instância. Para seu aplicativo, o período de espera pode ser maior ou menor dependendo do tipo de máquina e do aplicativo que você está usando. Tente criar uma nova instância baseada na sua imagem personalizada para determinar o tempo ideal necessário para o período de espera.

  8. Na lista suspensa Verificação de integridade, selecione Criar verificação de integridade e conclua estas etapas:

    1. Digite um Nome para a verificação de integridade.
    2. No campo Caminho da solicitação, digite /Books, que é o caminho padrão do aplicativo de amostra do Bookshelf em ASP.NET.
    3. Para controlar com que frequência a verificação de integridade é executada, digite 30 segundos no campo Intervalo de verificação.
    4. Para especificar o tempo a ser aguardado antes que uma verificação de integridade seja considerada malsucedida, digite 10 segundos no campo Tempo limite.
    5. Para criar a verificação de integridade, clique em Salvar.
  9. No campo Atraso inicial, digite 400 segundos.

    Esse valor especifica o período de inicialização da instância. Isso inclui o intervalo entre o momento em que a instância inicia pela primeira vez até o instante em que ela inicializa o sistema operacional e outros softwares necessários para começar a disponibilizar o app. Tente criar uma nova instância baseada na sua imagem personalizada para determinar o tempo ideal necessário para o período de atraso inicial.

  10. Mantenha os valores padrão em todos os outros campos. Para criar o novo grupo de instâncias, clique em Salvar.

  11. Uma caixa de diálogo exibe a mensagem "A configuração do escalonamento automático não está concluída" porque você ainda precisa criar e configurar um balanceador de carga. Essas etapas serão concluídas na próxima seção. Portanto, clique em OK para continuar com a criação do grupo de instâncias.

    Formulário para criação de grupos de instâncias

Como criar um balanceador de carga HTTP(S) para um grupo de instâncias

Em seguida, crie e configure um balanceador de carga para aumentar ou diminuir o número de instâncias em execução no grupo de instâncias com base no número de solicitações HTTP enviadas ao aplicativo.

  1. No Console do GCP, acesse a página "Balanceamento de carga".

    ACESSE "BALANCEAMENTO DE CARGA"

  2. Clique em Criar balanceador de carga.

  3. Em Balanceamento de carga HTTP(S), clique em Iniciar configuração.

  4. Digite um Nome para o balanceador de carga.

  5. Clique em Configuração de back-end e conclua estas etapas:

    1. Na lista suspensa Criar ou selecionar um serviço de back-end, selecione Criar um serviço de back-end.
    2. Digite um Nome para o serviço de back-end.
    3. Na lista suspensa Grupo de instâncias, selecione o grupo de instâncias que você criou.
    4. Na lista suspensa do Modo de balanceamento, selecione Taxa.
    5. Na lista suspensa RPS máximo, selecione 100 solicitações por segundo por instância.
    6. Na lista suspensa Verificação de integridade, selecione a mesma verificação criada com o grupo de instâncias.
    7. Na lista suspensa Afinidade da sessão, selecione Cookie gerado.

      Essa configuração gera um cookie para cada visitante do aplicativo. Em seguida, o balanceador de carga envia todas as solicitações com esse cookie para a mesma instância no grupo de instâncias. Este recurso está atualmente em versão Beta. Consulte a documentação sobre afinidade de sessão para ver mais detalhes.

  6. Clique em Regras de host e caminho. A configuração padrão é aceitar todas as solicitações feitas ao balanceador de carga e enviá-las ao back-end que você criou. Não é necessário fazer qualquer outra alteração nessa configuração.

  7. Clique em Configuração de front-end. Para executar o aplicativo de amostra Bookshelf, nenhuma outra alteração é necessária. Se preferir reservar um endereço IP estático, na lista suspensa IP, selecione Criar endereço IP para criar um endereço IP externo para que seu balanceador de carga não seja alterado.

  8. Para analisar a configuração do balanceamento de carga, clique em Analisar e finalizar.

  9. Para criar o balanceador de carga HTTP(S), clique em Criar.

    Detalhes da criação do Balanceador de carga

Como visualizar seu aplicativo

Depois de criado, o balanceador de carga é listado no Console do GCP.

  1. Acesse a página Balanceamento de carga.

    ACESSE "BALANCEAMENTO DE CARGA"

  2. Para visualizar os detalhes da configuração, clique no nome do balanceador de carga.

  3. Nos detalhes de Front-end na coluna chamada IP: Porta, copie o endereço IP listado.

  4. Em um navegador, vá até o endereço IP que você copiou.

Agora seu aplicativo está sendo executado no GCP com balanceamento de carga e dimensionamento automático.

Como fazer a limpeza

Para evitar que os recursos usados nesse tutorial sejam cobrados na conta do Google Cloud Platform, é possível fazer o seguinte:

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No Console do GCP, acesse a página "Projetos".

    Acessar a página Projetos

  2. Na lista de projetos, selecione um e clique em Excluir projeto.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

Excluir as instâncias do Compute Engine

Para excluir uma instância do Compute Engine:

  1. No Console do GCP, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Clique na caixa de seleção ao lado da da instância que deseja excluir.
  3. Clique no botão Excluir na parte superior da página para excluir a instância.

Excluir a instância do Cloud SQL

Para excluir uma instância do Cloud SQL:

  1. No Console do GCP, acesse a página Instâncias de SQL.

    Acessar a página "Instâncias de SQL"

  2. Clique no nome a instância de SQL que você quer excluir.
  3. Para excluir a instância, clique em Excluir excluir no topo da página.

Excluir o intervalo do Google Cloud Storage

Para excluir um intervalo do Google Cloud Storage:

  1. No Console do GCP, acesse o navegador do Cloud Storage.

    Acessar o navegador do Cloud Storage

  2. Marque a caixa de seleção ao lado do intervalo que você quer excluir.
  3. Para excluir o intervalo, clique no botão Excluir no topo da página.

Excluir a instância do SQL Server

Para excluir uma instância do SQL Server, siga estas etapas:

  1. No Console do GCP, acesse a página "Instâncias de VMs".

    Acessar a página Instâncias da VM

  2. Marque a caixa de seleção ao lado do nome da instância do SQL Server que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Excluir os grupos de instâncias

  1. No Console do GCP, acesse a página "Grupos de instâncias".

    Acessar a página "Grupos de instâncias"

  2. Clique na caixa de seleção ao lado do do grupo de instâncias que deseja excluir..
  3. Clique no botão Excluir na parte superior da página para excluir o grupo de instâncias.

Excluir o balanceador de carga

Para excluir um balanceador de carga, siga estas etapas:

  1. No Console do GCP, acesse a página "Balanceamento de carga".

    Acesse a página "Balanceamento de carga"

  2. Clique no botão Excluir ao lado do balanceador de carga que você quer excluir.

  3. Na caixa de diálogo Excluir balanceador de carga, selecione o serviço de back-end associado, listado na seção "Serviços de back-end", para excluí-lo também.

  4. Clique em Excluir balanceador de carga e recursos selecionados.

Excluir os modelos de instância

Para excluir um modelo de instância, siga estas etapas:

  1. No Console do GCP, acesse a página "Modelos de instância".

    Acessar a página "Modelos de instância"

  2. Marque a caixa de seleção ao lado do nome do modelo de instância que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Excluir as imagens

Para excluir uma imagem, siga estas etapas:

  1. No Console do GCP, acesse a página "Imagens".

    Acessar a página Imagens

  2. Marque a caixa de seleção ao lado do nome da imagem que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Excluir os discos permanentes

  1. No console do GCP, acesse a página Discos.

    Acessar a página "Discos"

  2. Clique na caixa de seleção para o disco que você quer excluir.
  3. Clique em Excluir para excluir o disco.

Excluir os instantâneos

Para excluir um instantâneo, siga estas etapas:

  1. No Console do GCP, acesse a página "Instantâneos".

    Acessar a página "Instantâneos"

  2. Marque a caixa de seleção ao lado do nome do instantâneo que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Próximos artigos

Teste outros recursos do Google Cloud Platform. Veja nossos tutoriais.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…