Transição Sem Costura do Elasticsearch para o OpenSearch

Elasticsearch e OpenSearch são ferramentas poderosas para lidar com cargas de trabalho de busca e análise, oferecendo escalabilidade, capacidades em tempo real e um rico ecossistema de plugins e integrações. Elasticsearch é amplamente utilizado para busca de texto completo, monitoramento de logs e visualização de dados em diversos setores devido ao seu ecossistema maduro. OpenSearch, um fork impulsionado pela comunidade do Elasticsearch, fornece uma alternativa totalmente de código aberto com muitas das mesmas capacidades, tornando-se uma excelente escolha para organizações que priorizam princípios de código aberto e eficiência de custos.

A migração para OpenSearch deve ser considerada se você estiver usando versões do Elasticsearch até 7.10 e quiser evitar as restrições de licenciamento introduzidas com a licença SSPL do Elasticsearch. Também é ideal para aqueles que buscam acesso contínuo a um ecossistema de código aberto enquanto mantêm a compatibilidade com as APIs do Elasticsearch e ferramentas existentes. Organizações com foco em inovação impulsionada pela comunidade, governança transparente ou controle de custos acharão o OpenSearch uma opção atraente.

História

O Elasticsearch, desenvolvido inicialmente por Shay Banon em 2010, surgiu como um poderoso mecanismo de busca e análise de código aberto construído sobre o Apache Lucene. Rapidamente ganhou popularidade por sua escalabilidade, natureza distribuída e capacidades robustas em busca de texto completo, análise de logs e processamento de dados em tempo real. Ao longo dos anos, o Elasticsearch tornou-se parte do Elastic Stack (anteriormente ELK Stack), integrando-se ao Kibana, Logstash e Beats para fornecer soluções de gerenciamento de dados de ponta a ponta.

No entanto, uma mudança significativa ocorreu em 2021, quando a Elastic transicionou o Elasticsearch e o Kibana para uma licença SSPL mais restritiva. Em resposta, a AWS e a comunidade de código aberto bifurcaram o Elasticsearch 7.10 e o Kibana para criar o OpenSearch, aderindo à licença Apache 2.0. O OpenSearch evoluiu desde então como um projeto orientado pela comunidade, garantindo uma alternativa verdadeiramente de código aberto com recursos comparáveis e desenvolvimento contínuo adaptado para casos de uso em busca, observabilidade e análise.

Por que migrar para o OpenSearch?

1. Compromisso com o Código Aberto

O OpenSearch adere à licença Apache 2.0, garantindo verdadeira acessibilidade de código aberto. Em contraste, a transição do Elasticsearch para uma licença SSPL mais restritiva levantou preocupações sobre o lock-in do fornecedor e a diminuição das contribuições impulsionadas pela comunidade.

2. Eficiência de Custos

O OpenSearch elimina as potenciais taxas de licenciamento associadas às versões mais recentes do Elasticsearch, tornando-se uma escolha atraente para organizações que buscam soluções econômicas sem comprometer as capacidades.

3. Compatibilidade

O OpenSearch mantém a compatibilidade com as versões do Elasticsearch até 7.10, incluindo muitas das mesmas APIs e ferramentas. Isso garante uma migração suave com mínima interrupção nas aplicações e fluxos de trabalho existentes.

4. Desenvolvimento Ativo e Suporte

Com apoio da AWS e uma comunidade ativa, o OpenSearch recebe atualizações consistentes, melhorias de recursos e correções de segurança. Seu modelo de governança aberta promove a inovação e colaboração, garantindo que a plataforma evolua para atender às necessidades dos usuários.

5. Personalizável e Flexível

O OpenSearch permite uma maior personalização e flexibilidade em comparação com sistemas proprietários, permitindo que as organizações adaptem suas implementações a casos de uso específicos sem restrições impostas por termos de licenciamento.

6. Ecossistema em Evolução

O OpenSearch oferece Painéis OpenSearch (uma alternativa ao Kibana) e plugins personalizados para observabilidade, análise de logs e busca de texto completo. Essas ferramentas expandem sua usabilidade em diferentes domínios, garantindo a contínua alinhamento com as necessidades dos usuários.

