Principais Ferramentas DevOps

 

Jenkins

Trata-se de um servidor de automação gratuito e de código aberto. Ele ajuda a automatizar as partes do desenvolvimento de software relacionadas à construção, teste e implantação, facilitando a integração e entrega contínuas. É um sistema baseado em servidor que é executado em contêineres de servlet como o Apache Tomcat. Permite que você configure e personalize o pipeline de CD conforme as necessidades individuais. É executado no Windows, Linux e macOS X, o que facilita a introdução.

Vantagens:

  1. Automatiza implantações e atualizações de aplicações;

  2. Oferece velocidade para escalar aplicativos em contêineres;

  3. Consegue operar contêineres em múltiplos hosts;

  4. Permite o uso do hardware de forma otimizada, o que ajuda a economizar recursos.

  5. Não limita o tipo de aplicativos suportados. Kubernetes oferece suporte a uma carga diversificada de aplicações;

  6. Fluxos de trabalho de integração e entrega são determinados pela cultura de preferência da organização;

  7. Não dita as soluções, e sim fornece algumas integrações e mecanismos para coletar dados e métricas;

  8. Não fornece (e nem exige) idioma ou linguagem específica para a configuração dos sistemas.

Docker

O docker é uma plataforma Open Source escrita na linguagem de programação desenvolvida no Google, o Go. O docker utiliza o LXC (Linux Containers), um sub-sistema do kernel do Linux, o que permite que ele utilize apenas recursos isolados ao invés de um Sistema Operacional completo, como acontece nos ambientes de virtualização tradicionais.
Assim, uma plataforma container docker reúne partes de softwares de um sistema completo de arquivo, com todos os recursos que a sua execução precisa, criando ambientes mais leves e isolados para rodar os programas.

Vantagens:
  1. Economia significativa de recursos

  2. Disponibilidade maior do sistema

  3. Possibilidade de compartilhamento

  4. Gerenciamento facilitado

  5. Similaridade dos ambientes

  6. Aplicação como pacote completo

  7. Padronização e replicação

Kubernetes

Orquestrador de contêineres open-source, o Kubernetes é um sistema de automatiza a implantação, o dimensionamento e a gestão de aplicações em contêineres. Ele foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation.


Vantagens:

  1. Automatiza implantações e atualizações de aplicações;

  2. Oferece velocidade para escalar aplicativos em contêineres;

  3. Consegue operar contêineres em múltiplos hosts;

  4. Permite o uso do hardware de forma otimizada, o que ajuda a economizar recursos.

  5. Não limita o tipo de aplicativos suportados. Kubernetes oferece suporte a uma carga diversificada de aplicações;

  6. Fluxos de trabalho de integração e entrega são determinados pela cultura de preferência da organização;

  7. Não dita as soluções, e sim fornece algumas integrações e mecanismos para coletar dados e métricas;

  8. Não fornece (e nem exige) idioma ou linguagem específica para a configuração dos sistemas.

Kibana

É uma plataforma que trabalha em conjunto com o Elasticsearch, ferramenta desenvolvida em java e open source para buscas e também um NoSQL de armazenamento de dados.


Vantagens:

  1. Visualização de uma grande quantidade de dados organizados em gráficos de diversas formas, que podem ser personalizados conforme a necessidade.

  2. Facilidade na análise do desempenho dos serviços, com acesso a dashboards dinâmicos atualizados em tempo real.

  3. É possível utilizar o Machine Learning da plataforma para solucionar e automatizar a resolução de problemas.

ElasticSearch

Trata-se de um mecanismo de busca e análise de dados distribuído e open source para todos os tipos de dados, incluindo textuais, numéricos, geoespaciais, estruturados e não estruturados. O Elasticsearch é desenvolvido sobre o Apache Lucene e foi lançado pela primeira vez em 2010 pela Elasticsearch N.V. (agora conhecida como Elastic). Conhecido por suas APIs REST simples e sua natureza, velocidade e escalabilidade distribuídas, o Elasticsearch é o componente central do Elastic Stack, um conjunto de ferramentas open source para ingestão, enriquecimento, armazenamento, análise e visualização de dados. Comumente chamado de ELK Stack (com base nos nomes por extenso Elasticsearch, Logstash e Kibana), o Elastic Stack agora inclui uma coleção sofisticada de agentes de envio leves conhecidos como Beats para enviar dados ao Elasticsearch.

