Neste levantamento você encontra uma listinha de ferramentas para considerar em seus projetos DevOps.

Confira!

1 – Docker

Não dá pra falar de DevOps sem falar de containers. E não dá pra falar de containers sem falar de Docker. Embora uma série de iniciativas relacionadas a containers e tecnologias relacionadas tenham sido propostas desde a década de 70, foi o Docker a ferramenta responsável por popularizar a tecnologia, graças ao ecossistema criado em torno da solução.

Containers são mais eficientes que máquinas virtuais, por compartilharem os recursos do S.O., obtendo melhor desempenho em troca de uma menor portabilidade, algo que nem é assim tão relevante atualmente, já que o domínio do Linux na nuvem é claro e as soluções exclusivas para ambiente Microsoft já podem contar com o suporte para containers no mesmo nível, ainda que inicialmente houvesse restrições ao uso de containers neste S.O.

A Docker (a empresa) percebeu que não bastava criar (ou adotar, já que inicialmente o Docker usava o LXC, somente depois desenvolveu sua solução própria) uma tecnologia de virtualização melhor que as máquinas virtuais. Era necessário criar um conjunto de ferramentas pra simplificar e acelerar tarefas como aprovisionamento, configuração e orquestração de containers. E assim nasceram soluções como o docker-compose, docker machine e docker swarm, dentre muitas outras.

2 – Git/Github/Gitlab

Se o Docker resolve a parte “Ops” da equação, é o Github que resolve a parte “Dev”. E o Gitlab é o “Github para empresas”, permitindo acesso aos recursos de um gerenciador de repositório de software baseado em git, com suporte a Wiki, gerenciamento de tarefas e CI/CD, tudo isso de forma gratuita, dentro do ambiente da empresa.

Uma solução completa para DevOps, entregue como uma aplicação única, englobando planejamento do projeto, gestão de código fonte, CI/CD, monitoramento e segurança. Como usuário da ferramenta, posso atestar que ela cumpre o que promete, e com uma simplicidade incrível, embora haja uma curva de aprendizado a ser superada no início.

Saiba mais...  Como pesquisar posts públicos do #Google #Buzz no #GMail

O gitlab pode ser usado na nuvem também, caso prefira não ter que se preocupar com instalação e configuração de ferramentas, e oferece algumas vantagens em relação ao Github, que também tem versão gratuita do serviço na nuvem, pois permite projetos privados, algo que somente é possível em versões comerciais da solução recém adquirida pela Microsoft.

3 – Kubernetes

A solução de orquestração de containers criada pela Google cresceu vertiginosamente nos últimos anos e se tornou quase uma unanimidade no mercado, a ponto de ser considerado o Linux da nuvem.

Num mundo orientado a microsserviços, a tendência natural é a proliferação de containers, e quem já viu esse filme com as máquinas virtuais sabe bem o tamanho do problema quando se tem muitas máquinas virtuais e poucos recursos de gerenciamento. A Google percebeu isso logo e conseguiu ir além do que a Docker já vinha fazendo com o Swarm, se estabelecendo como mais que um concorrente, mas o padrão de fato para orquestração de containers, a ponto da própria Docker aceitar a necessidade de oferecer recursos para integração com o K8S (essa é a sigla criada por preguiçosos da digitação pra não ter que digitar o nome completo da solução :).

Atualmente há “distribuições Kubernetes” de vários fornecedores e até uma certificação para as soluções do ecossistema. Com isso se torna cada vez maior a quantidade de empresas que oferecem o K8S embarcado em seus produtos, oferecendo assim mais recursos para gerenciar e escalar a infraestrutura que suporta as aplicações da organização.

4 – Jenkins

Focado em escalabilidade e automação, o Jenkins é, assim como o Gitlab, uma solução para CI/CD, que suporta uma infinidade de plugins e permite construir uma esteira automatizada, flexível e segura para gestão do processo de desenvolvimento, teste e implantação de sistemas de forma automatizada.

Saiba mais...  Tem coisas que só o Linux faz por você

O Jenkins é a solução líder de mercado, chegando a 65% de market share segundo alguns levantamentos, e oferece mais recursos que o Gitlab que comentamos anteriormente. Por outro lado, espere uma curva de aprendizado maior, assim como a complexidade envolvida na criação do fluxo de etapas para build, test e deploy das aplicações.

5 – Ansible

Ansible é atualmente a solução mais badalada quando se trata de automação para a infraestrutura de TI. A solução, que não precisa de agentes instalados nas máquinas, permite automatizar tarefas de rotina operacional como aprovisionamento de serviços, gestão de configuração, implantações de mudanças e outras atividades.

Alguns dos recursos que é possível utilizar nos chamados playbooks, os scripts de configuração utilizados pelo Ansible pra realizar as ações nas máquinas através de ssh, incluem:

  • Obter dados do ambiente dinamicamente e utilizá-los para configurações (ex: IP da máquina);
  • Assumir valores padrão para informações não fornecidas para os scripts de automação (ex: nome/IP do servidor DNS);
  • Usar o resultado de uma operação para decidir sobre outras.

A solução ainda oferece módulos que permitem integrar com equipamentos e soluções de fabricantes como Amazon, Google, VMware, Cisco, Netapp, Juniper e muitas outras.

6 – Juju

Certamente a solução com o nome mais engraçado da lista :P, juju é a ferramenta de orquestração de infraestrutura da Canonical, e deve ser considerada pelos usuários do sistema Ubuntu.

Através do comando “juju”, você pode provisionar bundles e charms, este último indicando aplicações simples, como um mysql, e aquele indicando composições de aplicações com um objetivo, como um ELK (Elastic Searck + Logstash + Kibana) para gestão de logs de servidores.

É uma ferramenta muito poderosa, que permite não apenas provisionar containers pré-configurados com aplicações, mas também máquinas virtuais para hospedar containers, auxiliando tanto na gestão “micro” dos containers quanto na gestão “macro” do cluster de máquinas físicas ou virtuais que hospedam os containers de aplicações.

Saiba mais...  Site da Kaspersky nos EUA é invadido

7 – Nexus

Nexus é um repositório de artefatos simples de instalar, configurar e usar, que possui integração com Gitlab e outras soluções, facilitando muito o armazenamento de imagens de containers e outros itens dentro da infraestrutura da organização.

O produto tem versão gratuita e comercial, sendo fornecido pela Sonatype.

8 – Maven

Maven é uma ferramenta de automação de build de aplicações utilizada frequentemente em projetos Java. É similar à ferramenta Ant, mas é baseada em conceitos e trabalhos diferentes em um modo diferente. Também é utilizada para construir e gerenciar projetos escritos em C#, Ruby, Scala e outras linguagens.

9 – Anchore

Anchore é uma ferramenta para compliance de containers, sendo muito útil para verificar a sua segurança e adequação em termos de conformidade com políticas da organização.

Verificação de vulnerabilidades, identificação de parâmetros de senha e outros potencialmente sensíveis dentro da imagem do container, suporte a whitelist e blacklist de componentes de software no container, checagem de arquivos YML e outros recursos fazem do Anchore uma boa escolha para a segurança dos seus containers.

Conclusão

Espero que a lista de soluções seja útil, e agradeço caso tenha observações sobre alguma novidade dos serviços aqui listados.