Lançar uma versão

Este documento descreve como lançar uma versão usando o ambiente de execução do SaaS.

O ambiente de execução de SaaS permite atualizações em várias unidades provisionadas usando implantações. Os rollouts segmentam unidades com base no UnitKind delas e podem aplicar filtros (unit_filter) para segmentar um subconjunto específico de unidades usando a Google Cloud CLI . Isso permite atualizações gerenciadas em toda a base implantada. Uma reversão pode ser realizada fazendo upgrade das unidades para uma versão anterior.

Para operações em uma única unidade específica, use os controles disponíveis na página Detalhes da unidade.

Antes de começar

Antes de atualizar sua oferta de SaaS, faça o seguinte:

Criar uma versão

Antes de atualizar sua oferta de SaaS, crie um lançamento. Uma versão representa uma versão específica do seu aplicativo SaaS definida por um pacote de blueprint e as configurações associadas. Basicamente, uma versão contém a atualização das suas unidades.

Console

  1. Acesse o ambiente de execução de SaaS.

    Acessar o ambiente de execução de SaaS

  2. Clique em Versões.

  3. Na página Lançamentos, clique em Criar.

  4. Na página Criar versão:

    1. Na caixa Nome da versão, insira um nome exclusivo para ela.
    2. Na caixa Tipo de unidade, selecione o tipo de unidade associado a esta versão.
    3. Na seção Só é possível fazer upgrade de (opcional), você pode selecionar versões de que as unidades podem fazer upgrade para esta versão. Isso permite controlar os caminhos de upgrade.
    4. Nas etapas Criar blueprint e Armazenar blueprint, selecione ou crie seu blueprint. Consulte a documentação de projetos para informações detalhadas sobre as opções de criação de projetos.
    5. Na seção Variáveis (opcional), você pode definir variáveis de entrada para esta versão. Consulte a documentação sobre variáveis para mais informações sobre como definir variáveis.

  5. Clique em Criar.

  6. Você criou um lançamento. Confira os detalhes do lançamento na página Detalhes do lançamento. Você poderá fazer referência a essa versão ao criar um lançamento.

gcloud

Para criar um lançamento usando o Google Cloud console:

gcloud beta saas-runtime releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]

Substitua:

  • RELEASE_NAME: o ID da versão que você quer criar. Isso vai fazer parte do nome completo do recurso para a versão.
  • BLUEPRINT_PACKAGE_URI: o URI do pacote de blueprint a ser usado para esta versão. Os projetos são imagens da OCI hospedadas no Artifact Registry ou em outro registro da OCI.
    • O pacote de blueprint contém os artefatos necessários para provisionar uma unidade e inclui metadados sobre o mecanismo usado (Terraform) e a versão.
    • Se você omitir o nome do host no URI, ele vai usar o caminho regional do Artifact Registry por padrão (us-east1-docker.pkg.dev, por exemplo).
    • Consulte a documentação de projetos para mais informações sobre como criar projetos.
  • UNIT_KIND: o ID ou identificador totalmente qualificado para o tipo de unidade a que esta versão corresponde. UNIT_KIND é imutável depois que você cria uma versão.
  • LOCATION: o local em que você quer criar a versão. Essa flag fornece um valor substituto para o local de lançamento se o caminho de URI completo não for fornecido. O padrão é o local configurado no ambiente da Google Cloud CLI.
  • LABELS: (opcional) rótulos a serem aplicados à versão para categorização. Rótulos são pares de chave-valor.
    • As chaves precisam começar com um caractere minúsculo e conter apenas hifens, sublinhados, caracteres minúsculos e números.
    • Os valores precisam conter apenas hifens, sublinhados, caracteres minúsculos e números.
    • Por exemplo: --labels=environment=staging,team=saas-runtime
  • UPGRADEABLE_FROM_RELEASES: (opcional) uma lista separada por vírgulas de nomes de versões que especifica quais versões atuais podem ser atualizadas com a nova versão criada.
    • Se você deixar essa flag vazia, não haverá restrições sobre quais versões poderão ser atualizadas para essa versão.
    • Quando fornecidos, os pedidos de atualização de unidade para essa versão vão aplicar essa restrição.
  • INPUT_VARIABLE_DEFAULTS: (opcional) valores padrão para variáveis de entrada exigidas pelo blueprint.
    • É possível especificar os padrões de variáveis in-line ou referenciando um arquivo YAML ou JSON.
    • As variáveis definidas aqui podem ser substituídas durante a criação do lançamento.

Para mais informações sobre como definir variáveis, consulte a documentação sobre variáveis. Para mais informações sobre versões, consulte a referência da Google Cloud CLI Release.

Criar um tipo de lançamento

Antes de criar um lançamento, é preciso criar um tipo de lançamento que sirva como modelo de como a versão é implantada nas unidades.

