Trabalhando para uma grande empresa com mais de 500 funcionários de TI e mais de 1.000 servidores, com cada servidor executando seus próprios aplicativos de negócios, temos um tremendo desafio de informações e coordenação em saber qual membro da equipe de TI entrará em contato para qual servidor. O problema da coordenação é agravado, com diferentes equipes de TI sendo responsáveis por diferentes camadas da pilha de TI. Por exemplo, existem equipes diferentes que são responsáveis por hardware, virtualização, sistemas operacionais, servidores de aplicativos e os próprios aplicativos.
Considerando esse desafio, no DevOps, é necessário definir e documentar todos os componentes que constituem as várias pilhas de tecnologia em um ambiente de TI. Tradicionalmente, isso pode ter sido realizado com uma solução CMDB adequada.
Eu investiguei soluções CMDB típicas, como BMC Atrium e outras para essa finalidade, no entanto, o problema é que elas param no nível de documentação dos ativos de TI, em um nível alto, conforme a estrutura ITIL, mas para não abordar a documentação da pilha de tecnologia de TI em detalhes. Também investiguei ferramentas como Puppet , Ansible e Salt , mas essas ferramentas se concentram mais na implantação e configuração de software, e não na coordenação de pessoas em torno de software.
Uma solução viável, por exemplo, definiria os vários conceitos, juntamente com os principais atributos importantes para esses conceitos:
- Hardware
- Virtualização
- Sistemas operacionais
- Servidores de aplicativos
- Formulários
Esses conceitos seriam então associados entre si em termos de seus relacionamentos, a fim de formar soluções. Por exemplo, um aplicativo dependeria de um servidor de aplicativos, que dependeria de um sistema operacional, etc. Juntas, essa solução seria definida no "Sistema Financeiro". Tendo definido um sistema, todos os metadados associados a esses sistemas seriam capturados para facilitar a coordenação de cada camada na pilha. Ou seja, a coordenação da equipe de suporte técnico para cada camada.
O objetivo de uma solução desse tipo seria fazer várias consultas em relação às pilhas de tecnologia, como:
- Para determinar quem suporta quais componentes
- Quais componentes estão desatualizados
- Quais componentes precisam ser corrigidos
Com isso em mente, quais ferramentas de código aberto existem para definir todos os componentes de uma pilha de tecnologia de TI, incluindo seu relacionamento entre si, em um banco de dados gráfico como o Neo4J?