Pular para o conteúdo principal

Ferramentas DEVOPS OpenSource


A aplicação dos conceitos de DevOps envolvem o versionamento de códigos em desenvolvimento e configurações de infraestrutura, testes e deploy automatizados, controles e execução de processos, virtualizações e monitoramento. 

DevOps atua com ferramentas de:

  1. Codificação: desenvolvimento e revisão de código;
  2. Compilação: integração contínua e compilação;
  3. Teste: teste contínuo e feedback;
  4. Pacote: repositório de artefato, etapa de pré-implantação de aplicação;
  5. Liberação: mudança, aprovações de liberação e automação de liberação;
  6. Configuração: configuração e gerenciamento de infraestrutura;
  7. Monitoramento: desempenho de aplicações e experiência do usuário final.

DevOps foi concebido com base em soluções Open Source existentes e as mais utilizadas são litadas a seguir:

Gitlab: um dos sistemas de controle de versão mais usados e baseado no GIT. Permite criar e gerenciar múltiplas versões de código, fazer comparações e aditar alterações.

Puppet: normalmente usado para garantir as configurações e instalações em um servidor. Agentes garantem continuamente que as configurações definidas em uma linguagem declarativa chamada DSL (Domain specific language) estejam aplicadas.

Ansible: comumente usado para provisionar configurações e instalações em um servidor. Não possui agente e executa ações diante de solicitações (PUSH) que são aplicadas via SSH. As ações são definidas em playbook que são convertidos em linguagem Python durante a execução. 

Jenkins: ferramenta para integração contínua que possibilita orquestrar ações e criar processos automatizados. Permite definir pipelines onde uma execução só segue se a anterior for concluída com sucesso. 

Vagrant: permite provisionar máquinas virtuais e configurações com facilidade e de forma automatizada. É possível criar ambientes completos para desenvolvedores, por exemplo, em máquinas virtuais no virtual box com sistemas Linux ou Windows. 

Apache Maven: ferramenta para automação de compilações com foco principal em JAVA, mas que pode ser usada também para C#, Ruby, Scala e outras linguagens. Baixa bibliotecas Java e plug-ins dinamicamente. Configurações baseadas em XML. 

Gradle: sistema de automação de compilação baseado no Maven mas que usa linguagem baseado em Groovy em vez do XML para definir as configurações. Foi projetado para muti projetos e suporta compilações incrementais.

Nant: ferramenta para compilação de projetos .NET e automatização de tarefas com suporte a linguagens como C#, VB.NET, Mono, entre outros. Baseada no Ant, ferramenta com mesmo fim para projetos em Java.

PHPUnity: framework para testes unitários para códigos feitos em PHP. Muito usado em processo de Integração contínua.

Junity: permite executar testes unitários em códigos feitos em Java.

Codeception: possibilita realizar testes de interface em aplicações desenvolvida em códigos PHP. Pode verificar elementos HTML, propriedades, conteúdo e outros.

oVirt: versão do livre do Redhat Enterprise Virtualization para criação de máquinas virtuais com sistemas Linux ou Windows. Possui suporte a alta disponibilidade, snapshots e live migrate. Usado como opção alternativa ao VMWare.

Docker: sistema de virtualização baseado em container que permite a criação de máquinas virtuais linux que compartilham recursos entre si. Muito usado para provisionamento dinâmico de servidores Linux. 

Zabbix: ferramenta para monitoramento de servidores e ativos de rede. Permite coletar informações e definir gatilhos para envio de alertas de acordo com máximas definidas.

 

Comentários