Ferramentas DevOps que todos deveriam aprender em 2020

Comece a usar as melhores ferramentas DevOps hoje mesmo!

Ferramentas DevOps que todos deveriam aprender em 2020
A revolução DevOps finalmente tomou conta do mundo e as ferramentas DevOps se tornaram incrivelmente populares. De acordo com o serviço Google Trends, o número de solicitações de “ferramentas DevOps” cresce constantemente e essa tendência continua.

A metodologia DevOps cobre todo o ciclo de vida de desenvolvimento de software, para que os profissionais possam escolher entre uma variedade de ferramentas. Mas, como você sabe, nenhuma ferramenta pode se tornar uma ferramenta universal para todos. No entanto, algumas soluções oferecem uma gama tão ampla de funções que podem realizar praticamente qualquer tarefa.

Vamos dividir as ferramentas DevOps em categorias e compará-las com análogos:

  • ferramentas de desenvolvimento e construção
  • ferramentas de automação de testes
  • ferramentas para organizar a implantação
  • Ferramentas de tempo de execução
  • ferramentas de colaboração.

Implementação bem-sucedida e cuidadosa Praticante de DevOps inclui instrumentos de todos os cinco grupos listados acima. Analise o conjunto atual de ferramentas em seu projeto para não perder um elemento importante do pipeline de CI/CD.

Ferramentas de desenvolvimento e construção

Ferramentas DevOps que todos deveriam aprender em 2020
Esta é a base da pilha de pipeline CI/CD. Tudo começa aqui! As melhores ferramentas nesta categoria podem gerenciar vários fluxos de eventos e integrar-se facilmente com outros produtos.

Nesta fase do ciclo de vida de desenvolvimento, existem três grupos de ferramentas:

  • sistema de controle de versão (SCM)
  • integração contínua (CI)
  • Gestão de dados

O GIT teve um histórico positivo em 2020, portanto, sua ferramenta SCM deve ter suporte contínuo para o GIT. Para CI, um pré-requisito é a capacidade de executar e executar compilações em um ambiente de contêiner isolado. Quando se trata de gerenciamento de dados, é necessária a capacidade de fazer alterações no esquema do banco de dados e manter o banco de dados de acordo com a versão do aplicativo.

Ferramenta SCM + CI nº 1

Vencedor: GitLab e GitLab-CI

Ferramentas DevOps que todos deveriam aprender em 2020
A melhor ferramenta do ciclo DevOps 2020 é sem dúvida o GitLab, e com certeza continuará a liderar a inovação no futuro próximo.

A principal função do GitLab é fornecer gerenciamento confortável de um repositório Git. A interface web é intuitiva e fácil de usar. GitLab oferece tudo que você precisa em uma versão gratuita e vem como SaaS e local (usando seus próprios recursos para hospedar software).

Nenhuma outra ferramenta SCM usou integração contínua (CI) diretamente em seu repositório, e o GitLab já faz isso há muito tempo. Para usar o GitLab-CI, você deve adicionar um arquivo .gitlab-ci.yml à raiz do código-fonte e quaisquer alterações no projeto acionarão ações com base exatamente no que você especificou. GitLab e GitLab-CI são merecidamente reconhecidos como líderes na área de integração contínua (CI-as-code).

Principais benefícios

  • Confiabilidade – O produto está no mercado desde 2013; estábulo; bem apoiado.
  • Código aberto - A versão gratuita do GitLab não limita a funcionalidade principal que as equipes de desenvolvimento precisam. Pacotes de serviços pagos fornecem recursos úteis adicionais para empresas de diversos tamanhos e necessidades.
  • CI enraizado – Nenhuma outra ferramenta no mercado construiu integração contínua diretamente no SCM como o GitLab-CI. O uso do Docker garante compilações isoladas e descomplicadas, e os relatórios integrados facilitam a depuração. Não exigimos integração e gerenciamento complexos de diversas ferramentas ao mesmo tempo.
  • Integrações ilimitadas - GitLab fornece integração fácil de todas as ferramentas DevOps que você precisa. Isso garante que as equipes de desenvolvimento e manutenção tenham uma única fonte de informações sobre suas aplicações em qualquer ambiente.

