O que é gerenciamento de configuração e por que é importante?
O gerenciamento de configuração (CM) é um processo de engenharia de sistemas para estabelecer e manter a consistência do desempenho, atributos funcionais e físicos de um produto com seus requisitos, design e informações operacionais ao longo de sua vida útil.
O gerenciamento de configuração é uma forma de gerenciamento de serviços de TI (ITSM), conforme definido pela ITIL, que garante que a configuração de recursos do sistema, sistemas de computador, servidores e outros ativos sejam conhecidos, bons e confiáveis. Às vezes, é chamado de automação de TI.
A maior parte do gerenciamento de configuração envolve um alto grau de automação para atingir esses objetivos. É por isso que as equipes usam ferramentas diferentes, como Puppet, Ansible, Terraform e outras ferramentas de gerenciamento de configuração.
Ao usar a automação, é mais fácil criar verificações e redundâncias, melhorando o potencial de omissões devido a erro humano e a precisão para manter os ativos no estado desejado.
Sem automação, um único engenheiro que se esquece de atualizar um software pode deixar um sistema com uma versão desatualizada do software que tem uma vulnerabilidade conhecida listada no CVE. Essa vulnerabilidade pode ser explorada para espalhar worms de computador, instalar ransomware ou outro tipo de malware.
A automação é valiosa por outro motivo, melhora muito a eficiência e torna o gerenciamento de configuração de grandes sistemas gerenciável.
O gerenciamento de configuração se aplica a uma variedade de sistemas, mas na maioria das vezes, você se preocupará com estes:
- Servidores
- Bancos de dados e outros sistemas de armazenamento
- Sistemas operacionais
- Rede
- Aplicativos
- Software
Por que o gerenciamento de configuração é importante?
Provavelmente, a tecnologia impulsiona seus negócios. Se você vende SaaS (Software-as-a-Service), a tecnologia é o produto.
Mesmo que você não o faça, todas as empresas usam a tecnologia para automatizar seus processos.
A configuração desses sistemas é fundamental para o sucesso da sua organização. A configuração é o que faz seus sistemas (servidores, redes, sistemas operacionais, data centers, arquivos de configuração, ativos de TI e todos os outros itens de configuração) funcionarem.
Abra o menu de configurações em qualquer software e você estará lidando com o gerenciamento de configuração.
Você precisa gerenciá-lo com cuidado e acompanhar as alterações de configuração para garantir a rastreabilidade, ou sua empresa e os usuários finais podem sofrer interrupções de sistemas, violações de dados e vazamentos de dados.
Para reduzir o risco de segurança cibernética e melhorar as operações, muitas empresas empregam um banco de dados de gerenciamento de configuração (CMDB), um plano de gerenciamento de configuração e um gerenciador de configuração para garantir o gerenciamento de configuração bem-sucedido.
Ter registros precisos do estado de seus sistemas é essencial e a linha de base de um atributo pode garantir que os processos formais de controle de alteração de configuração sejam eficazes. É por isso que o controle de versão é fundamental para toda a infraestrutura de TI.
Isso ajuda no gerenciamento de projetos, gerenciamento de ativos e processos de auditoria, bem como no desenvolvimento e depuração de software.
Outros benefícios do gerenciamento de configuração incluem:
- Risco reduzido de interrupções e violações de segurança por meio da visibilidade e do rastreamento das alterações em seus sistemas.
- Redução de custos por ter conhecimento detalhado de todos os elementos de sua configuração, evitando a duplicação desnecessária de seus ativos de tecnologia.
- Experiência aprimorada para seus clientes e equipe interna, detectando e corrigindo rapidamente configurações inadequadas que podem afetar negativamente o desempenho.
- Controle rigoroso de seus processos, definindo e aplicando políticas e procedimentos formais que regem a identificação de ativos, o monitoramento de status e a auditoria.
- Maior agilidade e resolução de problemas mais rápida, permitindo que você forneça uma maior qualidade de serviço e reduza os custos de engenharia de software.
- Gerenciamento eficiente de mudanças, conhecendo sua configuração de linha de base e tendo visibilidade para projetar alterações que evitem problemas.
- Restauração mais rápida do serviço. Em uma interrupção, você poderá se recuperar rapidamente, pois sua configuração é documentada e automatizada.
- Melhor gerenciamento de lançamentos e contabilidade de status clara.
As equipes de DevOps estão conquistando os Estados Unidos e o mundo e o gerenciamento de configuração de software está sendo aplicado em todo o ciclo de vida da TI corporativa.
Como você pode ver no diagrama abaixo, é fundamental pensar em como você planeja, cria, executa e controla processos e transferências, esteja você fazendo DevOps ou não.
O que acontece se você não usar o gerenciamento de configuração?
Há um comercial famoso sobre um mecânico de automóveis falando sobre um reparo caro do motor que poderia ter sido evitado se o proprietário tivesse substituído o filtro de óleo. O mecânico diz:
"Você pode me pagar agora ou pode me pagar mais tarde. "
Esta citação se aplica bem ao gerenciamento de configuração.
Você pode evitar os custos associados ao gerenciamento de configuração não o empregando, no entanto, provavelmente pagará:
- Esforço manual (meses) para determinar quais componentes do sistema devem ser alterados quando os requisitos forem alterados.
- Implementações com falha porque os requisitos do seu projeto foram alterados e você não comunicou as alterações a todas as partes.
- Perda de produtividade ao substituir componentes do sistema por novas versões defeituosas, sem a capacidade de reverter rapidamente para um estado de funcionamento.
- Interrupções inesperadas devido à modificação incorreta de componentes do sistema, porque você não pôde determinar com precisão quais componentes foram afetados por uma alteração.
O gerenciamento de configuração está incluído como uma prática chave de engenharia de sistemas porque funciona! Isso evita que você incorra em custos preventivamente e ajuda a TI a interromper o combate a incêndios. Além disso, bons engenheiros de sistemas aprenderam, por meio da experiência prática, que ele se paga muitas vezes.
A lição a aprender é simples: não pague o preço depois! Use o gerenciamento de configuração para se concentrar na prevenção de incêndios, não no combate a incêndios.
O que é um exemplo de gerenciamento de configuração?
>Uma estrutura de gerenciamento de configuração exemplar consiste em quatro pilares:
1. A questão
Uma "falha" de software impediu a Bolsa de Valores de Nova York (NYSE) de processar negociações de ações por quase 90 minutos.
2. O impacto
Os mercados financeiros sentiram o impacto mesmo além do pregão da NYSE. Como os investidores não podiam calcular os índices de mercado sem os dados da NYSE, as negociações também pararam na Bolsa de Valores Americana e em alguns mercados de futuros e opções. As negociações também desaceleraram na Bolsa de Valores NASDAQ, devido à relutância dos investidores em fazer negócios sem informações sobre as negociações da NYSE.
3. A causa
Uma nova instalação de software causou o problema. A NYSE instalou o software em 8 de seus 20 terminais de negociação, e o sistema foi testado na noite anterior ao go-live. No entanto, na manhã de 8 de junho, um total de 8 instalações não funcionaram corretamente. A NYSE tentou voltar ao seu software antigo, mas não conseguiu fazê-lo antes da abertura do pregão.
4. Lições aprendidas
Embora você possa ver isso como uma falha do processo de gerenciamento de configuração da NYSE, na realidade, foi um sucesso. Embora o problema não tenha surgido até pouco antes da abertura do pregão, a NYSE tinha processos e ferramentas robustos de gerenciamento de configuração, que identificaram e se recuperaram do problema rapidamente. Além de alguns rostos vermelhos na NYSE, o dano foi minimizado. Se a interrupção tivesse continuado por mais de 90 minutos, as repercussões teriam sido muito mais graves.
Quanto custa o gerenciamento de configuração?
Infelizmente, o gerenciamento de configuração não é gratuito. Em primeiro lugar, você precisará de um sistema de gerenciamento de configuração. O mercado de sistemas de gerenciamento de configuração muda com frequência e existem muitas soluções diferentes por aí, desde projetos de código aberto até tecnologia comercial vendida por empresas como Microsoft e IBM. Normalmente, os custos dessas ferramentas de gerenciamento de configuração são por 'nó' com preços variados, dependendo do tipo de nó (servidores, bancos de dados, dispositivos de rede, dispositivos móveis, armazenamento, instâncias virtuais etc.). Os sistemas de código aberto percorreram um longo caminho, portanto, apesar de pagar pelo logotipo e pela equipe de vendas de um fornecedor, nem sempre é bom para o dinheiro ir com um grande fornecedor.
O segundo custo do gerenciamento de configuração são pessoas, incluindo funcionários (geralmente contratados, se sua capacidade interna for imatura) com as habilidades para configurar processos e ferramentas de gerenciamento de configuração. Você também precisará levar em consideração o treinamento de sua equipe existente para integrar os processos contínuos de gerenciamento de configuração em seus negócios.
Qual é o retorno sobre o investimento do gerenciamento de configuração?
Alguns dos benefícios financeiros que contribuem para resultados positivos de ROI encontrados no aproveitamento do gerenciamento de configuração incluem:
- Aumento da produtividade da equipe de TI. A otimização das atividades da equipe de TI por meio da automação reduziu o tempo gasto pela equipe de TI "mantendo as luzes acesas", liberando recursos valiosos da equipe para iniciativas relacionadas aos negócios.
- Aumento da produtividade do usuário. Redução do tempo de inatividade causado por interrupções do sistema, ataques cibernéticos, invasões de segurança e atividades de alteração e configuração.
- Redução de custos de TI. A otimização das operações de TI reduz custos em várias áreas, incluindo infraestrutura, serviços terceirizados e software de gestão.
- Entrega contínua de serviços de TI. Garantir que o software possa ser lançado de forma confiável a qualquer momento.
Existem muitos cálculos de ROI que você pode aplicar ao seu negócio. A métrica é a redução de custos em áreas como:
- O número de dispositivos/nós monitorados por um sistema de gerenciamento de configuração.
- O esforço (tente US $35/hora de forma conservadora) é preciso um engenheiro de sistema/rede para lidar com os processos de gerenciamento de configuração manualmente.
- Quando (não se) ocorrer uma interrupção do sistema sem configuração de backup.
- Quando você inevitavelmente precisa aplicar uma atualização de configuração em massa a muitos sistemas, ou uma nova distribuição precisa acontecer.
- Quando sua empresa precisa atender a uma solicitação de auditoria de configuração ou passar por uma avaliação de risco de tecnologia.
Os benefícios do gerenciamento de configuração fluem para todas essas atividades. Essas atividades levam tempo, e tempo é dinheiro.
Quais são algumas ferramentas populares de gerenciamento de configuração?
Existem muitas ferramentas populares de gerenciamento de configuração, o que torna difícil encontrar uma ferramenta ou pilha de ferramentas que atenda às necessidades de configuração do sistema de sua organização.
Os recursos essenciais e as compensações que você precisa considerar incluem desempenho, sempre fundamental para dimensionar um data center, compatibilidade com sistemas existentes, facilidade de uso, suporte corporativo e segurança cibernética.
Quando se trata de participação de mercado, ferramentas como Ansible, Puppet e Microsoft System Center Configuration Manager têm comunidades consideráveis, mas existem apenas ótimas alternativas no espaço CM.
Aqui estão algumas das ferramentas mais populares que você pode considerar, ou pelo menos estar ciente:
Ansible
Líder em participação de mercado, com cerca de 27% de participação no mercado, o Ansible é um sistema de orquestração e configuração sem agente que usa playbooks escritos em YAML para gerenciar seus servidores.
HashiCorp Terraform
Concentrando-se mais no provisionamento do servidor do que na configuração do servidor, o Terraform usa uma abordagem de configuração imutável para manter todos os servidores perfeitamente sincronizados com o estado desejado, evitando desvios de configuração.
CFEngine
Uma ferramenta mais antiga no espaço, o CFEngine é uma ferramenta de gerenciamento de configuração que executa agentes leves nos recursos gerenciados e converge sua configuração para o estado desejado.
Gerenciador de configurações do Microsoft System Center
Com cerca de 22% do mercado, o MSCCM é a ferramenta de configuração e monitoramento do sistema da Microsoft, que gerencia a configuração de ativos baseados no Windows a partir de uma única máquina de administração central.
Marionete
Uma ferramenta de gerenciamento de configuração com quase 12% de participação de mercado, o Puppet usa uma arquitetura Master-Slave para manter os recursos no estado desejado. Junto com o Chef, é um dos sistemas CM que dependem de linguagens específicas de domínio (DSLs) Ruby para gerenciamento de configuração.
Chefe
O Chef permite que você armazene rotinas de gerenciamento de configuração em "receitas" e "livros de receitas" que podem ser facilmente compartilhados entre as equipes, com suporte para uma infinidade de sistemas operacionais, incluindo Windows e Linux.
AWS OpsWorks
Esta é uma das várias soluções da AWS destinadas a facilitar o gerenciamento de configuração para empresas que hospedam seus aplicativos na plataforma de nuvem da Amazon. O OpsWorks automatiza a aplicação de patches, a atualização e a configuração de servidores usando o Chef e o Puppet.
Pilha de sal
O Salt permite que você use a linguagem de programação Python para criar modelos de configuração que podem ser enviados aos clientes a partir de um mestre central ou executados com um modelo descentralizado.
Essas ferramentas têm muitos pontos em comum e recursos sobrepostos que oferecem vantagens sobre o gerenciamento manual de configuração, incluindo abordagens de infraestrutura como código que facilitam a distribuição de atualizações e a alteração da infraestrutura.
Além disso, essas ferramentas de gerenciamento de configuração ajudam você a manter um registro de seus ativos e entender o estado exato em todos os seus servidores e outros ativos em rede.
Quais são as melhores práticas em gerenciamento de configuração?
As áreas de gerenciamento de configuração, gerenciamento e controle de dados estão repletas de riscos, desde a possibilidade de interrupções na disponibilidade de aplicativos, bem como perda ou corrupção de dados.
Para garantir que os ativos da sua organização estejam altamente disponíveis e configurados de maneira ideal, use estas práticas recomendadas:
Controlar alterações
Para acompanhar as alterações relacionadas ao provisionamento do sistema e ao gerenciamento de configuração, considere o uso de conjuntos de alterações em vez de confirmações de arquivo único. Conjuntos de alterações são commits empacotados que rastreiam alterações em um grupo de arquivos, estrutura de diretório, motivos de alteração, comentários de teste de unidade e alterações de ambiente em um commit fácil de gerenciar. Isso permite que os gerentes de compilação vejam quais arquivos relacionados foram alterados a cada alteração significativa em seus ativos, facilitando a reversão de alterações indesejadas ou a reversão para uma configuração anterior, se necessário.
Testes iniciais
Adote uma abordagem de teste antecipado testando cedo e com frequência você pode detectar bugs e regressões potencialmente prejudiciais em seu gerenciamento de configuração.
Teste de desempenho
O teste de desempenho fornece à sua equipe de DevOps informações sobre como as alterações mais recentes afetam o desempenho e a funcionalidade do sistema.
Integre cedo e com frequência
Juntamente com o teste de desempenho, integre-se antecipadamente e com frequência para garantir que novos recursos ou alterações funcionem bem com o restante do seu ambiente. Isso ajudará você a postar problemas antes que eles ocorram na produção e se mostrem caros.
Evite corrigir problemas com código
A menos que tenham sido definidos em seu repositório de gerenciamento de configuração. Sem uma definição do problema em seu repositório, os futuros revisores não saberão o que foi corrigido e se a correção funcionou, levando ao potencial de conflitos de código e bugs sutis.
Controle de configuração
Incluia avaliação de todos os pedidos e propostas de alteração e a sua subsequente aprovação ou reprovação. Abrange o processo de controle de modificações no design, hardware, firmware, software e documentação do sistema.
Este é um começo, mas existem muitas outras práticas recomendadas importantes e úteis que surgiram e algumas ainda estão surgindo para a configuração ideal de seus sistemas de computador.
Sua equipe deve codificar seu conjunto de práticas recomendadas que regem e protegem sua organização no futuro.
Este será um esforço contínuo e suas melhores práticas mudarão com o tempo, de acordo com as necessidades de sua organização.
Qual é o futuro do gerenciamento de configuração?
O gerenciamento de configuração está em fluxo e há muitas melhorias lançadas nas ferramentas e processos que usamos.
De um modo geral, o gerenciamento de configuração adequado atinge três objetivos fundamentais: identificar facilmente todo o código e configuração implantados na produção (também conhecido como auditoria de configuração), a capacidade de recuperar todos os itens de configuração, incluindo código, usados para obter qualquer produto de trabalho, estado desejado ou versão, e ter um mecanismo eficaz para criar uma sandbox para correções de bugs ou acomodação de uma solicitação de mudança sem regressões no ambiente devido à falta de arquivo de cabeçalho ou outro tal erro.
As ferramentas que prometem melhorias significativas em relação a qualquer um desses drivers fundamentais para o gerenciamento de configuração provavelmente encontrarão uma base de usuários, e isso implica uma cultura de mudança e aprimoramento constantes nas ferramentas de CM.
No futuro, algumas das ferramentas que parecem destinadas a contribuir enormemente para o futuro do gerenciamento de configuração incluem Kubernetes, Docker e ferramentas como Habitat, Kustomize e Conduit.
O Docker é visto há muito tempo como o futuro do gerenciamento de configuração devido à forma como seu modelo de conteinerização e recursos de gerenciamento de alterações facilitam a reversão de alterações em uma imagem. Isso elimina uma parte significativa da carga de gerenciamento de configuração.
O Kubernetes, por outro lado, concentra a configuração no nível do seu aplicativo e suas dependências, em vez de se concentrar na configuração de servidores monolíticos. Se você já tem contêineres do Docker para implantar, o Kubernetes torna mais fácil e rápido colocar seus aplicativos em funcionamento, mas migrar aplicativos baseados em máquina virtual para o Kubernetes ainda é um processo muito mais desafiador.
Para resolver alguns dos problemas que o Kubernetes deixa para você, como criar seus aplicativos, o Chef Habitat e o Kustomize podem ajudar.
O Habitat fornece uma abordagem uniforme para criar e implantar seu aplicativo, com um pacote final que pode ser executado em servidores bare metal ou ser exportado para Docker e Kubernetes. Isso fornece um fluxo de trabalho consistente que funciona para executar seu aplicativo em qualquer plataforma.
O Kustomize ajuda você a personalizar a configuração de seus aplicativos implantados e facilita o uso de aplicativos de terceiros em sua implantação do Kubernetes.
Com a introdução de novos ativos na Internet das Coisas (IoT), as organizações provavelmente terão muito mais ativos para gerenciar, o que provavelmente introduzirá novas ferramentas. O que parece claro, no entanto, é que as plataformas de conteinerização e suas ferramentas de gerenciamento de configuração associadas continuarão a conquistar participação de mercado de implantações baseadas em máquinas virtuais devido às suas inúmeras vantagens.
Sua empresa corre o risco de uma violação de dados?
O UpGuard pode proteger sua empresa contra violações de dados, identificar todos os seus vazamentos de dados e ajudá-lo a monitorar continuamente a postura de segurança de todos os seus fornecedores.
O UpGuard também oferece suporte à conformidade em uma infinidade de estruturas de segurança, incluindo os novos requisitos estabelecidos pela Ordem Executiva de Segurança Cibernética de Biden.
Teste a segurança do seu site, CLIQUE AQUI para receber sua pontuação de segurança instantânea agora!