Fundamentos do Runtime Configurator

Neste documento, você verá uma visão geral do recurso Runtime Configurator e os principais conceitos relacionados a ele. Para saber como criar um recurso RuntimeConfig, leia Criação e exclusão de recursos RuntimeConfig.

O que é o Runtime Configurator?

O recurso Runtime Configurator permite definir e armazenar dados como uma hierarquia de pares de chave-valor no Google Cloud Platform. Você pode usar esses pares para:

  • configurar serviços dinamicamente;
  • comunicar estados de serviço;
  • enviar notificação de alterações de dados;
  • compartilhar informações entre várias camadas de serviços.

Por exemplo, imagine um cenário em que você tem um cluster de nodes que executam um procedimento de inicialização. Durante a inicialização, é possível configurar os nodes para relatar o status ao Runtime Configurator e, em seguida, definir outro aplicativo para consultar o Runtime Configurator e executar tarefas específicas com base no status dos nodes.

O Runtime Configurator também oferece os serviços Inspetor e Waiter. O inspetor observa determinado par de chaves e é retornado quando há alteração no valor desse par. O encarregado aguarda uma condição final específica e retorna uma resposta quando essa condição é atingida.

Use o Runtime Configurator por meio da ferramenta gcloud ou como uma API independente.

Conceitos

  • Recurso Config

    Esse recurso contém uma lista hierárquica de variáveis. Você pode criar configurações diferentes para diversas finalidades. Por exemplo, é possível separar configurações com base no ambiente (produção, desenvolvimento, teste), em diferentes camadas de aplicativos ou serviços (back end, front end) ou em entidades (uma configuração por usuário do aplicativo).

  • Variáveis

    Tratam-se de pares de chave-valor que pertencem a um recurso RuntimeConfig. As chaves de variável têm o seguinte formato:

    projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
    

    É possível definir, receber e observar valores de variáveis para transmitir informações aos aplicativos, sinalizar o estado concluído, enviar notificação de alterações de dados etc. As variáveis são hierárquicas, portanto a chave de variável pode ter diversos níveis. Por exemplo, as chaves de variável de amostra podem ser:

    webserver-1/users/name
    webserver-1/users/favorite_color
    
  • Inspetores

    Use o método watch() para observar uma variável e retornar quando a variável for alterada, o inspetor expirar ou o inspetor for excluído. Use a funcionalidade watch() para configurar dinamicamente seus aplicativos com base em alterações nos seus dados.

  • Encarregados

    Se você criar um recurso encarregado para observar determinado prefixo de caminho, esse recurso será retornado quando o número de variáveis no prefixo atingir um valor específico. Ele está relacionado a uma condição de cardinalidade.

    Por exemplo, se você definir uma condição para o caminho /foo e o número de caminhos for definido como 2, a seguinte configuração atenderá à condição:

    • /foo/variable1 = "value1"
    • /foo/variable2 = "value2"
    • /bar/variable3 = "value3" # Not /foo path

    Um waiter tem a condição tanto de falha quanto de sucesso que você pode definir.

    Depois que você cria um waiter, o serviço retorna um objeto de operação que você pesquisa para execução. A operação é concluída quando ocorre uma das seguintes situações:

    • A condição success é atendida.
    • A condição failure é atendida.
    • O encarregado esgotou o tempo limite especificado na solicitação inicial.

    O uso do waiter é ideal em cenários de inicialização, nos quais você pode precisar pausar uma implantação até que determinado número de serviços esteja em execução.

A seguir