Quando Migrar

  • Preocupações com licenciamento: Se deseja evitar as restrições de licenciamento da SSPL introduzidas pela Elastic após a versão 7.10.
  • Restrições orçamentárias: Minimizar os custos associados à licença comercial, mantendo um mecanismo de busca e análise poderoso.
  • Prova futura: Adotar uma plataforma com um roadmap de desenvolvimento transparente e forte apoio da comunidade.
  • Paridade de recursos: Ao utilizar recursos suportados no Elasticsearch 7.10 ou anterior, pois são totalmente compatíveis com o OpenSearch.
  • Necessidades de personalização: Quando maior flexibilidade, governança aberta ou inovações lideradas pela comunidade são críticas para os objetivos da sua organização.

A migração para o OpenSearch garante que você mantenha uma plataforma robusta impulsionada por código aberto, evitando possíveis restrições e custos associados ao modelo de licenciamento do Elasticsearch.

Lista de Verificação Pré-Migração

Antes de migrar do Elasticsearch para o OpenSearch, siga esta lista de verificação para garantir uma transição suave e bem-sucedida:

1. Avaliar Compatibilidade de Versão

  • Verifique se a sua versão do Elasticsearch é compatível com o OpenSearch. O OpenSearch suporta versões do Elasticsearch até 7.10.
  • Revise quaisquer dependências de API ou plugins para garantir que sejam suportadas no OpenSearch.

2. Avaliar Uso de Recursos Proprietários

  • Identifique quaisquer recursos ou plugins proprietários (por exemplo, recursos de aprendizado de máquina da Elastic) que possam não ter equivalentes no OpenSearch.
  • Avalie se ferramentas de terceiros ou extensões usadas no seu cluster do Elasticsearch serão impactadas.

3. Faça Backup dos Seus Dados

  • Crie um backup completo dos seus índices do Elasticsearch usando a API de snapshot para evitar possíveis perdas de dados:
    Shell

     

  • Certifique-se de que os backups sejam armazenados em um local seguro e acessível para restauração.

4. Revisar Configurações do Cluster

  • Documente as configurações atuais do seu cluster Elasticsearch, incluindo configurações de nó, alocações de fragmentos e modelos de índice.
  • Compare essas configurações com o OpenSearch para identificar ajustes necessários.

5. Testar em um Ambiente de Staging

  • Configure um ambiente de staging para simular o processo de migração.
  • Restaure snapshots de dados no cluster de staging do OpenSearch para validar compatibilidade e funcionalidade.
  • Teste suas aplicações, consultas e fluxos de trabalho no ambiente de staging para detectar problemas precocemente.

6. Verificar Compatibilidade de API e Consulta

  • Revise as APIs do Elasticsearch e a sintaxe de consulta usadas em sua aplicação. O OpenSearch mantém a maioria da compatibilidade de API, mas pequenas diferenças podem existir.
  • Use o modo de compatibilidade de API do OpenSearch para transições mais suaves.

7. Atualizar Aplicações e Clientes

  • Substitua as bibliotecas de cliente do Elasticsearch por bibliotecas compatíveis com o OpenSearch (por exemplo, opensearch-py para Python ou OpenSearch Java Client).
  • Teste a integração do cliente para garantir que as aplicações interajam corretamente com o cluster do OpenSearch.

8. Verificar Suporte a Plugins

  • Certifique-se de que quaisquer plugins utilizados no Elasticsearch (por exemplo, análise, segurança ou plugins de monitoramento) estejam disponíveis ou tenham alternativas no OpenSearch.
  • Identifique plugins específicos do OpenSearch que possam aprimorar a funcionalidade do seu cluster.

9. Informar as partes interessadas

  • Comunique o plano de migração, o cronograma e o tempo de inatividade esperado (se houver) a todas as partes interessadas relevantes.
  • Assegure que as equipes responsáveis pelas aplicações, infraestrutura e dados estejam preparadas para a migração.

