Código aberto popular - parte um: 3 ferramentas para trabalhar com dados

Decidimos preparar uma série de resumos com análises dos projetos de código aberto mais populares. A lista inclui as soluções de código aberto mais comentadas do Hacker News. O tópico da primeira coleção são ferramentas e serviços para trabalhar com logs e bancos de dados .


/ foto AKT.UZ PD

Falaremos sobre soluções como FoundationDB , LogDevice e Queryparser . No ano passado, eles foram discutidos ativamente no Hacker News. O interesse foi causado pelo fato de grandes empresas de TI - Apple, Uber e Facebook estarem envolvidas em seu desenvolvimento. Isso significa que todas as três ferramentas são adequadas para trabalhar com uma infraestrutura de TI em grande escala e altamente carregada.


Foundationdb



O FoundationDB é um DBMS de vários modelos do tipo NoSQL . Foi introduzido em 2012 por três engenheiros da Visual Sciences, que trabalhavam em uma plataforma de visualização de dados (hoje faz parte do Adobe Analytics).

Diferentemente de outros sistemas similares, as operações no FoundationDB cumprem os princípios do ACID : atomicidade, consistência, isolamento e durabilidade dos dados. Os DBMSs que aderem a esse modelo são considerados os mais confiáveis ​​e previsíveis, mas no NoSQL alguns princípios do ACID são frequentemente sacrificados para obter um melhor desempenho.

Outra vantagem do FoundationDB é sua poderosa interface de baixo nível. Com sua ajuda, qualquer sistema pode usar um DBMS para armazenamento de dados distribuídos. Por exemplo, com base no FoundationDB, você pode criar interfaces para DBMSs universais maiores.

Graças a essas características, o FoundationDB rapidamente se tornou popular. Foi implementado por vários serviços em nuvem: o serviço de monitoramento Wavefront (agora parte do VMware) e os sistemas de armazenamento Snowflake e SkuVault. A popularidade do FoundationDB também foi influenciada pelo fato de que, desde a sua criação, o código fonte do projeto foi aberto.

Tudo mudou em 2015, quando a Apple adquiriu a empresa. A gigante de TI fechou o acesso ao código FoundationDB e começou a usar o DBMS em seus próprios serviços online. Essa solução causou alguns problemas para os desenvolvedores que usaram o FoundationDB em seus projetos. Mas em abril de 2018, a Apple decidiu devolver o DBMS de código aberto. Isso beneficiou não apenas a comunidade de TI, mas também a própria Apple. Em duas semanas , mais de sete mil desenvolvedores mostraram interesse no projeto, e uma centena de novos threads foram abertos no fórum temático .

A gigante de TI decidiu continuar a aderir à estratégia de "abertura". Em novembro de 2018, um novo componente DBMS foi introduzido - Camada de Documentos - permite criar repositórios de documentos. No futuro, está planejado o desenvolvimento de ferramentas adicionais. E qualquer um pode contribuir para a criação do produto. Você pode aprender como fazer isso no repositório oficial do GitHub - há uma instrução detalhada .


Dispositivo de registro



O LogDevice é um sistema de armazenamento de logs distribuído criado no Facebook. Ele é otimizado para gravar dados recebidos em sequência: qualquer informação no sistema é salva não como um arquivo separado, mas como parte de um determinado “fluxo de registro”. Isso permite determinar com precisão a ordem em que os dados são recebidos.

Inicialmente, o projeto foi usado para tarefas internas do Facebook, mas em setembro de 2018, a empresa abriu seu código-fonte. Até aquele momento, o LogDevice não era tão conhecido na comunidade de TI, mas alguns dos leitores do Hacker News já estavam interessados ​​na ferramenta. Por exemplo, observou seu potencial em sistemas de armazenamento para aprendizado de máquina.

Mas há uma opinião de que a solução do Facebook ganhará popularidade lentamente. Há um grande número de ferramentas similares no mercado (por exemplo, Apache Kafka). E eles já têm um grande número de integrações, e o LogDevice precisa apenas obtê-las. A propósito, agora os desenvolvedores da ferramenta estão trabalhando na introdução da integração do LogDevice ao sistema de orquestração de contêineres Kubernetes.

Todos estão convidados a participar - os requisitos de código são descritos em um documento de repositório separado no GitHub .


/ foto Alexander Day CC BY


Queryparser



O Queryparser é um sistema de análise para três dialetos SQL: Vertica, Hive e Presto. Como o LogDevice, o Queryparser foi criado originalmente para as tarefas internas de uma grande empresa de TI - desta vez, o projeto se originou no Uber.

Em 2015, os engenheiros da empresa decidiram atualizar o sistema de nomeação de objetos nos bancos de dados e substituir os nomes no formato de números inteiros por números de acordo com o padrão UUID . Para reescrever todos os identificadores, os engenheiros tiveram que identificar todos os links nas tabelas. Isso acabou sendo uma tarefa difícil: dezenas de milhares de tabelas com dados pertencentes a diferentes departamentos da empresa foram armazenadas no Uber. Para estabelecer conexões entre vários bancos de dados, os desenvolvedores criaram o Queryparser.

A ferramenta concluiu com êxito a tarefa, mas os engenheiros encontraram outras aplicações possíveis para ela. Por exemplo, monitoramento automático de alterações nos bancos de dados. O Queryparser salva todas as consultas sobre a combinação de fluxos de dados ou a criação de novas e notifica os usuários do banco de dados afetados por essas alterações.

O Queryparser também ajudou o Uber a coletar estatísticas sobre consultas SQL e otimizar o armazenamento: as tabelas raramente usadas foram excluídas e os bancos de dados que frequentemente se referiam um ao outro foram combinados.

O código-fonte do Queryparser foi aberto desde o início do projeto, mas apenas em 2018 a Uber lançou um artigo detalhado sobre a ferramenta. Pode ser considerado como um guia para trabalhar com o sistema. E no repositório você encontra instruções de instalação e instruções para quem deseja participar do desenvolvimento do Queryparser.

No futuro, a Uber planeja desenvolver ainda mais a solução. Por exemplo, adicione suporte para novos dialetos SQL: PostgreSQL, MySQL e SQLite. Também está entre as tarefas da empresa adicionar consultas de verificação de tipo de dados e converter consultas de um dialeto para outro.



Na próxima vez, continuaremos a história sobre os populares projetos de código aberto de 2018. Vamos falar sobre soluções de gerenciamento de nuvem de código aberto e ferramentas de desenvolvedor.



Algumas postagens do Primeiro blog corporativo de IaaS:


Sobre o que escrevemos no canal Telegram:

Source: https://habr.com/ru/post/pt436962/


All Articles