Depois de duas edições com um foco na discussão em torno do tema monólitos e microsserviços ("A ascensão e queda dos microservices" e "A vez dos monólitos modulares"), a QTrends de agosto tem como tema os pipelines de streaming de dados, sistemas ETL modernos e data mesh (também chamado de malha de dados). Em nosso último relatório de tendências de Arquitetura e Design, publicado em abril de 2020, data mesh foi classificada como uma tecnologia inovadora, enquanto arquiteturas baseadas em eventos e streaming foram classificadas como tecnologias com maior adoção (early majority).
Em função da combinação do potencial de disrupção de como os dados são tratados e gerenciados, por exemplo com times de produtos tendo a posse e expondo dados por mecanismos self-service, e da evolução de abordagens das preparações de dados (data-wrangling) baseadas em stream, nós acreditamos que um real entendimento de padrões, anti-padrões e tecnologias emergentes relacionadas a esses assuntos são de extrema relevância para profissionais que trabalham com arquitetura de sistemas.
Um panorama
Do pooling ao streaming: a evolução da LaunchDarkly
Dawn Parzych, Developer Advocate na LauchDarkly, descreveu em um artigo recém publicado como a empresa evoluiu o sistema de gestão de feature flags utilizado por clientes de um arquitetura baseada em pooling para uma nova arquitetura baseada em streaming.
Para quem utiliza essa solução, os benefícios incluem um aumento na velocidade das mudanças de configurações e também um consumo menor na bateria de dispositivos móveis. Segundo a publicação, "com a nova abordagem, clientes conseguem ver rapidamente as atualizações quando uma feature flag é alterada e com um consumo de banda significativamente menor" e "conseguimos prolongar o tempo de uso das baterias de dispositivos móveis, uma que vez que não é mais necessário o consumo de tanta energia para a realização de poolings.".
Tudo que você sempre quis saber sobre Apache Kafka mas não teve coragem de perguntar!
Em uma apresentação realizada na Big Data Conference Vilnius, Ricardo Ferreira explicou o que é o Apache Kafka e como essa solução se encaixa nos conceitos de sistemas distribuídos e processamento de stream. Ricardo também apresentou alguns casos de uso e padrões de design relacionados ao uso do Kafka.
Um dos pontos principais da palestra foi o fato de que o Apache Kafka pode ser encarado como uma plataforma de streaming distribuído. Ricardo disse que profissionais dificilmente entenderão o Kafka se pensarem na ferramenta como "só uma mensageria" e que "mensageria não tem persistência e, assim como bando de dados, possuem limites de escalabilidade".
Você pode encontrar outras duas apresentações sobre Apache Kafka realizadas pelo Ricardo Ferreira, dessa vez em português, aqui no InfoQ Brasil.
Registro de schemas do Amazon EventBridge disponível na AWS
Recentemente a Amazon anunciou a disponibilidade da funcionalidade de registro de schemas no serviço Amazon EventBridge. A proposta do registro de schemas do Amazon EventBridge é que de profissionais do desenvolvimento possam armazenar a estrutura - ou o schema - de eventos em um ponto central compartilhado e mapear essas estruturas em código Java, Python e Typescript. Com isso, fica possível a utilização desses eventos como objetos no código-fonte.
O anúncio dessa nova funcionalidade coloca o Amazon EventBridge como um grande competidor frente a outras soluções oferecidas por outras plataformas na nuvem. A Microsoft oferece o EventGrid que já está disponível desde o início de 2018 e já recebeu diversas atualizações, incluindo a construção de filtros avançados, regras para retentativas e suporte para o CloudEvents. Por outro lado, o serviço da Microsoft não contém a funcionalidade de registro de schemas.
Indo além, o mesmo é válido para o EveryBridge da Triggermesh. Esse integrador de eventos (event bus) é capaz de consumir eventos de diferentes fontes, fazendo com que profissionais do desenvolvimento possam utilizá-lo para a criação de funções servless que poderão ser executadas na maioria das plataformas na nuvem, bem como em soluções on-premise.
Melhorando o Apache Spark com GPUs e a biblioteca RAPIDS
Durante a conferência Spark AI Summit Europe em 2019, os desenvolvedores da NVIDIA Thomas Graves e Miguel Martinez apresentaram a palestra "Acelerando o Apache Spark em diversas ordens de magnitude com GPUs e a biblioteca RAPIDS". Recentemente o InfoQ conversou com Jim Scott, Head of Developers Relations na NVIDIA, para entender melhor sobre como acelerar o Apache Spark com GPUs e a biblioteca RAPIDS.
A RAPIDS é um conjunto de bibliotecas e APIs open-source para a execução em GPUs de pipelines de data science e analytics de ponta a ponta, possibilitando um significativo aumento na velocidade de processamento, especialmente em grandes conjuntos de dados. Construída em cima da NVIDIA CUDA, a RAPIDS disponibiliza o paralelismo e todo o poder da velocidade da memória da GPU através de uma interface Python amigável e uma API que integra uma variedade de algoritmos de machine learning para a aceleração de pipelines de ponta a ponta.
Estudo de caso
Data Mesh, domínios orientados a dados e a construção de plataforma de dados por Zhamak Dehghani
Em um popular podcast produzido pelo InfoQ, o conceito de "data mesh" foi apresentado por Zhamak Dehghani, que é Principal Consultant e Porfolio Director na ThoughtWorks. A discussão incluiu as motivações para se tornar uma empresa guiada por dados (data-driven), os desafios para se adaptar plataformas legadas e rotinas ETL, e como fazer o design e implementar a próxima geração de plataforma de dados utilizando ideias do DDD e product thinking, além de alguns princípios modernos de plataformas, como processos e soluções self-service.
O começo da conversa foi marcado por Zhamak dizendo que se tornar uma empresa data-driven ainda é um dos principais objetivos estratégicos de muitas empresas. Ser capaz de rodar experimentos rapidamente e analisar os dados resultados desses experimentos de forma eficiente pode trazer uma grande vantagem competitiva para diversos negócios.
Há uma série de "modelos falhos de arquitetura" dentro das plataformas corporativas de dados existentes. Elas são centralizadas e construídas com monólitos. A construção dos pipelines de dados possui, geralmente, um grande acoplamento, o que significa que uma eventual alteração em um dado implicará em uma cascata de modificações ao longo de todo o pipeline. Além disso, a posse, o domínio dessas plataformas de dados é cheia de silos e hiper especializada.
A próxima geração de plataforma corporativas de dados necessitam de uma mudança de paradigma em direção à ubiquidade dos dados com um data mesh distribuído. Zhamak acredita que, ao invés dos dados navegarem de um domínio para um data lake ou uma plataforma central, cada domínio precisa armazenar e servir seus dados de uma forma facilmente consumível, em um estilo self-service.
Além disso, times responsáveis pelos dados de domínios precisam aplicar o product thinking aos conjuntos de dados providos por eles, também precisam considerar esses dados como seus produtos e quem consome essas informações, tais como profissionais da ciência de dados, do aprendizado de máquina e da engenharia de dados, como clientes.
O podcast completo, bem como sua transcrição, pode ser encontrado no InfoQ.
E por aqui?
Fazer uma comparação direta com o estágio de adoção de determinadas tecnologias e práticas no Brasil com regiões como a América do Norte e a Europa não é algo tão simples de ser feito. Nosso mercado, um tanto quanto conservador, faz com que assuntos como data mesh ainda nem ecoem por aqui, ao passo que streaming de dados já é algo que conseguimos escutar no contexto de algumas grandes empresas.
Isso, porém, não significa que não tenham coisas muito interessantes acontecendo por esses lados do planeta. Se você der uma olhada no tópico de Streaming dentro do InfoQ Brasil verá diversas palestras com conteúdos e cases bastante relevantes, como a apresentação feita pelo Eiti Kimura da Wavy onde ele apresenta os desafios de se processar um volume de mais de 100 milhões de transações por dia.
E em se falando de processamento e manipulação de grandes quantidades de dados em solo brasileiro, não há como não citar a Fabiane Nardon, que é Cientista de Dados Chefe na Tail. Você também pode encontrar no InfoQ Brasil muito conteúdo de excelente qualidade produzido pela Fabiane, além de também encontrar muitos bons conteúdos curados pela Fabiane que está à frente das trilhas de dados do QCon São Paulo há mais de 5 anos.