concorrentes

Participou da batalha, mas não venceu

Existem outras ferramentas populares nesta categoria, mas não são tão boas quanto o GitLab. E é por causa disso:

GitHub — Este é um excelente sistema de controle de versão SaaS para pequenas empresas e estágios iniciais de desenvolvimento. Para grandes empresas para as quais é importante manter endereços IP em rede própria, a única solução do GitHub foi a máquina virtual .OVA sem suporte para sistemas de alta disponibilidade. Isso dificulta a manutenção no local; além disso, .OVA só é adequado para empresas de médio porte, caso contrário o servidor simplesmente travará sob carga maior. A falta de GitHub Actions (até recentemente e ainda não em uma versão local) ou CI como código significa que você precisa escolher uma ferramenta de CI separada e então gerenciar essa integração. Finalmente, o GitHub é muito mais caro que qualquer uma das versões do GitLab.

Jenkins — Embora Jenkins seja considerado o padrão entre as ferramentas de integração contínua por padrão, sempre faltou recursos de controle de versão. Acontece que você está usando Jenkins e algum tipo de ferramenta SCM. É muito difícil quando o GitLab pode fazer as duas coisas. O design UX medíocre não é adequado para uma aplicação web moderna e deixa muito a desejar.

BitBucket/Bambu — Devo reconhecê-lo como um perdedor automático: por que duas ferramentas quando o GitLab faz tudo de forma totalmente independente. BitBucket Cloud oferece suporte à funcionalidade GitLab-CI / GitHub Action, mas nenhuma empresa maior do que uma startup pode implementá-la facilmente. O servidor BitBucket local nem suporta pipelines BitBucket!

Ferramenta nº 1 de gerenciamento de dados

Vencedor: FlywayDB

Ferramentas DevOps que todos deveriam aprender em 2020
No desenvolvimento de aplicações web, a automação de banco de dados geralmente não recebe importância. A ideia de implantar alterações no esquema do banco de dados para novas versões da aplicação chega tarde. As alterações de esquema geralmente resultam na adição e renomeação de colunas ou tabelas. Se a versão do aplicativo não corresponder à versão do esquema, o aplicativo poderá travar. Além disso, gerenciar alterações no banco de dados ao atualizar um aplicativo pode ser um desafio, pois existem dois sistemas diferentes. FlyWayDB resolve todos esses problemas.

Principais benefícios

  • Controle de versão de banco de dados - Flyway permite criar versões de banco de dados, rastrear migrações de banco de dados e transferir ou reverter facilmente alterações de esquema sem uma ferramenta adicional para isso.
  • Binário ou Embutido - Podemos optar por executar o Flyway como parte do aplicativo ou como um executável binário. Flyway verifica a compatibilidade de versões na inicialização e inicia as migrações apropriadas, mantendo as versões do banco de dados e do aplicativo sincronizadas. Ao executar o comando cmd line ad-hoc, oferecemos flexibilidade aos bancos de dados existentes sem reconstruir o aplicativo inteiro.

concorrentes

Participou da batalha, mas não venceu

Não existem muitas ferramentas nesta área. Vejamos alguns deles:

LiquiBaseGenericName — Liquibase se assemelha ao FlywayDB. Eu gostaria de colocá-lo em cima do Flyway se tivesse alguém na minha equipe com mais experiência com Liquibase.

Floqueiro - Só pode funcionar para aplicativos em contêineres. Para executar bancos de dados em contêineres com sucesso, tudo deve ser planejado perfeitamente. Recomendo usar RDS (Relational Database Service) para bancos de dados e não aconselho armazenar informações importantes em um container.

Ferramentas de automação de testes

Ferramentas DevOps que todos deveriam aprender em 2020
Vamos começar nossa discussão sobre ferramentas de automação de testes classificando-as com base na pirâmide de testes.

