Dicas de implantação de produção
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. |
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.
| 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 |
- 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.
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.