Diretrizes para usar o controle de código-fonte
Controle de origem (Git) combinado com Repositório de aplicaçõesé o método de implantação preferencial para aplicações com escopo personalizado. Usando Conjuntos de atualizações do sistema também é um mecanismo de implantação aprovado para desenvolvimento de aplicações.
Por que usar o controle de origem?
- Histórico de mudanças completo
- O Git fornece um registro completo e auditável de cada mudança, como quem fez, quando e por que, com a capacidade de usar as funções de comparação, revisão e reversão no nível de arquivo individual.
- Desenvolvimento paralelo e ramificação
- Vários desenvolvedores podem trabalhar em diferentes recursos simultaneamente sem conjuntos de atualizações conflitantes.
- Fluxos de trabalho de revisão de código
- As solicitações de extração e revisões de mesclagem impõem a revisão por pares antes que qualquer mudança seja publicada, reduzindo erros e negligenciações de segurança.
- Versões com controle de versão
- Os marcadores e ramificações são mapeados diretamente para Repositório de aplicações versões, permitindo rollbacks confiáveis e fluxos de trabalho de hotfix.
- Integração de IC/CD
- Ferramentas externas de IC/CD, como Jenkins, GitHub Actions e. Azure DevOps pode acionar compilações, testes e implantações usando o. ServiceNow SDK e. CLI.
Quando estão Conjuntos de atualizações do sistema apropriado?
Conjuntos de atualizações do sistema mantenha o valor para mudanças operacionais rápidas para o seguinte:
- Configurações de escopo global.
- Hotfixes de emergência quando o pipeline de controle de origem completo introduziria um atraso inaceitável.
- As organizações ainda estão em transição das práticas de desenvolvimento legadas.
- Mudanças para ServiceNow® Store ou aplicações de plug-in em que Repositório de aplicações o fluxo de trabalho não se aplica nativamente.
Diretrizes de segurança
- Impor privilégio mínimo por meio de listas de controle de acesso (ACLs)
- Defina funções personalizadas específicas da aplicação em vez de depender de funções amplas do sistema. Configure as ACLs para usar a ordem de avaliação das funções primeiro, depois as condições e, em seguida, os scripts para obter desempenho e segurança ideais.
- Use deny-by-default
- A propriedade glide.sm.default_mode deve permanecer em Negar Para que as ACLs curinga restrinjam o acesso somente para administrador por padrão.
- Executar verificação de instância automaticamente
- Configurar Instance Scan para correr contra Conjuntos de atualizações do sistema e implantações de aplicações. Isso detecta ACLs vazias, acesso excessivamente permissivo e violações de padrão de codificação antes que elas cheguem à produção.
- Proteja o acesso entre escopos
- Configure os privilégios de acesso entre escopos da aplicação deliberadamente. Não use o padrão Abrir acesso para todos os escopos.
- Implementar autenticação multifator e restrições de IP
- Todas as contas interativas que executam implantações devem usar autenticação multifator. As contas de serviço para implantações automatizadas devem ser restritas por intervalo de IP e ter funções com escopo rígido.
- Audite tudo
- Use o Analisador de acesso para revisar regularmente permissões de usuário, grupo e função. Encaminhe logs de implantação e atividade de controle de acesso para sua plataforma SIEM para monitoramento.
- Separe os dados do código
- Os registros de dados da aplicação não estão incluídos em Repositório de aplicações implantações. Gerencie dados de referência e dados de propagação por meio de processos separados e controlados com classificação de dados apropriada.
Matriz de decisão do método de implantação
A tabela a seguir mostra o cenário e a abordagem de implantação recomendada:
| Cenário | Abordagem recomendada |
|---|---|
| Nova aplicação com escopo personalizado | E usar controle de origem Repositório de aplicações. Central de gestão do App Engine Pipelines e implantações, ou ReleaseOps. |
| Mudanças de configuração do escopo global | Uso Conjuntos de atualizações do sistema com Instance Scan ou aplicação global usando o. Repositório de aplicações. |
| Hotfix de produção de emergência | Uso Conjuntos de atualizações do sistema Para velocidade e porta de volta para o controle de código-fonte (Git) imediatamente após. |
| App de desenvolvedor cidadão de App Engine Studio | Uso Central de gestão do App Engine Pipelines e implantações com um fluxo de trabalho de aprovação assistida. |
| Coordenação de versões com várias equipes: | Uso ReleaseOps com trens de versão e. playbook validação. |