Skip to content

1 ‐ Introdução ao Elastic Stack

inhogoes edited this page Apr 29, 2024 · 2 revisions

1.1 - História, evolução e futuro

O Elastic Stack, anteriormente conhecido como ELK Stack, é uma coleção de produtos de código aberto da Elastic que juntos, formam uma solução poderosa para busca e análise de dados. A evolução do Elastic Stack tem sido notável, com a adição de novos produtos e recursos ao longo dos anos. O futuro do Elastic Stack é promissor, com a Elastic continuamente inovando e expandindo suas ofertas de produtos.

A História por Trás do Elasticsearch: Do Armazenamento de Receitas à Gigante da Indexação

O Elasticsearch, hoje uma das soluções de indexação de dados mais aclamadas e utilizadas, teve um início humilde e inesperado. Sua história está intrinsecamente ligada à trajetória de seu fundador, Shay Banon, um empreendedor e desenvolvedor apaixonado por tecnologia.

O Início:

Em 2009, Shay Banon, então CTO da LogLogic, buscava uma maneira mais eficiente de armazenar e pesquisar receitas culinárias. Frustrado com as soluções disponíveis, ele decidiu criar seu próprio sistema. Utilizando a linguagem de programação Java e a biblioteca Apache Lucene, Banon desenvolveu um protótipo que permitia buscas rápidas e precisas em grandes volumes de dados textuais.

O Nascimento do Elasticsearch:

Impressionado com o potencial da tecnologia, Banon decidiu torná-la pública em 2012, sob o nome de Elasticsearch. A solução rapidamente ganhou popularidade entre a comunidade de desenvolvedores, atraindo a atenção de empresas que buscavam uma alternativa mais flexível e escalável aos tradicionais bancos de dados relacionais.

Evolução e Crescimento:

Em 2014, Shay Banon fundou a Elastic NV, empresa responsável pelo desenvolvimento e comercialização do Elasticsearch. A empresa rapidamente se tornou líder no mercado de soluções de busca e análise de dados, com o Elasticsearch sendo utilizado por milhares de empresas em todo o mundo.

Fatores de Sucesso:

O sucesso do Elasticsearch pode ser atribuído a diversos fatores, entre eles:

  • Código Aberto: A natureza open-source da plataforma permitiu que uma comunidade vibrante de desenvolvedores contribuísse para seu desenvolvimento e aprimoramento.
  • Flexibilidade e Escalabilidade: O Elasticsearch oferece uma arquitetura altamente flexível e escalável, capaz de lidar com grandes volumes de dados em tempo real.
  • Facilidade de Uso: A plataforma oferece uma interface gráfica intuitiva que facilita o gerenciamento e a análise dos dados.
  • Ampla Gama de Recursos: O Elasticsearch oferece uma ampla gama de recursos, como buscas complexas, agregações de dados, machine learning e anomaly detection.

Aplicações:

O Elasticsearch é utilizado em diversos setores, como:

  • Tecnologia da Informação: Monitoramento de infraestrutura, gerenciamento de logs, análise de segurança
  • Finanças: Detecção de fraudes, análise de risco, compliance
  • Varejo: Personalização de experiências, análise de comportamento do consumidor, otimização de campanhas de marketing
  • Saúde: Análise de dados médicos, pesquisa clínica, monitoramento de pacientes

Evolução:

Versão Ano Principais Melhorias
1.x 2014 Introduziu várias funcionalidades e melhorias importantes.
2.x 2015 Focou em melhorar o desempenho, estabilidade e segurança.
5.x 2016 Trouxe novas funcionalidades e melhorias.
6.x 2017 Continuou aprimorando o desempenho e a segurança.
7.x 2019 Introduziu várias novas funcionalidades e melhorias.
8.x 2022 Continuou a evolução com novas funcionalidades e melhorias.
8.13.2 2024 Última versão lançada.

Fundadores do Elasticsearch, Logstash e Kibana

Elasticsearch

Elasticsearch foi criado por Shay Banon. Antes de desenvolver o Elasticsearch, Banon criou o Compass, um motor de busca baseado em Lucene que tinha limitações em termos de escalabilidade. A experiência com o Compass inspirou Banon a criar uma solução mais robusta, escalável e distribuída, levando ao desenvolvimento do Elasticsearch em 2010. Shay Banon é frequentemente reconhecido como o fundador do Elasticsearch e, posteriormente, da Elastic.

Logstash

Logstash foi criado por Jordan Sissel. Jordan começou a trabalhar no Logstash em 2009 como um projeto pessoal para facilitar a gestão de logs. Logstash foi inicialmente desenvolvido para ser uma ferramenta independente, mas sua integração com o Elasticsearch e Kibana acabou por se tornar uma parte crucial do Elastic Stack, oferecendo uma solução abrangente para o processamento e análise de logs.

