Diretrizes gerais para usar a Identificação do CMDB
Analise as diretrizes gerais a seguir para usar a Identificação do CMDB com eficácia.
Regras de identificação
Uma regra de identificação independente identifica um IC com base nos atributos do IC, independentemente de outros ICs.
Uma regra de identificação dependente identifica um IC por seus ICs dependentes e os relacionamentos do IC identificado com esses ICs dependentes. A identificação com uma regra de identificação dependente é baseada nos ICs dependentes e nos relacionamentos e qualificadores entre o IC identificado e seus ICs dependentes. A identificação então requer mais tempo do que com uma regra de identificação independente e está sujeita a alguns erros de identificação. O uso de regras dependentes deve ser minimizado.
A modelagem de IC determina que tipo de regras de identificação são necessárias para a identificação de IC apropriada.
- Regras de identificação independentes - É sempre preferível criar regras de identificação independentes em vez de regras de identificação dependente. Ao modelar um IC, defina o IC com um conjunto completo de atributos que se prestam à identificação independente, eliminando a necessidade de usar ICs adicionais para identificação.
- Regras de identificação dependentes - Se for necessário criar regras de identificação dependentes, defina um único nível de dependência. Dois é o número máximo de níveis de dependência compatíveis.
- Evite criar entradas de identificador de pesquisa. O uso da entrada do identificador de pesquisa é altamente desencorajado, pois pode reduzir o desempenho. Se for inevitável, certifique-se de revisar primeiro as definições de classe e considere as atualizações que permitem o uso de regras de identificação independentes.
- Limite o número de entradas de identificador em uma regra de identificação, de preferência a 1. Uma segunda entrada de identificador pode reduzir ainda mais o desempenho, assim como cada entrada de identificador adicional.
- Crie regras de identificação fortes nas quais as entradas de identificador mais fortes e as entradas relacionadas são definidas com a prioridade mais alta.
- Certifique-se de que a regra de identificação esteja no nível de classe que precisa estar.
Carga
Crie a carga útil usando a seguinte ordem de importância:
- Tamanho da carga útil - Limite o número de ICs por carga útil a 500.
- Evite entradas duplicadas na carga útil.Exemplo: se uma regra de identificação tiver um atributo de critério para o campo nome, a carga útil a seguir terá itens duplicados, resultando em falha:
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { name:'Win Server 200', ram:'2048' }}, { className:'cmdb_ci_linux_server', values: { name:'Win Server 200', ram:'4096' }}] }; - Não passe dados do sistema, como os seguintes, na carga útil.
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { name:'Win Server 200', sys_domain:'global', sys_domain_path:'xyz', sys_updated_on:'2017-06-15 16:25:11', sys_mod_count:23, }}] }; - Forneça o conjunto mínimo necessário de atributos de critério para cada item de carga útil, de acordo com o que está especificado nas regras de identificação correspondentes.
- Ao corresponder ICs, use sysIds de ICs, se disponível. Se fornecido, o IRE pode usar o sysId para localizar diretamente um IC sem exigir nenhum atributo de critério da regra de identificação. Nesse caso, o IRE não usa o sysId no processo de correspondência.
- Exemplo: IC independente que precisa ser atualizado - sysId está disponível.
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { sys_id:'194876usytrr65378098', ram:'2048', }}] }; - Exemplo: IC dependente que precisa ser inserido. O Tomcat War CI depende do Tomcat CI e o Tomcat CI depende do Linux Server CI. SysIds para o Tomcat e os ICs do Linux estão disponíveis.
var payload = { items: [{ className:'cmdb_ci_app_server_tomcat_war’, values: { name:'war1', short_description:'my description' } }, { className:'cmdb_ci_app_server_tomcat', values: { sys_id:'194876usytrr65378098' } }, { className:'cmdb_ci_linux_server', values: { sys_id:'09876tysueyt6345lakiu' } }], relations: [{ parent:1, child:0, type: 'Contains::Contained by’}, { parent:1, child:2, type:'Runs on::Runs'} ] }; - Exemplo: IC dependente que precisa ser atualizado - sysId está disponível.
var payload = { items: [{ className:'cmdb_ci_app_server_tomcat_war', values: { sys_id:'039387euey637465sytet', short_description:'my description new' } }] };
- Exemplo: IC independente que precisa ser atualizado - sysId está disponível.
- Ao inserir muitos ICs, todos os quais dependem do mesmo IC, serialize suas chamadas de API. Caso contrário, tentar processar simultaneamente muitos ICs pode entupir o sistema, degradando significativamente o desempenho geral do sistema.