A pirâmide de testes (testes) possui 4 níveis:

  • Testes Unitários – Esta é a base de todo o processo de testes automatizados. Deveria haver mais testes unitários em comparação com outros tipos de testes. Os desenvolvedores escrevem e executam testes de unidade para garantir que uma parte de um aplicativo (conhecida como “unidade”) esteja em conformidade com seu design e se comporte conforme o esperado.
  • Component Tests - O objetivo principal do teste de componentes é verificar o comportamento de entrada/saída do objeto de teste. Devemos garantir que a funcionalidade do objeto de teste seja implementada corretamente de acordo com a especificação.
  • Testes de integração – Um tipo de teste em que módulos de software individuais são combinados e testados como um grupo.
  • Testes ponta a ponta - Esta etapa é autoexplicativa. Monitoramos todo o aplicativo e garantimos que ele funcione conforme planejado.

Como os testes unitários e os testes de componentes são realizados apenas por desenvolvedores e geralmente são específicos da linguagem de programação, não avaliaremos essas ferramentas para o domínio DevOps.

Ferramenta de teste de integração nº 1

Vencedor: Pepino

Ferramentas DevOps que todos deveriam aprender em 2020
Cucumber combina especificações e documentação de teste em um único documento vivo. As especificações estão sempre atualizadas, pois são testadas automaticamente pela Cucumber. Se você deseja construir uma estrutura de teste automatizado do zero e modelar o comportamento do usuário em um aplicativo da web, o Selenium WebDriver com Java e Cucumber BDD é uma ótima maneira de aprender e implementar o Cucumber em um projeto.

Principais benefícios

  • Abordagem BDD (Behavior Driven Development - “desenvolvimento através do comportamento” em oposição à abordagem “desenvolvimento orientado a testes”) - Cucumber foi projetado para testes BDD, foi originalmente criado para esta mesma tarefa.
  • Documentação Viva - Documentação é sempre uma dor! Como seus testes são escritos como código, o Cucumber testa a documentação gerada automaticamente para garantir que os testes e a documentação estejam sincronizados.
  • Suporte - Podemos escolher entre várias ferramentas, mas o Cucumber possui os recursos financeiros necessários e um sistema de suporte bem organizado para ajudar os usuários em qualquer situação difícil.

concorrentes

Participou da batalha, mas não venceu

Entre outros frameworks e ferramentas específicas de tecnologia, apenas o Cucumber pode ser considerado uma solução universal.

Ferramentas de teste ponta a ponta

Ao conduzir testes ponta a ponta, você precisa se concentrar em dois pontos principais:

  • teste funcional
  • Teste de estresse.

Nos testes funcionais, verificamos se tudo o que queremos realmente acontece. Por exemplo, quando clico em determinados elementos do meu SPA (aplicativo de página única), preencho os formulários e seleciono “Enviar”, os dados aparecem no banco de dados e a mensagem “Sucesso!” aparece na tela.

Também é importante verificarmos se um determinado número de usuários executando o mesmo cenário pode ser processado sem erros.

A ausência desses 2 tipos de teste será uma desvantagem significativa em seu pipeline de CI/CD.

Ferramenta de teste ponta a ponta nº 1. Teste funcional

Vencedor: SoapUI Pro

Ferramentas DevOps que todos deveriam aprender em 2020
SoapUI está no espaço de testes de API há muito tempo, desde que os serviços da web baseados em SOAP eram o padrão. Embora não criemos mais novos serviços SOAP e o nome da ferramenta não tenha mudado, isso não significa que ela não tenha evoluído. SoapUI fornece uma excelente estrutura para a criação de testes funcionais de back-end automatizados. Os testes podem ser facilmente combinados com ferramentas de integração contínua e usados ​​como parte de um pipeline de CI/CD.

Principais benefícios

  • Documentação detalhada - o SoapUI está no mercado há bastante tempo, portanto, existem muitos recursos online que podem ajudá-lo a entender como configurar testes.
  • Facilidade de uso - Embora a ferramenta suporte vários protocolos para testar APIs, a presença do SoapUI de uma interface comum para vários serviços facilita a escrita de testes.

concorrentes

Participou da batalha, mas não venceu

