Principais práticas de DevOps

Quando pensamos em aplicar Devops, devemos pensar em algumas práticas que nos aproximam de nosso objetivo. O custo de implantação dessas práticas podem ser um empecilho na adoção do Devops. Vamos as práticas e uma pequena avaliação da adoção de cada uma delas:

  1. Configuration management (Gerenciamento de Configuração):
    • CMDB (configuration management database): Registro vivo de todos os itens de configuração da infraestrutura/aplicação. Um CMDB bem estruturado e utilizado de forma correta nos fornece informação real para uma melhor atuação tanto nas mudanças quanto nos incidentes, dentre outras funcionalidades.
    • Change Management (Gerenciamento de Mudanças): Processo responsável por controlar o ciclo de vida de todas as mudanças. O principal objetivo é promover as mudanças de forma positiva com o mínimo de impacto e risco para o serviço de T.I.
    • Incident Manager (Gerenciamento de Incidentes): Processo responsável por gerenciar e controlar todo o ciclo de vida dos incidentes. O principal objetivo é disponibilizar os serviços de T.I. para os usuários com o mínimo de impacto e o mais rápido possível.
  2. Release management (Gerenciamento de liberação):
    • Managing (gerenciamento): Gerenciar o processo de liberação, mitigação de riscos, garantir os itens necessários para a mudança.
    • Planning (planejamento): Planejamento de todo o processo de liberação. Papeis e responsabilidades proporcionam uma melhor colaboração.
    • Controlling (controle): Controle dos riscos, itens de configurações e processo.
  3.  Continuous Integration (Integração Contínua):
    • Version Control (Control de versão): Registrar cada evolução do código-fonte.
    • Automate the build (Automação de construção): Automatizar a construção a cada tempo ou cada alteração.
    • Build self-testing  (Auto teste na construção): Quando tempos testes alinhados ao desenvolvimento e podemos automatizar os testes e executar os testes unitários (adivindos de TDD, Test Driven Development), podemos utilizar o processo de Build para testar nosso código, diminuindo o tempo de teste e validação.
  4. Continuous deployment/delivery (Implantação/entrega contínua):
    • Automate deployment (Implantação automatizada): Ao aplicar as mudanças de código-fonte nos ambientes de Desenvolvimento ou TQS (Test Quality Software), antecipamos às equipes de Teste, Homologação e validação.
  5. Infrastructure as Code (Infraestrutura como código):
    • Automate deployment (Implantação automatizada): Ao estruturar a infraestrutura como código, conseguimos promover as mudanças conforme as mudanças da aplicação. Performance na disponibilização de mudanças e configurações.
  6. Test Automation (Teste automatizado):
    • Unit test (Teste unitário): Testar unidades individuais de código-fonte, garante (em partes) um maior controle das alterações e validação das alterações.
  7. Application Performance Monitoring (Monitoramento de desempenho de aplicação):
    • End user experience (Experiência de usuário): Monitorar o desempenho para o usuário final, produzindo insumos necessários para uma ação pró-ativa das mudanças necessárias para melhorar a vida para o usuário. Impacto direto para o negócio.
    • Runtime application architecture (Arquitetura de aplicação em tempo de execução): Discovery (descoberta) de aplicações, integrações e dependências. Fornecendo um mapeamento ideal para o CMDB, melhorando assim uma ação pró-ativa para a equipe de desenvolvimento, adequação dos incidentes aos times interessados.
    • Dentre outros…

Essas são algumas das práticas utilizadas pelo mercado. A utilização de cada prática dessa favorece ao Devops. A unificação das áreas deve trazer além de colaboração, deve trazer confiança e segurança para o negócio.