Banco de Dados

14 fev, 2019

A Microsoft comprou a Citusdata, mas quem é o Citus?

Publicidade

No dia 24/01 recebi logo pela manhã a notícia de que a Microsoft havia comprado a Citusdata. Fiquei bem contente porque sou MVP, amo trabalhar com o PostrgreSQL e porque o Citus é super legal!

O PostgreSQL

Em 1973 a Universidade de Berkley desenvolveu o Ingres, que se tornou funcional ainda na década de 70 e chegou a liderar o mercado na época, superando a IBM e a Oracle (que na época era uma tentativa de clone do System-R, futuro DB2).

O Postgres começou a ser desenvolvido em 1986, também em Berkley, como uma nova versão do Ingres reescrita do zero e incorporando novas questões de arquitetura, como a capacidade de extensão (como o Citus hoje é uma extensão do Postgres) e uma arquitetura nova, conhecida hoje como “objeto-relacional” (colaboração do meu amigo e mestre em do Postgres, Fábio Telles Rodriguez).

Nos anos 90 foram liberadas as primeiras versões funcionais, e graças a sua licença (BSD), desde o começo ele conta com a ajuda e participação da comunidade.

E está aí uma coisa muito legal: a comunidade do PostgreSQL é tão unida e apaixonada que é impossível não se apaixonar também.

Algumas características que eu adoro do PostgreSQL, são:

  • Ele é muito rápido
  • Suporta quantidades imensas de dados
  • Não é um comedor de hardware (quando configurado corretamente)
  • O Postgres roda não apenas em Linux, mas provavelmente roda no seu videogame ou no seu liquidificador também. Entre os processadores suportadas, temos: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, ARM, MIPS, MIPSEL, PA-RISC, M68K, M32R e VAX. Entre os sistemas operacionais reconhecidamente suportados temos, além do LInux: Windows (Win2000 SP4 ou superior), FreeBSD, OpenBSD, NetBSD, macOS, AIX, HP/UX e Solaris. Provavelmente qualquer Unix deverá rodar, mas estes são os testados no build farm (mais uma do Fábio Telles Rodriguez)
  • Tem boas interfaces gráficas para administração
  • Totalmente transacional
  • Possui suporte a dados estruturados e não estruturados
    Possibilidade de estender suas capacidades com as extensions (trocadilho proposital);
  • Recursos nativos e importantes de segurança.

A licença BSD

Para o uso de um software open source é de vital importância analisar a licença!

Digo isso porque muita gente ainda confunde Open Source com software gratuito e que pode ser alterado ao gosto da organização, e não é isso!

Os softwares open source têm código fonte aberto, podem ser alterados, modificados e distribuídos por outras pessoas e empresas.

Não possuem custo de licença, mas nada impede que o suporte seja vendido (por exemplo). Embora a liberdade seja um principio importante no mundo open source, existem regras! E elas são descritas nas licenças.

A licença BSD (Berkeley Software Distribution), assim como o PostgreSQL nasceu na Universidade de Berkeley e é linda porque impõe poucas restrições ao uso dos softwares que a utilizam.

No caso desta licença, é obrigatório ter no seu software um aviso de licença e direitos autorais, e o autor do software é isento de garantias e não pode ser responsabilizado por perdas e danos.

Mas por que isso é tão importante quando falamos de PostgreSQL? Porque como a licença é muito permissiva, nada impede que melhorias sejam feitas e comercializadas. Neste cenário surge o Citus Data.

Citus

É uma extensão do PostgreSQL com algumas funcionalidades (bem legais). O Citus expande o Postgres horizontalmente, transformando o banco de dados relacional em um banco de dados distribuído, e isso faz dele um fenômeno (opinião pessoal).

Ao paralelizar consultas SQL em vários nós, o Citus oferece um desempenho muito bom (eu ainda não testei e nem usei em produção com uma carga de dados imensa. Se você já usou, compartilhe conosco a experiência). Ele é muito legal se você precisa de consultas com dados em tempo real e consultas em bilhões de linhas e com alta simultaneidade.

Um detalhe legal é que adicionar nós para aumentar o paralelismo é bem simples!

Farei aqui alguns devaneios e me perdoem se não concordarem comigo, mas processamento e armazenamento distribuído são uma grande tendência. O SQL Server 2019 virá com novidades maravilhosas neste sentido, o Citus tem essa capacidade, assim como o MongoDB, Cassandra e Redis.

Você que é desenvolvedor está atento a isso? Já sabe o que muda para as suas aplicações? E você, que é arquiteto, sabe quando precisará de um banco de dados distribuído?

Dica da Dani: estude sobre os BD distribuídos e suas particularidades.

Como o Citus funciona?

Serei breve, ok? Mas futuramente podemos nos aprofundar neste tópico. O cluster Citus tem um nó principal que recebe as solicitações. Para as aplicações ele parece ser um PostgreSQL normal (com único nó) – este é o coordenador.

O coordenador modifica as consultas e as encaminha para o nó onde os dados estão. O nó executa a consulta e devolve o resultado para o coordenador, que quando receber o resultado de todos os nós, devolve para a aplicação o resultado.

O Citus compartilha o Postgres em vários nós para dar mais memória, computação e armazenamento em disco ao seu aplicativo. O que lhe dá paralelismo massivo, alto desempenho e uma maneira de manter o dimensionamento à medida em que seu aplicativo cresce.

Versões do Citus

Atualmente o Citus tem três versões:

  • Communit: linda e open source
  • Enterprise: software corporativo que possui suporte 24×7, além de recursos empresariais adicionais
  • Citus Cloud: serviço totalmente gerenciado e em nuvem. Atualmente o Citus Cloud é hospedado na AWS e está disponível na maioria das regiões da AWS. Creio que em pouquíssimo tempo ele será migrado para o Azure, mas não tenho ideia de como ficarão os clientes que utilizam o Citus na AWS.

Conclusão

No dia 24/01 a Microsoft anunciou a compra da Citusdata. Que é uma empresa que estendeu o PostgreSQL e comercializa esta extensão, bem como o seu suporte.

O Citus se destaca por transformar de maneira linda o PostgreSQL em um banco de dados distribuído. Ele oferece três versões diferentes (Community, Enterprise e Cloud)

A versão Cloud está hospedada na AWS, e tenho certeza que em breve estará disponível no Azure.

Eu adoro PostgreSQL e gostaria de mudar o foco dos próximos meses aqui no portal. O que vocês acham de entendermos mais sobre o PostgreSQL? E depois podemos conversar sobre o MariaDB e MySQL. Mandem os feedbacks!

Mais uma escolha, mais uma chance de sucesso!

PGConf

Em agosto acontecerá em SP o maior evento brasileiro de PostgreSQL, o PGConf.

Eu estarei lá e gostaria de convidar a todos para participar! Os ingressos já estão a venda, e aos amigos palestrantes: o Call4Papers está aberto!

Referências