Console

  1. Acesse o ambiente de execução de SaaS.

    Acessar o ambiente de execução de SaaS

  2. Clique em Tipos de lançamento.

  3. Na página Tipos de lançamento, clique em Criar.

  4. Na página Criar um tipo de lançamento:

    1. Na caixa Nome do tipo de lançamento, insira um nome para o tipo de lançamento.
    2. Na caixa Tipo de unidade, selecione o tipo de unidade que detalha o tipo de unidade em que você quer que a versão seja lançada.
    3. No menu suspenso Estratégia de lançamento, selecione a estratégia que você quer usar para implantar a versão nas suas unidades:

      • Um local por vez (simples): atualiza um local por vez (sem períodos de espera). Atualiza até 20% das unidades simultaneamente.
      • Tudo de uma vez (simples): todos os locais começam a ser lançados simultaneamente (ideal para ambientes de desenvolvimento e situações de emergência).
      • Progressivo (gradual): lança atualizações gradualmente em lotes de porcentagem exponencialmente em vários locais (com tempos de absorção).
      • Progressiva (local único): atualiza unidades em lotes percentuais com tempos de imersão estendidos para detectar problemas em um único local.

      Para mais informações sobre estratégias de lançamento, consulte Estratégias de lançamento.

  5. Clique em Criar.

  6. Você criou um tipo de lançamento. Na página Detalhes do tipo de lançamento, é possível conferir e editar os parâmetros do tipo de lançamento.

gcloud

Para criar um tipo de lançamento usando o console Google Cloud :

  gcloud beta saas-runtime rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT

Substitua:

  • ROLLOUT_KIND_NAME: o nome do tipo de lançamento.
  • UNIT_KIND: define a quais unidades você quer aplicar lançamentos. As versões são aplicadas a todas as unidades do tipo de unidade selecionado.
  • LOCATION: o local onde você quer criar o tipo de lançamento.
  • ROLLOUT_STRATEGY: define a estratégia de lançamento para o tipo de lançamento. Os possíveis valores incluem:

    • Google.Cloud.Simple.OneLocationAtATime: atualiza um local por vez (sem tempos de imersão). Atualiza até 20% das unidades simultaneamente.
    • Google.Cloud.Simple.AllAtOnce: todos os locais começam a ser lançados simultaneamente (ideal para ambientes de desenvolvimento e cenários de emergência).
    • Google.Cloud.Progressive.Gradual.v1: implanta atualizações gradualmente em lotes de porcentagem exponencialmente em vários locais (com tempos de imersão).
    • Google.Cloud.Progressive.SingleLocation.v1: atualiza unidades em lotes de porcentagem com tempos de imersão estendidos para detectar problemas em um único local.

    Para mais informações sobre estratégias de lançamento, consulte Estratégias de lançamento.

  • ERROR_BUDGET: a configuração do margem de erro. Se o número de unidades com falha exceder o máximo de error_budget (definido por allowed_count, allowed_ratio * total_units), o lançamento será pausado. Se error_budget não estiver definido, o ambiente de execução do SaaS vai tentar atualizar todas as unidades, independente do número de falhas encontradas.

  • UNIT_FILTER: string de filtro formatada em CEL usada em unidades. O filtro será aplicado para determinar a população de unidades qualificadas. Esse filtro só pode reduzir o escopo do lançamento. Não é possível expandir o escopo do lançamento.

  • UPDATE_UNIT_KIND_DEFAULT: a configuração para atualizar o tipo de unidade. Por padrão, o tipo de unidade será atualizado no início do lançamento. Os possíveis valores incluem:

    • UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: a estratégia de atualização do tipo de unidade não foi especificada.
    • UPDATE_UNIT_KIND_STRATEGY_ON_START: atualiza a estratégia de tipo de unidade no início do lançamento.
    • UPDATE_UNIT_KIND_STRATEGY_NEVER: nunca atualize a estratégia de tipo de unidade.

Para mais informações, consulte a RolloutKind referência da Google Cloud CLI.

Recurso de margem de erro

O ambiente de execução de SaaS inclui um recurso de margem de erro (ErrorBudget em RolloutKind) como proteção. Isso pode pausar automaticamente um lançamento se o número ou a porcentagem de falhas na atualização da unidade (durante a aplicação da infraestrutura, por exemplo) exceder um limite configurado, ajudando a limitar o impacto de possíveis problemas durante uma atualização.

Criar um lançamento

Depois de criar um tipo de lançamento, você pode criar um lançamento que especifica a versão com que quer atualizar suas unidades.

Depois que o lançamento é criado, o ambiente de execução de SaaS atualiza as unidades de acordo com a estratégia definida no tipo de unidade.

Console

  1. Acesse o ambiente de execução de SaaS.

    Acessar o ambiente de execução de SaaS

  2. Clique em Lançamentos.

  3. Na página Lista de lançamento, clique em Criar.

  4. Na página Criar um lançamento:

    1. Na caixa Tipo de lançamento, selecione o tipo de lançamento que detalha como fazer o lançamento nas unidades especificadas.
    2. Na caixa Versão, especifique a versão para atualizar as unidades.
    3. Na caixa Nome do lançamento, insira um nome para o lançamento.
  5. Clique em Criar.

  6. Seu lançamento foi criado.

    Na página Detalhes do lançamento global, é possível monitorar detalhes do lançamento, incluindo o estado, o progresso (por contagem de unidades) e as falhas.

gcloud

Para criar um lançamento usando o console Google Cloud :

  gcloud beta saas-runtime rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION

Substitua:

  • ROLLOUT_NAME: o nome do lançamento.
  • ROLLOUT_KIND_NAME: define qual tipo de lançamento você quer usar para aplicar versões às suas unidades. As versões são aplicadas a todas as unidades do tipo de unidade definido no tipo de lançamento.
  • RELEASE_NAME: define o binário da versão que você quer implantar nas suas unidades.
  • LOCATION: o local em que você quer criar o lançamento.

Para mais informações, consulte a Rollout referência da Google Cloud CLI.

A seguir