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!