Vantagens:

  1. Novas opções de busca: Um dos maiores benefícios do ElasticSearch é a quantidade de opções de busca que o serviço adiciona às suas plataformas de dados. O recurso permite, por exemplo, buscar pelas palavras dentro de um texto e buscar textos extensos e também autocompleta solicitações de busca para que elas tragam o máximo de resultados relevantes possível.

  2. Suporte a grandes volumes de dados: O ElasticSearch é um dos grandes facilitadores do Big Data, permitindo que as empresas naveguem por grandes conjuntos de informação sem problemas e identifiquem sempre as informações mais recentes e úteis para o processo de tomada de decisão.

  3. Implementação em qualquer sistema: A implementação do ElasticSearch é muito simples. Utilizando o instalador disponível no website e a documentação preparada para oferecer suporte para a ferramenta, qualquer usuário, independentemente do seu nível de conhecimento, consegue implementar o ElasticSearch e dar os seus primeiros passos com a ferramenta.

  4. Solução de busca escalável: Times de desenvolvimento que utilizam ElasticSearch não trocam o recurso por nenhum outro. Afinal, é muito mais fácil escalar a funcionalidade de busca quando o recurso é implementado nos seus sistemas. Como o ElasticSearch é um sistema distribuído por natureza, escalar horizontalmente, adicionando novos recursos e conectando novos clusters de dados, torna-se uma tarefa simples.

  5. Busca rápida e inteligente: A performance é outra das vantagens do ElasticSearch que fazem com que o recurso seja tão bem quisto por desenvolvedores. Executar queries complexas, fazer buscas extensas e ter acesso aos resultados é muito mais rápido quando se utiliza a ferramenta.

Logstash

O LogStash é uma ferramenta open source feita para funcionar no ecossistema open source. Todas as ferramentas do ecossistema do LogStash são instaláveis, configuráveis e gerenciáveis por linha de comando, tornando-as ideal para automação. Ao longo do livro, Turnbull deixa claro que utilizar gerenciamento de configurações automatizado para controlar a instalação e configuração de cada componente LogStash é a melhor escolha. Entretanto, esse assunto está além do escopo do livro, então o próximo ponto interessante coberto pelo livro é instalação e configuração dos componentes do LogStash. Combinar o entendimento da instalação e configuração com a atividade de automação permite construir múltiplos ambiente de forma simples. O esforço é mínimo na montagem de ambientes para as diferentes fases do projeto, Q&A, resolução de problemas e suporte a Entrega Continua (Continuous Delivery).


Git

Amplamente utilizado em todos os setores de software, o Git é uma ferramenta distribuída de SCM (gerenciamento de código-fonte). Permite que você acompanhe facilmente o andamento do seu trabalho de desenvolvimento, onde também é possível salvar versões diferentes do código-fonte e retornar ao anterior, conforme e quando necessário. Requer um repositório hospedado, como o Github ou o Bitbucket, que oferece repositórios privados ilimitados. Gratuita e de código aberto, suporta a maioria dos recursos de controle de versão de check-in, mesclagem, etiquetas, confirmações, ramificações, etc. 



Vantagens:

  1. Rapidez: como os processos são operados localmente, deixa de ser preciso contactar o servidor central para proceder a operações como um commit, log ou diff.

  2. Autonomia: permite trabalhar em modo desconectado, em qualquer local, só sendo necessária uma conexão com a rede para troca de revisões com outros repositórios.

  3. Ramos individuais: contrariamente aos chamados sistemas centralizados, combinar ramos não é uma obrigação para cada commit e antes uma decisão que depende do programador; o trabalho local faz-se num ramo individual que não tem interferência com os demais ramos, mesmo em processos de sincronização entre repositórios.

  4. Facilidade na Fusão: os DVCS usam o rastreamento automático, o que facilita de forma significativa o processo de fusão.

  5. Confiabilidade: com um sistema centralizado, qualquer problema que surja no servidor vai parar todo o trabalho de desenvolvimento. Um sistema distribuído permite que a equipa continue a trabalhar e os repositórios dos programadores servem como cópias de backup, não havendo riscos de perder nada do projecto.

  6. Redução de custos com o servidor: o repositório "central" (se ele existir) funciona como repositório "oficial", ao invés de ter uma função de processador central dos pedidos. Assim, a carga de processamento é distribuída pelas máquinas dos programadores.

Bitbucket

Bitbucket é uma ferramenta de hospedagem e colaboração de código baseada em Git, criada para equipes profissionais de engenharia de software e gestão de projetos. A marca BitBucket foi adquirida pela Atlassian em 2010, o que garante às suas ferramentas integração total com os demais serviços da empresa e ainda workflows do Jira e do Trello.



Vantagens:

  1. Hospeda repositórios Git e Mercurial

  2. Possui suporte para conexões HTTP e SSH

  3. Permite até 5 colaboradores em um mesmo projeto gratuitamente

  4. Possui gerenciador de incidentes (feature requests, bug reports, etc)

  5. Gerenciamento de branches

  6. Rastreamento de commits

  7. Permite snippets

  8. Permite criação de wiki

  9. Permite importar repositórios do Google Code, Subversion e SourceForge porém o usuário deve escolher entre Mercurial e Git para hospedar o novo repositório.

SonarQube 

A ferramenta para garante qualidade do código fonte em desenvolvimento, além de realizar diversas análises durante o processo de compilação da aplicação, detectando por exemplo: Trechos de código fonte que possam gerar bugs.

Fortify

Fortify SCA (Fortify Static Code Analyzer) é uma oferta de teste de segurança de aplicativo estático (SAST) usada por grupos de desenvolvimento e profissionais de segurança para analisar o código-fonte em busca de vulnerabilidades de segurança. Ele revisa o código e ajuda os desenvolvedores a identificar, priorizar e resolver problemas com menos esforço e em menos tempo.










Comentários

Postagens mais visitadas deste blog

Design Patterns

Sistema de mensageria Apache Kafka