Kibana

Kibana foi criado por Rashid Khan. Inicialmente desenvolvido como uma interface de usuário para visualizar logs indexados pelo Logstash no Elasticsearch, Kibana rapidamente evoluiu para se tornar uma plataforma de visualização e análise de dados poderosa. Khan lançou o Kibana em 2013, e o projeto ganhou tração significativa, tornando-se um componente essencial do que agora é conhecido como Elastic Stack.

Fundadores da Elastic BV

A Elastic BV foi oficialmente fundada por Shay Banon, Uri Boness, Steven Schuurman e Simon Willnauer.

  • Shay Banon: Além de ser o criador do Elasticsearch, Banon assumiu o papel de CEO na Elastic, guiando a visão e o desenvolvimento da empresa.

  • Uri Boness: Uri teve um papel fundamental no desenvolvimento inicial do Elasticsearch e na formação da empresa, contribuindo com sua experiência em tecnologias de busca e análise.

  • Steven Schuurman: Co-fundador e o primeiro CEO da Elastic, Schuurman teve um papel crucial na estratégia empresarial e no crescimento inicial da companhia.

  • Simon Willnauer: Um dos contribuidores principais do Apache Lucene, Simon trouxe sua expertise técnica para o Elasticsearch e a Elastic, ajudando a moldar a tecnologia subjacente.

Juntos, esses fundadores criaram uma empresa que se tornou sinônimo de busca e análise de dados, oferecendo um conjunto de ferramentas amplamente utilizado por desenvolvedores e empresas ao redor do mundo.

1.2 - Produtos que compõem o Elastic Stack

Elasticsearch

Elasticsearch é um mecanismo de busca e análise distribuído, projetado para lidar com grandes volumes de dados em tempo real. Utiliza uma estrutura baseada em documentos, que são indexados e podem ser pesquisados com uma linguagem de consulta própria. Suporta operações complexas de busca, incluindo filtragem, agregação de dados e análises textuais. A escalabilidade e a capacidade de recuperação são pontos fortes do Elasticsearch, permitindo que ele distribua dados e consultas em vários nós para garantir desempenho e disponibilidade.

Kibana

Kibana é uma interface de usuário gráfica para visualização de dados armazenados no Elasticsearch. Permite aos usuários criar e compartilhar dashboards dinâmicos, que exibem gráficos e visualizações variadas para analisar e interpretar grandes volumes de dados. Kibana oferece recursos como descoberta de dados, visualização, e gerenciamento do Elastic Stack, facilitando o entendimento e a apresentação dos dados de forma intuitiva.

Beats

Beats é uma plataforma de agentes leves de envio de dados que podem ser instalados em servidores para coletar diferentes tipos de dados operacionais, como logs, métricas e tráfego de rede. Cada Beat é projetado para uma finalidade específica, e os dados coletados podem ser enviados diretamente para o Elasticsearch ou para o Logstash para processamento adicional. Beats simplifica a coleta de dados de vários pontos da infraestrutura e sua centralização no Elasticsearch.

Logstash

Logstash é um pipeline de processamento de dados que coleta, transforma e envia dados para um "stash" como o Elasticsearch. Suporta uma vasta gama de inputs, filters, e outputs, permitindo aos usuários enriquecer, limpar e transformar dados de diversas fontes antes de armazená-los. Logstash é extensivamente utilizado para análise de logs, permitindo a extração de insights valiosos de dados brutos.

Elastic Observability

Elastic Observability é uma solução unificada que combina logs, métricas e rastreamento de aplicações, permitindo aos usuários monitorar e analisar o desempenho de suas infraestruturas e aplicações em tempo real. A integração entre o Elasticsearch, Kibana, Beats e APM (Application Performance Monitoring) possibilita uma visão abrangente e detalhada dos ambientes monitorados, facilitando a detecção e a solução de problemas.

Elastic Security

Elastic Security oferece recursos avançados para prevenir, detectar e responder a ameaças cibernéticas. Com a integração do machine learning, análise de comportamento e inteligência de ameaças, fornece uma plataforma abrangente para proteger contra ataques e vulnerabilidades. Elastic Security integra-se perfeitamente ao Elastic Stack, permitindo a utilização de dados de logs, rede e endpoints para uma visão holística da segurança.

Elastic Cloud Enterprise (ECE)

Elastic Cloud Enterprise é uma solução que permite implantar, gerenciar e escalar o Elastic Stack, Beats e Elastic Cloud em qualquer infraestrutura. Com ECE, os usuários podem criar, gerenciar e monitorar clusters do Elasticsearch e Kibana em uma plataforma centralizada, simplificando a operacionalização e o gerenciamento de ambientes Elastic em grande escala.