Selênio é outro grande instrumento deste grupo. Eu recomendo usá-lo se você estiver construindo e executando um aplicativo baseado em Java. No entanto, se você estiver criando um aplicativo Web completo com diversas tecnologias, ele poderá se tornar complicado para componentes não Java.

Ferramenta de teste ponta a ponta nº 1. Teste de estresse

Vencedor: LoadRunner

Ferramentas DevOps que todos deveriam aprender em 2020
Explicação: Quando chega a hora de testar cada elemento do seu aplicativo, apenas o LoadRunner pode concluir a tarefa. Sim, é caro e difícil no começo, mas LoadRunner é a única ferramenta que me dá, como arquiteto técnico, total confiança de que o novo código funcionará sob condições extremas de carga. Além disso, acho que é hora de o LoadRunner ser assumido por equipes de desenvolvimento, em vez de equipes de teste.

Principais benefícios

  • Documentação extensa - O LoadRunner está no mercado há algum tempo, portanto, existem muitos recursos online para ajudá-lo a entender como configurar testes de carga.
  • Suporte a protocolo - Load Runner oferece suporte a tudo, desde ODBC a AJAX, HTTPS e qualquer outro protocolo não trivial que seu aplicativo possa usar. Tentamos não usar diversas ferramentas para testes de carga, pois isso só complica o processo.

concorrentes

Participou da batalha, mas não venceu

Novamente, não existem muitas ferramentas universais nesta área, então a melhor solução é aquela que funcionará em qualquer ambiente com qualquer tecnologia.

Ferramentas de implantação

Ferramentas DevOps que todos deveriam aprender em 2020
As ferramentas de implantação são provavelmente o aspecto menos compreendido do desenvolvimento. Para uma equipe de operações sem um conhecimento profundo do código e da funcionalidade do aplicativo, é difícil usar tais ferramentas. Para os desenvolvedores, o gerenciamento de implantação é uma nova responsabilidade, portanto, eles ainda não têm experiência suficiente em trabalhar com essas ferramentas.

Primeiro de tudo, vamos dividir todas as ferramentas de implantação em três subcategorias:

  • gerenciamento de artefatos
  • gerenciamento de configurações
  • implantar.

Ferramenta nº 1 de gerenciamento de artefatos

Vencedor: Nexus

Ferramentas DevOps que todos deveriam aprender em 2020
O repositório de artefatos Nexus oferece suporte a quase todas as principais tecnologias, de Java a NPM e Docker. Podemos usar esta ferramenta para armazenar todos os artefatos que usamos. O proxy de gerenciadores de pacotes remotos também acelera significativamente o processo de construção de CI, tornando os pacotes mais acessíveis para construção. Outra vantagem é a capacidade de obter uma visão completa de todos os pacotes utilizados em diversos projetos de software, bloqueando pacotes de código aberto inseguros (eles podem atuar como um vetor de ataque).

Principais benefícios

  • Suporte técnico - Produto confiável; bem apoiado.
  • Código aberto – A versão gratuita não limita a funcionalidade principal que as equipes de desenvolvimento precisam.

Ferramenta de gerenciamento de configuração nº 1

Vencedor: Ansible

Ansible é líder por um motivo simples: apátrida. Anteriormente, ferramentas semelhantes focavam no gerenciamento do estado de configuração. Ao ser iniciada, tal ferramenta, tendo recebido a configuração desejada, tentará corrigir a configuração atual da aplicação. E com a nova abordagem, apenas componentes sem estado estão presentes. Novas versões de código são artefatos implantados para substituir os existentes. Isso pode ser considerado uma espécie de ambiente efêmero e de curto prazo.

Principais benefícios

  • Stateless – O Playbook é iniciado na máquina de implantação e executado nos servidores de destino. Não preciso me preocupar com o estado do objeto remoto usando uma ferramenta como o Packer para criar objetos implantáveis.
  • Código aberto – assim como o CentOS, o Ansible também é suportado pelo RedHat. Ajuda a manter a comunidade e fornece módulos fáceis de usar e de alta qualidade.
  • Testando com Molecule (uma estrutura Ansible) - Como o gerenciamento de configuração é código, como tudo mais, o teste é essencial. A estrutura de teste de função Ansible do Molecule funciona perfeitamente, garantindo que a configuração tenha a mesma qualidade e siga o mesmo pipeline de CI/CD do código do aplicativo.
  • YAML – Comparado a outras ferramentas, o YAML é mais fácil de entender. Como o gerenciamento de configuração costuma ser um novo desafio para quem implementa práticas de DevOps, a simplicidade é seu trunfo.

