Entendendo o Apache Spark

O Apache Spark atualmente é a principal ferramenta na computação distribuída quando o assunto é bigdata. Diferentemente do passado hoje há um mercado muito vibrante com concorrentes, mas não tiram o brilho desse. Ele suporta linguagens de programação diferentes, algo fundamental para atrair programadores, engenheiros ou cientistas de dados. Suas estratégias internas são rebuscadas, como é o caso da LazyEvaluation e suas DAG's criadas sob medida. Além disso ele possui diversas bibliotecas públicas ao invés do tooling do Hadoop que tinha uma manutenção complicada. O artigo Entendendo o Apache Spark explora um pouco de tudo isso.

O Apache Spark atualmente é a principal ferramenta na computação distribuída quando o assunto é bigdata. Diferentemente do passado hoje há um mercado muito vibrante com concorrentes, mas não tiram o brilho desse. Ele suporta linguagens de programação diferentes, algo fundamental para atrair programadores, engenheiros ou cientistas de dados. Suas estratégias internas são rebuscadas, como é o caso da LazyEvaluation e suas DAG’s criadas sob medida. Além disso ele possui diversas bibliotecas públicas ao invés do tooling do Hadoop que tinha uma manutenção complicada. O artigo Entendendo o Apache Spark explora um pouco de tudo isso.

O Essencial do Hadoop

O Hadoop materializou o conceito de bigdata e modificou toda a forma em que o mercado encara os dados. Ele tem uma arquitetura muito bem feita para suportar grandes volumes. Ele possui um sistema de arquivos distribuidos, o HDFS, que lida com esse problema. Além disso há o map-reduce que em alinhamento com o HDFS produz cálculos em massas inacreditáveis de dados: Ainda que utilizando vários computadores de desempenho mediano. Por fim o Yarn possibilizou uma maior extensibilidade do produto, dando abertura para novas ferramentas como o Zookeeper, Pig ou Spark. O Essencial do Hadoop dá uma visão panorâmica sobre o produto além de pequenos exemplos.

O Hadoop materializou o conceito de bigdata e modificou toda a forma em que o mercado encara os dados. Ele tem uma arquitetura muito bem feita para suportar grandes volumes. Ele possui um sistema de arquivos distribuidos, o HDFS, que lida com esse problema. Além disso há o map-reduce que em alinhamento com o HDFS produz cálculos em massas inacreditáveis de dados: Ainda que utilizando vários computadores de desempenho mediano. Por fim o Yarn possibilizou uma maior extensibilidade do produto, dando abertura para novas ferramentas como o Zookeeper, Pig ou Spark. O Essencial do Hadoop dá uma visão panorâmica sobre o produto além de pequenos exemplos.

Arquitetura Lambda e Arquitetura Kappa

Ambas as arquiteturas são capazes de lidar com dados massivos, volumosos etc. com características particulares. O uso da Lambda é o mais popular, mas que exige mais tecnologias envolvidas, tem uma manutenção mais difícil; ao contrário da Kappa que simplifica tudo, porém pode não ter o histórico dos dados. Como de costume, trata-se de analisar um caso em específico para saber qual arquitetura se parece mais adequada.

Ambas as arquiteturas são capazes de lidar com dados massivos, volumosos etc. com características particulares. O uso da Lambda é o mais popular, mas que exige mais tecnologias envolvidas, tem uma manutenção mais difícil; ao contrário da Kappa que simplifica tudo, porém pode não ter o histórico dos dados. Como de costume, trata-se de analisar um caso em específico para saber qual arquitetura se parece mais adequada.

Mediator Pattern no Domain Driven Design

Mediator Pattern no Domain Driven Design

O padrão mediator é relativamente simples de entender mas pode se tornar complexo de manter. Além disso ele é muito conveniente quando se trabalha com Domain Driven Design. Assim é possível isolar agregados e garantir comunicação entre eles sem acoplamento: Entenda que isso independe se utiliza-se arquitetura monolitica ou de microserviços. Desse modo o artigo Mediator Pattern no Domain Driven Design demonstrou cenários práticos, diferenetes formas de implementar, com frameworks de terceiros ou sem. Embora os exemplos estejam em C#, eles são facilmente compreensíveis e portáveis para outras plataformas ou linguagens.

Gossip Protocol e a manutenção do estado em sistemas distribuídos

Gossip Protocol

Gossip Protocol e a manutenção do estado em sistemas distribuídos: O Gossip Protocol é um protocolo de disseminação de informações. Ele permite a manutenção de atualizações do estado em sistemas distribuídos. Desse modo, isso significa que ele garante que todos os nodos de um cluster possuam a mesma informação, garantindo o estado entre eles. Ao mesmo tempo isso é conseguido através de um mecanismo de propagação de informação. Desse modo cada nó envia sua informação atualizada para um conjunto específico de outros nós na rede. Assim esses nós retransmitem essas atualizações para outros nós, criando uma espécie de efeito de bola de neve (Ou melhor, fofoca, que é a tradução da palavra Gossip).