Elastic Cloud on Kubernetes (ECK)

Elastic Cloud on Kubernetes é uma solução orquestrada que simplifica a implantação, gestão e escalonamento do Elastic Stack em ambientes Kubernetes. ECK estende o Kubernetes com operadores customizados para gerenciar recursos do Elastic Stack, automatizando tarefas como deployment, upgrades e configuração de clusters Elasticsearch e Kibana, aproveitando a flexibilidade e a portabilidade do Kubernetes.

Essas são as principais ferramentas e soluções oferecidas pelo Elastic Stack, cada uma desempenhando um papel crucial na coleta, processamento, análise e visualização de dados em larga escala.

1.3 - Licenças da Elastic e Subscrições

A Elastic NV, empresa por trás do Elastic Stack, historicamente utilizou a licença Apache 2.0 para muitos de seus produtos, incluindo Elasticsearch e Kibana. Isso permitiu que a comunidade e as empresas usassem, modificassem e distribuíssem seu código de forma bastante livre.

Mudança de Licenciamento em 2021

Em janeiro de 2021, a Elastic anunciou uma mudança significativa em seu modelo de licenciamento. O Elasticsearch e o Kibana passaram a ser oferecidos sob a Elastic License v2.0 e a Server Side Public License (SSPL). Essa mudança foi feita para restringir provedores de cloud, como a Amazon Web Services (AWS), de oferecer esses produtos como um serviço sem colaborar com a Elastic.

A Elastic License v2.0 é uma licença que permite o uso, modificação e distribuição, mas com restrições que impedem a oferta do produto como um serviço gerenciado sem um acordo com a Elastic. A SSPL é semelhante em seu objetivo, exigindo que quem oferece o software como um serviço disponibilize o código-fonte e a infraestrutura subjacente.

Briga Jurídica com a AWS

A mudança nas licenças foi, em parte, uma resposta à competição entre a Elastic e a AWS. A AWS oferecia o Amazon Elasticsearch Service, um serviço gerenciado baseado no Elasticsearch, o que causou tensões entre as duas empresas. A Elastic acusou a AWS de se aproveitar do Elasticsearch, monetizando o produto sem contribuir adequadamente para o seu desenvolvimento.

A AWS respondeu à mudança de licenciamento criando o OpenSearch, um fork do Elasticsearch e Kibana, que continua sob a licença Apache 2.0. O OpenSearch é mantido pela AWS e pela comunidade, permitindo que usuários e fornecedores de serviços em nuvem tenham uma alternativa ao Elasticsearch sem as restrições das novas licenças da Elastic.

Essa disputa destaca as complexidades do mundo do software de código aberto e como as empresas navegam na monetização enquanto equilibram as contribuições e o uso comunitário. A decisão da Elastic de alterar suas licenças gerou debates na comunidade sobre open source, governança de projetos e sustentabilidade de modelos de negócios baseados em código aberto.

Aqui está uma tabela resumindo os tipos de licença oferecidos pela Elastic atualmente e os modelos de subscrição disponíveis:

Tipo de Licença Descrição Resumida Modelos de Subscrição Disponíveis
Elastic License v2 (ELv2) Permite o uso, modificação e distribuição, com restrições para oferta como serviço Elastic Stack Basic, Gold, Platinum, Enterprise
Server Side Public License (SSPL) Requer que a oferta do software como serviço inclua a disponibilização do código-fonte e da infraestrutura subjacente Elastic Stack Basic, Gold, Platinum, Enterprise
Apache 2.0 Licença de código aberto que permite uso, modificação e distribuição livre Disponível para determinados componentes do Elastic Stack, como Beats e Logstash
Elastic Cloud License Licença específica para serviços na Elastic Cloud Elastic Cloud Standard, Elastic Cloud Enterprise
  • Elastic Stack Basic: Gratuito, oferece recursos essenciais do Elastic Stack com algumas funcionalidades premium.
  • Elastic Stack Gold: Inclui recursos adicionais, como segurança aprimorada, monitoramento de clusters e suporte técnico.
  • Elastic Stack Platinum/Enterprise: Oferece todos os recursos do Gold mais funcionalidades avançadas como machine learning, alertas e relatórios, além de suporte premium.
  • Elastic Cloud Standard: Serviço gerenciado básico na Elastic Cloud.
  • Elastic Cloud Enterprise: Versão mais avançada e personalizável do serviço gerenciado Elastic Cloud, adequada para empresas maiores.

Essa estrutura de licenciamento permite que a Elastic atenda a uma ampla gama de usuários, desde indivíduos e pequenas empresas que podem se beneficiar da versão Basic gratuita até grandes organizações que necessitam de recursos avançados e suporte abrangente disponíveis nas versões Gold, Platinum ou Enterprise.