Dicas de implantação de produção

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • Ao desenvolver personalizações para aplicações na plataforma ServiceNow®, você as implanta por meio do repositório de aplicações em uma instância de produção. Este tópico examina e fornece avisos para as compensações entre a instalação de uma aplicação do repositório de aplicações versus o repositório Git com controle de código-fonte.

    Visão geral ou implantação para produção

    Tecnicamente, você ainda pode “implantar” uma aplicação de um repositório Git em uma instância de produção usando o controle de código-fonte. Isso pode ter consequências indesejadas.

    Glossário de termos

    Termo Definição
    Arquivos de aplicações ou metadados Os registros sys_metadata que definem a configuração em ServiceNow e são empacotados em uma aplicação. Esses registros alteram o comportamento da instância, mas não contêm dados como incidentes ou registros do CMDB. (Consulte a nota abaixo)
    Aplicações com escopo Aplicações da ServiceNow que restringem a permissão somente de atualizações e operações dentro do limite do escopo. Este mecanismo é usado para a maioria dos novos desenvolvimentos.
    Aplicações globais Aplicações globais são desenvolvidas no escopo global legado. O trabalho geralmente é feito neste escopo para personalizar aplicações existentes da ServiceNow, como IT Service Management (ITSM).
    Repositório de aplicações As aplicações são normalmente publicadas aqui para implantação em instâncias de produção. Embora o repositório de aplicações tenha regras de atribuição separadas, ele funciona de forma semelhante à ServiceNow Store.
    ServiceNow Store Repositório para aplicações de terceiros (fornecedor), bem como aplicações publicadas da ServiceNow. A maioria dos clientes não publica na Store, mas geralmente instala aplicações a partir dela.
    Conjuntos de atualizações Método padrão de personalizações de empacotamento para implantação em cada instância sucessiva. Eles contêm a coleção incremental de inserções, atualizações e exclusões.
    Carregamento delta O método mais eficiente de carregamento porque ele muda somente a partir do controle de código-fonte, em vez de métodos de desinstalação/reinstalação anteriores.
    Esquema Definição de tabelas e colunas nas tabelas.
    Reverter Os administradores podem reverter a última instalação de uma aplicação selecionada. Uma reversão remove todas as atualizações de código, tabela e arquivo da instalação inicial.
    Nota:
    A tabela sys_metadata é a tabela primária de todos os arquivos de aplicações na plataforma ServiceNow que usam o modelo de herança de tabela. Você pode exibir informações de resumo de metadados visitando a tabela primária ou as tabelas que se estendem direta ou indiretamente, conforme indicado pelo campo Tabela de extensão (super_class) no registro Tabela (sys_db_object). Você também pode ver o esquema inteiro visitando o formulário Tabela (sys_db_object) da tabela sys_metadata e selecionando o link relacionado Mostrar mapa de esquema na parte inferior do formulário. O esquema é grande e, portanto, leva algum tempo para ser renderizado.

    Mapeamento de esquema

    Tabela de conteúdo do mapa de esquema

    Local de instalação

    Quando você instala o controle de código-fonte, ele facilita o desenvolvimento contínuo de uma aplicação personalizada. Portanto, a aplicação é gerenciada como uma aplicação “Em desenvolvimento” na tabela Aplicação personalizada [sys_app], em vez de como uma aplicação “Instalada” na tabela Aplicação da Store [sys_store_app]. Ambas as tabelas são extensões de sys_scope, portanto, ambas fornecem as mesmas proteções e restrições que o escopo. Portanto, ao pesquisar a instalação de uma aplicação implantada de controle de código-fonte, consulte a tabela Aplicação do sistema [sys_app] e a seção em desenvolvimento da página do Gerenciador de aplicações.

    Você não pode ter um registro sys_app na instância ao implantar a mesma aplicação da ServiceNow Store ou do repositório de aplicações. Os dois modelos de implantação são mutuamente exclusivos. Se a qualquer momento o modelo de implantação mudar, o registro sys_app deverá ser convertido em um registro sys_store_app primeiro. Você pode entrar em contato com o Suporte da ServiceNow para obter ajuda na execução dessa operação.

    Carregamento delta

    Antes da versão ServiceNow Paris, a instalação da aplicação a partir do controle de código-fonte sempre removia e reinstalava a aplicação inteira quando acionada, incluindo a função Aplicar mudanças remotas. Com Carregamento delta, agora somente as mudanças são atualizadas, simplificando o processo consideravelmente.

    O processo de carregamento Delta carrega as mudanças do controle de código-fonte de forma incremental. Ao aplicar mudanças remotas, você não descarta tabelas ou colunas existentes, a menos que elas tenham sido removidas do repositório. Isso preserva os dados das tabelas e campos que continuaram presentes.
    Nota:
    A propriedade glide.source_control.allow_delta_loading_in_scopedapp permite desabilitar o carregamento Delta em Paris; no entanto, isso reverterá para o comportamento mais destrutivo de remover e reinstalar a aplicação. As aplicações globais em Paris sempre usam o carregamento Delta.
    Abaixo está uma tabela dos diferentes resultados esperados em uma instância usando o carregamento Delta.
    Tipo de aplicação Origem da instalação Esquema presente no pacote O esquema contém dados Reivindicar por outro app (global) Resultado esperado para dados e esquema
    Com escopo Repositório de aplicações ou armazenamento Sim Sim/Não N/D Preservado
    Com escopo Repositório de aplicações ou armazenamento Não Sim/Não N/D Preservado
    Com escopo Controle de código-fonte Sim Sim/Não N/D Preservado
    Com escopo Controle de código-fonte Não Sim/Não N/D Removido
    Global Controle de código-fonte, repositório de aplicações ou armazenamento Sim Sim/Não Sim/Não Preservado
    Não Sim Não Preservado (1)
    Não Não Sim Preservado (2)
    Controle de código-fonte Não Não Não Removido (3)
    Repositório de aplicações Não Não Não Preservado
    Nota:
    • Embora o esquema do banco de dados e os dados sejam preservados, eles serão movidos para a aplicação global padrão.
    • Embora o esquema do banco de dados e os dados sejam preservados, eles serão movidos para a aplicação global que anteriormente detinha a reivindicação desses arquivos, se instalados. Caso contrário, eles serão movidos para a aplicação global padrão.
    • Aplicável somente em colunas personalizadas com prefixo u_. As colunas criadas pela plataforma ServiceNow não são descartadas.

    Ao alternar ramificações no controle de código-fonte para uma aplicação com escopo, tenha muito cuidado em um ambiente de produção. Se a ramificação de destino não tiver elementos de esquema encontrados na ramificação atual, o esquema relacionado será descartado, destruindo todos os dados que ele contém. (Aplicações globais não descartam o esquema quando os dados estão presentes.)

    Assim como com os conjuntos de atualizações, somente um subconjunto das mudanças incrementais precisa ser aplicado com o carregamento Delta. Ao contrário dos conjuntos de atualizações, o pacote de aplicações representa a aplicação completa. Os arquivos ausentes no novo pacote são excluídos. Isso pode alterar a funcionalidade e excluir dados. Os conjuntos de atualizações e as aplicações atualizados do repositório de aplicações ou do armazenamento ServiceNow devem ter uma carga DELETE explícita para remover um arquivo ou descartar um esquema.

    Se os arquivos de aplicações estiverem sendo gerados dinamicamente de qualquer forma, a próxima instalação/aplicação remota mudará a operação de uma aplicação e excluirá esses registros. Eles são considerados ausentes no pacote de aplicações de entrada. Se você armazenar mudanças locais, os arquivos de aplicações poderão ser recuperados por uma confirmação de armazenamento, mas se os dados forem perdidos como resultado das mudanças, os dados não serão recuperados.
    Nota:
    Remover ou suprimir registros sys_update_xml evita que eles sejam removidos pelo carregamento Delta; no entanto, esta ação pode ter outros resultados graves ou indesejáveis.

    As edições diretas no repositório, especialmente para remover arquivos, podem ter ramificações significativas, incluindo perda de dados e exclusões em cascata. Execute esta ação com cuidado.