Fundamentos do configurador do tempo de execução

Este documento oferece uma vista geral da funcionalidade Runtime Configurator e descreve os conceitos principais relacionados com o Runtime Configurator. Para saber como criar um recurso RuntimeConfig, leia o artigo Criar e eliminar recursos RuntimeConfig.

O que é o configurador de tempo de execução?

A funcionalidade Runtime Configurator permite-lhe definir e armazenar dados como uma hierarquia de pares de valores-chave na Google Cloud Platform. Pode usar estes pares de chave-valor como forma de:

  • Configure serviços dinamicamente
  • Comunique os estados do serviço
  • Envie uma notificação de alterações aos dados
  • Partilhe informações entre vários níveis de serviços

Por exemplo, imagine um cenário em que tem um cluster de nós que executam um procedimento de arranque. Durante o arranque, pode configurar os seus nós para comunicarem o respetivo estado ao Runtime Configurator e, em seguida, fazer com que outra aplicação consulte o Runtime Configurator e execute tarefas específicas com base no estado dos nós.

O Runtime Configurator também oferece um serviço de observação e um serviço de espera. O serviço Watcher monitoriza um par de chaves específico e devolve um resultado quando o valor do par de chaves muda, enquanto o serviço Waiter aguarda uma condição final específica e devolve uma resposta assim que essa condição final for cumprida.

Usa o Runtime Configurator através da CLI gcloud ou como uma API autónoma.

Conceitos

  • Recurso de configuração

    Um recurso Config contém uma lista hierárquica de variáveis. Pode criar diferentes configurações para diferentes finalidades. Por exemplo, pode separar as configurações com base no ambiente (produção, desenvolvimento, teste), com base em diferentes níveis de aplicações ou serviços (back-end, front-end) ou com base em entidades (uma configuração por utilizador da sua aplicação).

  • Variáveis

    As variáveis são pares de valor-chave que pertencem a um recurso RuntimeConfig. As chaves de variáveis têm o seguinte formato:

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

    Pode definir, obter e monitorizar valores de variáveis para comunicar informações às suas aplicações, para sinalizar um estado concluído, para enviar notificações de alterações de dados e muito mais. As variáveis são hierárquicas, pelo que a chave da variável pode ter vários níveis. Por exemplo, as chaves de variáveis de amostra podem ser:

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

    Pode usar o método watch() para monitorizar uma variável e devolvê-la quando a variável mudar, o monitorizador atingir o limite de tempo ou o monitorizador for eliminado. Use a funcionalidade watch() para configurar dinamicamente as suas aplicações com base nas alterações nos seus dados.

  • Empregados de mesa

    Se criar um recurso Waiter para monitorizar um prefixo de caminho específico, o Waiter é devolvido assim que o número de variáveis no prefixo atingir um valor específico. Isto é denominado condição de cardinalidade.

    Por exemplo, se definir uma condição para o caminho /foo e o número de caminhos for 2, a seguinte configuração cumpre a condição:

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

    Um waiter tem uma condição de falha e de êxito que pode definir.

    Depois de criar um Waiter, o serviço devolve um objeto de operação que sonda para conclusão. A operação está concluída quando ocorre uma das seguintes situações:

    • A condição success é cumprida.
    • A condição failure é cumprida.
    • O Waiter atingiu o prazo de limite de tempo especificado no pedido inicial.

    A utilização de um waiter é ideal para cenários de arranque, em que pode ter de pausar uma implementação até que um determinado número de serviços esteja em execução.

O que se segue?