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 instalar uma aplicação do repositório de aplicações versus o repositório Git com controle de código-fonte.
Visão geral
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 não intencionais.
Glossário de termos
| Termo | Definição |
|---|---|
| Metadados ou arquivos de aplicações | 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 observação 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 as aplicações ServiceNow existentes, como o 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 direito separadas, ele funciona de forma semelhante à ServiceNow Store. |
| ServiceNow Store | Repositório para aplicações de terceiros (fornecedor), bem como aplicações publicadas pela ServiceNow. A maioria dos clientes não publica na Store, mas geralmente instala aplicações a partir dela. |
| Conjuntos de atualização | 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 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 um aplicativo personalizado. 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 "Instalado" na tabela Aplicação da Store [sys_store_app]. Ambas as tabelas são extensões de sys_scope, portanto, 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 na seção de 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 em qualquer ponto 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 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 | Declaração por outro app (Global) | Resultado esperado para dados e esquema |
|---|---|---|---|---|---|
| Com escopo | Repositório de aplicações ou Store | Sim | Sim/Não | N/D | Preservado |
| Com escopo | Repositório de aplicações ou Store | 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 |
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 que estão ausentes do novo pacote são excluídos. Isso pode alterar a funcionalidade e excluir dados. Os conjuntos de atualizações e as aplicações atualizadas do repositório de aplicações ou da ServiceNow Store 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.