10. Planejar o Retorno

  • Desenvolva um plano de retorno em caso de problemas durante a migração. Este plano deve incluir etapas para restaurar o cluster Elasticsearch original e os dados a partir dos backups.

11. Monitorar Recursos

  • Assegure que sua infraestrutura possa suportar o processo de migração, incluindo espaço em disco para snapshots e capacidade de cluster suficiente para a restauração.

Ao completar esta lista de verificação, você pode minimizar riscos, identificar desafios potenciais e garantir uma migração bem-sucedida do Elasticsearch para o OpenSearch.

Guia de Migração Passo a Passo

1. Instalar o OpenSearch

  • Baixe a versão apropriada do OpenSearch em opensearch.org .
  • Configure os nós do OpenSearch usando a documentação oficial, garantindo configurações de cluster semelhantes à sua configuração existente do Elasticsearch.

2. Exportar dados do Elasticsearch

  • Use a snapshot API para criar um backup de seus índices Elasticsearch:
    Shell

     

  • Garanta que o snapshot esteja armazenado em um repositório acessível ao OpenSearch.

3. Importar Dados para o OpenSearch

  • Registre o repositório de snapshots no OpenSearch:
    Shell

     

  • Restaure a snapshot para o OpenSearch:
    Shell

4. Atualize Aplicações e Clientes

  • Atualize as bibliotecas de clientes Elasticsearch da sua aplicação para clientes OpenSearch compatíveis, como o Cliente Python OpenSearch (opensearch-py) ou Cliente Java.
  • Substitua os pontos finais do Elasticsearch na configuração da sua aplicação pelos pontos finais do OpenSearch.

5. Valide Dados e Consultas

  • Verifique se todos os dados foram restaurados com sucesso.
  • Teste consultas, operações de índice e fluxos de trabalho da aplicação para garantir que tudo se comporte como esperado.

6. Monitore e Otimize

  • Utilize o OpenSearch Dashboards (anteriormente Kibana) para monitorar a saúde e o desempenho do cluster.
  • Habilite recursos de segurança como criptografia, autenticação e controles de acesso baseados em função, se necessário.

Considerações Pós-Migração

1. Plugins e Recursos

  • Se você depende de plugins do Elasticsearch, verifique sua disponibilidade ou encontre alternativas no OpenSearch.

2. Otimização de Desempenho

  • Otimize as configurações do cluster OpenSearch para atender aos requisitos de sua carga de trabalho.
  • Aproveite recursos específicos do OpenSearch, como armazenamento ultra-warm, para retenção de dados com custo eficiente.

3. Engajamento com a Comunidade

  • Participe da comunidade OpenSearch para suporte e atualizações.
  • Monitore as notas de lançamento para se manter informado sobre novos recursos e melhorias.

Desafios e Dicas para a Migração de Elasticsearch para OpenSearch

1. Compatibilidade de Plugins

Desafio

Alguns plugins do Elasticsearch, especialmente os proprietários, podem não ter equivalentes diretos no OpenSearch.

Dicas

  • Avalie seus plugins atuais do Elasticsearch e identifique dependências.
  • Pesquise o ecossistema de plugins do OpenSearch ou ferramentas open-source alternativas para substituir funcionalidades ausentes.
  • Considere se as capacidades integradas do OpenSearch, como o OpenSearch Dashboards, atendem às suas necessidades.

2. Diferenças de API

Desafio

Embora o OpenSearch mantenha compatibilidade com as APIs do Elasticsearch até a versão 7.10, diferenças menores ou endpoints obsoletos podem afetar a funcionalidade.

Dicas

  • Utilize o modo de compatibilidade de API do OpenSearch para testar e adaptar as APIs gradualmente.
  • Revise a documentação da API e substitua os endpoints obsoletos por alternativas recomendadas.

3. Migração de Dados

Desafio

A migração de conjuntos de dados grandes pode ser demorada e propensa a erros, especialmente se houver diferenças de formato ou esquema.

Dicas

  • Utilize a abordagem de snapshot e restore para transferência eficiente de dados.
  • Teste o processo de restauração em um ambiente de preparação para garantir a integridade dos dados.
  • Valide os dados pós-migração executando consultas-chave para confirmar a consistência.