concorrentes

Participou da batalha, mas não venceu

Chefe de código operacional — Comecei minha carreira em DevOps como desenvolvedor de livros de receitas. É claro que Ruby e Chef são muito queridos, mas eles simplesmente não resolvem os problemas dos aplicativos modernos, sem estado e nativos da nuvem. OpsCode Chef é uma ótima ferramenta para aplicações mais tradicionais, mas neste artigo estamos focados no futuro.

Fantoche — O Puppet nunca teve muitos fãs, principalmente em comparação com Chef e Ansible. É ótimo para provisionar e trabalhar com hardware, mas carece de suporte moderno de gerenciamento de configuração para um aplicativo Web.

Ferramenta de implantação nº 1

Vencedor: Terraform

Ferramentas DevOps que todos deveriam aprender em 2020
O Terraform resolve o problema de descrever sua infraestrutura como código, desde componentes de rede até imagens completas de servidor. Este produto percorreu um longo caminho desde seu lançamento inicial, com tantos plug-ins criados e uma comunidade tão forte construída que você certamente obterá ajuda em qualquer cenário de implantação. A capacidade de oferecer suporte a qualquer tipo de ambiente (local, na nuvem ou em outro lugar) é incomparável. Por fim, a versão mais recente fornece muitas das mesmas funções lógicas e classes em HCL que qualquer outra linguagem de programação tradicional, tornando o Terraform fácil e rápido para os desenvolvedores.

Principais benefícios

  • Agnóstico ao ambiente - o Terraform usa funções que atuam como uma interface entre o código do Terraform, todas as APIs e a lógica interna para se comunicar com o provedor de infraestrutura. Isso significa que dominarei apenas uma ferramenta e depois poderei trabalhar em qualquer lugar.
  • Código Aberto - É difícil superar as ferramentas gratuitas! Apoio comunitário ao mais alto nível.

concorrentes

Participou da batalha, mas não venceu

Formação da Nuvem AWS — Mesmo que você trabalhe apenas no ambiente de nuvem AWS, seu próximo trabalho poderá usar uma ferramenta diferente. Dedicar todo o seu tempo e energia a apenas uma plataforma é uma decisão míope. Além disso, muitos novos serviços da AWS geralmente estão disponíveis como módulos Terraform antes de serem disponibilizados no CloudFormation.

Ferramentas de tempo de execução

Ferramentas DevOps que todos deveriam aprender em 2020

O objetivo final de qualquer projeto de desenvolvimento é lançar o aplicativo em produção. No mundo DevOps, queremos estar plenamente conscientes de todos os possíveis problemas do nosso ambiente e também queremos minimizar a intervenção manual. Escolher o conjunto certo de ferramentas de tempo de execução é essencial para alcançar o nirvana do desenvolvimento de aplicativos.

Subcategorias de ferramentas de tempo de execução:

  • X como serviço (XaaS)
  • orquestração
  • monitoramento
  • exploração madeireira.

Ferramenta X como serviço nº 1

Vencedor: Amazon Web Services

Ferramentas DevOps que todos deveriam aprender em 2020
A Amazon sempre foi líder em tecnologias de nuvem, mas não para por aí: a variedade de novos serviços para desenvolvedores é reveladora. Traga qualquer tecnologia e modelo para a AWS e ele será criado e executado. O custo da ferramenta é bastante razoável: compare-o com a montagem, gerenciamento e manutenção de equipamentos em seu próprio data center. A versão gratuita permite experimentar e tomar a decisão certa antes de gastar dinheiro.

Principais benefícios

  • Prevalência – Se você tiver experiência na criação de aplicativos na AWS, poderá trabalhar em qualquer lugar. As empresas adoram a AWS e as startups também apreciam seu baixo custo.
  • A versão gratuita é um fator verdadeiramente significativo que diferencia a AWS de seus concorrentes. Deixe-me experimentar o serviço e ver como funciona antes de tomar uma decisão de compra, não quero gastar milhares de dólares em algo desnecessário. A versão gratuita é sempre suficiente para testar qualquer conceito.

concorrentes

Participou da batalha, mas não venceu

Azul “O Azure percorreu um longo caminho desde seu primeiro lançamento, e isso é louvável. Porém, a vontade de ser diferente tem levado a nomes estranhos para os serviços, o que muitas vezes complica o trabalho. O que significa "armazenamento de blobs"? E embora o código .NET tenha melhor desempenho no ecossistema da Microsoft, é improvável que você use apenas .NET para cada componente do seu aplicativo.

Heroku — Eu nunca executaria nada além de um projeto pessoal no Heroku devido ao baixo nível de confiabilidade e transparência, portanto as empresas não deveriam utilizá-lo como plataforma. Heroku é ótimo para demonstrar algo em um blog, mas para uso prático - “Não, obrigado!”

Ferramenta de orquestração nº 1

Vencedor: OpenShift

Ferramentas DevOps que todos deveriam aprender em 2020
Você provavelmente está usando o Docker ou outros contêineres na pilha de aplicativos. Os aplicativos sem servidor são ótimos, mas podem não se adequar a todas as arquiteturas. Executar contêineres sem uma plataforma de orquestração simplesmente não funcionará. O Kubernetes Core (K8s) é incomparável em termos de segurança e ferramentas. OpenShift é a única plataforma baseada em Kubernetes que pode coletar Source2Image, oferece suporte à implantação automatizada em pods e ao rastreamento e monitoramento. O OpenShift pode ser executado no local, na nuvem ou no local e na nuvem ao mesmo tempo.

Principais benefícios

  • Segurança Integrada - O gerenciamento da segurança do K8s pode exigir um diploma avançado. Cada detalhe deve ser cuidadosamente pensado e levado em consideração! Os mecanismos de segurança integrados por padrão no OpenShift aliviam a carga dos desenvolvedores e fornecem uma plataforma mais segura para aplicativos.
  • Solução completa - Ao contrário dos K8s básicos, que não incluem ferramentas de balanceamento de carga por padrão, o OpenShift tem tudo. Posso usá-lo para criar e hospedar contêineres, executar ferramentas de CI/CD, gerenciar processos externos, gerenciar chaves e muito mais. Embora a interface gráfica do usuário ainda esteja longe de ser perfeita, a abordagem baseada em API significa que tudo pode ser descrito em um script. Ao contrário de outras GUIs para K8s, o OpenShift torna o aprendizado do básico do Kubernetes muito mais fácil. Você nem precisa se formar!

concorrentes

Participou da batalha, mas não venceu

Docker swarm - Docker Swarm tentou simplificar K8s livrando-se de muitas coisas. É ótimo para aplicações pequenas, mas para aplicações empresariais simplesmente não funciona. Além disso, soluções como AWS ECS adotam uma abordagem semelhante, mas facilitam o trabalho com outros serviços com os quais também posso interagir (Lambda, IAM, etc.).

Ferramenta de monitoramento nº 1

Vencedor: Nova Relíquia

Ferramentas DevOps que todos deveriam aprender em 2020
Os primeiros lançamentos do New Relic fizeram uma coisa bem: monitoramento de APM (Application Performance Monitoring). Agora é uma ferramenta de monitoramento completa que permite monitorar o desempenho do servidor, do contêiner, do banco de dados, o monitoramento da experiência do usuário final e, claro, o monitoramento do desempenho do aplicativo.

Principais benefícios

  • Facilidade de uso – Quando trabalhei como engenheiro de sistemas, usei muitas ferramentas de monitoramento, mas nunca encontrei uma tão simples e fácil de usar como o New Relic. É SaaS, então você não precisa instalá-lo sozinho.
  • Visibilidade ponta a ponta – Outras ferramentas tentam monitorar um elemento específico da sua aplicação. Por exemplo, uma métrica de uso do processador ou tráfego de rede, mas tudo isso deve ser monitorado de forma abrangente para que a aplicação funcione corretamente. O New Relic oferece a capacidade de reunir todos os seus dados para obter uma visão abrangente do que está acontecendo.