4. Otimização de Desempenho

Desafio

O OpenSearch e o Elasticsearch podem ter diferenças nas configurações de cluster e na otimização de desempenho, potencialmente levando a um desempenho subótimo pós-migração.

Dicas

  • Monitore o desempenho do cluster usando o OpenSearch Dashboards ou outras ferramentas de monitoramento.
  • Ajuste os tamanhos de fragmento, estratégias de indexação e alocação de recursos para otimizar o desempenho do cluster.

5. Integração de Cliente e Aplicativo

Desafio

Aplicativos que usam bibliotecas de cliente do Elasticsearch podem exigir atualizações para funcionar com o OpenSearch.

Dicas

  • Substitua os clientes do Elasticsearch por versões compatíveis com o OpenSearch, como opensearch-py (Python) ou o Cliente Java do OpenSearch.
  • Teste os fluxos de trabalho do aplicativo e a execução de consultas para garantir uma integração tranquila.

6. Recursos Limitados no OpenSearch

Desafio

Certos recursos proprietários do Elasticsearch (por exemplo, trabalhos de aprendizado de máquina, Segurança Elástica) não estão disponíveis no OpenSearch.

Dicas

  • Identifique recursos críticos ausentes no OpenSearch e determine sua importância para o seu caso de uso.
  • Explore alternativas de terceiros ou de código aberto para substituir os recursos não disponíveis.

7. Treinamento e Familiaridade

Desafio

Equipes familiarizadas com o Elasticsearch podem enfrentar uma curva de aprendizado ao fazer a transição para o OpenSearch, especialmente para o gerenciamento de cluster e novos recursos.

Dicas

  • Forneça treinamento e documentação para familiarizar sua equipe com as ferramentas e fluxos de trabalho do OpenSearch.
  • Aproveite a comunidade ativa e os fóruns do OpenSearch para suporte adicional.

8. Dados em Tempo Real e Tempo de Inatividade

Desafio

Para sistemas em tempo real, garantir um tempo de inatividade mínimo durante a migração pode ser difícil.

Dicas

  • Planeje a migração durante períodos de baixo tráfego.
  • Utilize uma estratégia de implantação blue-green para alternar perfeitamente entre clusters.
  • Sincronize novos dados no OpenSearch usando ferramentas como Logstash ou Beats durante a janela de migração.

9. Escalabilidade e Crescimento Futuro

Desafio

Garantir que o novo cluster do OpenSearch possa lidar com os requisitos de crescimento e escalabilidade futuros.

Dicas

  • Planeje a escalabilidade projetando uma arquitetura de cluster que suporte escalonamento horizontal.
  • Utilize a arquitetura distribuída do OpenSearch para otimizar o uso de recursos.

10. Apoio da Comunidade

Desafio

Embora o OpenSearch tenha uma comunidade em crescimento, algumas questões avançadas podem carecer de documentação extensiva ou soluções de terceiros.

Dicas

  • Envolver-se com a comunidade OpenSearch através de fóruns e GitHub para solução de problemas.
  • Monitorar regularmente as atualizações do OpenSearch e contribuir com a comunidade para obter melhores insights.

Ao antecipar esses desafios e seguir essas dicas, as organizações podem navegar pelo processo de migração de forma eficaz, garantindo uma transição perfeita enquanto mantêm o desempenho de pesquisa e análise.

Conclusão

A migração do Elasticsearch para o OpenSearch é uma decisão estratégica para organizações que buscam alinhar-se com os princípios de código aberto, reduzir custos e manter a compatibilidade com fluxos de trabalho estabelecidos de pesquisa e análise. Embora o processo de migração apresente desafios, como compatibilidade de plugins, diferenças de API e complexidades de migração de dados, esses podem ser gerenciados de forma eficaz através de um planejamento cuidadoso, testes rigorosos e aproveitando a vibrante comunidade OpenSearch.

Source:
https://dzone.com/articles/transition-from-elasticsearch-to-opensearch