concorrentes

Participou da batalha, mas não venceu

Zabbix — Meu primeiro e favorito sistema de monitoramento, mas ficou no passado devido à falta de desenvolvimento em tecnologias de nuvem e na área de monitoramento de desempenho de aplicações APM. O Zabbix ainda monitora bem a infraestrutura de servidores tradicionais, mas isso é tudo.

DataDog — Muito focado no processo de gerenciamento do ambiente de produção da aplicação, e não no código em si. Com equipes de DevOps que envolvem desenvolvedores, não precisamos depender de ferramentas difíceis de usar para fornecer suporte de alto nível.

Ferramenta de registro nº 1

Vencedor: Splunk

Ferramentas DevOps que todos deveriam aprender em 2020
É difícil competir com o Splunk! Por muito tempo ele continua sendo o líder na exploração madeireira, continuando a fazê-lo melhor do que ninguém. Com ofertas locais e SaaS, você pode usar o Splunk em qualquer lugar. A grande desvantagem é o preço: o Splunk ainda é muito caro!

Principais benefícios

  • Difusão - As empresas adoram o Splunk e têm dinheiro para comprá-lo.
  • Embora as startups estejam tentando recuperar custos, muitas funções podem ser resolvidas graças a análogos de código aberto.
  • Manutenção - Simplificando, o Splunk funciona e faz bem. Ele vem com muitas configurações e recursos padrão prontos para uso. Não há necessidade de perder tempo lendo documentação e tentando fazer o Splunk funcionar ou decifrar qualquer coisa.

concorrentes

Participou da batalha, mas não venceu

Pilha ELK (ElasticSearch, LogStash e Kibana) “Essas ferramentas parecem ser as favoritas porque você nem precisa vender seu fígado para usá-las.” Porém, à medida que o conjunto de logs cresce e o número de aplicativos a bordo aumenta, o trabalho se torna cada vez mais difícil. Comparado ao Splunk, com o ELK Stack passei muito mais tempo configurando as ferramentas antes de criar qualquer painel do que antes.

Ferramentas de colaboração

Ferramentas DevOps que todos deveriam aprender em 2020
DevOps trata principalmente de mudar a cultura dentro de uma organização. A compra de qualquer ferramenta não mudará as práticas atuais da noite para o dia, mas certamente pode encorajar a colaboração e novas formas de interação.

Subcategorias de ferramentas de colaboração:

  • rastreamento de tarefas
  • Operações de bate-papo
  • documentação

Ferramenta nº 1 de rastreamento de problemas

Vencedor: Jira

Ferramentas DevOps que todos deveriam aprender em 2020
Jira mantém a sua posição de liderança, embora a concorrência nesta área esteja a aumentar. A incrível flexibilidade do Jira permite que as equipes de desenvolvimento e manutenção gerenciem o trabalho do projeto e as tarefas do sprint. Padrões integrados que usam a terminologia Agile facilitam a transição de formas tradicionais de trabalho para processos mais eficientes.

Principais benefícios

  • Popularidade – Como muitas outras ferramentas, o Jira é usado em quase todos os lugares. As equipes pequenas usam a versão mais barata e acessível e obtêm tudo o que precisam, enquanto as empresas maiores podem pagar uma licença mais cara.
  • Integrações - Jira é pioneira em sua área. Este facto e o rápido desenvolvimento do produto fazem com que outras empresas optem pelo Jira para criar as suas próprias integrações, aumentando assim o valor da ferramenta. Podemos integrar o Jira com todas as ferramentas listadas neste artigo prontas para uso com um pouco de configuração.

concorrentes

Participou da batalha, mas não venceu

Trello — O Trello rapidamente ganhou popularidade graças à sua ferramenta Kanban gratuita. No entanto, uma vez que os processos são dimensionados e você passa de dezenas de tarefas para milhares, o Trello se torna difícil de navegar, pesquisar e gerar relatórios.

Rastreador Pivotal — Eu era um grande fã dessa ferramenta quando trabalhei para uma startup. No entanto, o Pivotal Tracker está mais focado no gerenciamento de produtos do que em tarefas técnicas. Embora o gerenciamento de produtos no Jira seja um pouco mais complexo, ele ainda pode ser implementado lá sem o uso de uma ferramenta adicional.

Ferramenta ChatOps nº 1

Vencedor: Mais importante

Ferramentas DevOps que todos deveriam aprender em 2020
Explicação: Talvez a maior surpresa para você na minha seleção, e isso é uma boa notícia! MatterMost ganhou popularidade ao aproveitar o melhor das ferramentas anteriores, mas colocá-las no local. Isso é muito importante para as empresas: o MatterMost permite controlar seus dados e também ajuda a integrá-los com ferramentas executadas localmente. Não precisamos mais sair do firewall para verificar os chats de trabalho.

Principais benefícios

  • Código aberto – A versão de código aberto do MatterMost funciona muito bem para equipes de médio e grande porte. Ao contrário do plano gratuito do Slack, que exclui seu histórico de mensagens, executar seu próprio servidor significa manter todos os seus dados.
  • Integrações - Como a API é quase 100% baseada na API do Slack, quase todas as integrações do Slack podem ser usadas diretamente com o MatterMost.

concorrentes

Participou da batalha, mas não venceu

Slack — Slack é legal, mas esses caras cresceram tanto que começaram a buscar lucro. Aproxima-se a fase de retorno do negócio, o que tira seu principal valor: o Slack prestava serviços gratuitamente; A desvantagem mais importante da versão gratuita é a exclusão do histórico de bate-papo.

Microsoft Teams — Tente integrar um produto Microsoft com algo que não seja propriedade da Microsoft... Boa sorte! Isso é tudo que tenho a dizer sobre esta ferramenta!

Ferramenta de documentação nº 1

Vencedor: Confluence

Ferramentas DevOps que todos deveriam aprender em 2020
Criar e manter documentação técnica de qualidade é um processo complexo, independentemente da ferramenta usada. Embora muitas ferramentas de documentação SaaS tenham entrado no mercado recentemente, seria difícil terceirizar o armazenamento de documentação técnica sobre aplicativos de missão crítica para terceiros. É preferível armazenar dados e documentos no local, e é assim que o Confluence resolve isso.

Principais benefícios

  • Fácil de operar - A maioria das ferramentas independentes pode ser um pouco complexa de configurar e operar e requer algum conhecimento para manutenção. O Confluence Server funciona muito bem imediatamente para 10 ou 10,000 usuários.
  • Plugins - Parabéns ao Confluence por ter uma navegação bonita e fácil de usar pronta para uso, e a capacidade de adicionar um plugin para quase tudo desbloqueia o potencial semelhante ao Wiki.

concorrentes

Participou da batalha, mas não venceu

Leia a documentação — Legal para código aberto, mas nem pense em armazenar conhecimento crítico aqui.

Markdown - Ótimo para documentar código, mas difícil de postar arquitetura, processos ou outros tipos de documentação devido à formatação específica do MarkDown.

Jekyll — Ao documentar conhecimento técnico, não quero criar um novo site estático que será implantado sempre que houver uma mudança. O sistema simples de controle de versão do Confluence simplifica bastante a documentação interna.

Resumir

Existem literalmente centenas de ferramentas DevOps no mercado, tornando difícil saber quais usar e quando devem ser implementadas. Siga este guia simples para escolher ferramentas DevOps para um pipeline de CI/CD completo.

Certifique-se de selecionar ferramentas de todas as cinco categorias:

  • ferramentas de desenvolvimento e construção
  • ferramentas de automação de testes
  • ferramentas de implantação
  • Ferramentas de tempo de execução
  • ferramentas de colaboração.

Recomendação principal: Automatize tudo!

Obrigado Zach Shapiro!

Fonte: habr.com

Adicionar um comentário