- Desenvolvimento de Software
No dia 09 de outubro, recebemos em nossa sede Sérgio Lemos. O engenheiro da computação graduado pela PUCRS, que foi colaborador da SoftDesign em 2015, hoje atua como engenheiro de software na Amazon de Vancouver, no Canadá. Motivado pelo conhecimento adquirido na multinacional principalmente ao trabalhar com o Redis, Lemos aproveitou a visita ao Brasil para apresentar aos nossos colaboradores tal aplicação e suas possibilidades de uso.
De acordo com Lemos, o Redis é um armazenador de estruturas de dados open source (código aberto) que utiliza a memória RAM do servidor para fins de armazenamento. Ele pode ser utilizado como banco de dados, cache e message broker – esse último responsável por fazer o intermédio de informações sem sobrecarregar um determinado sistema. Além disso, ele ainda pode servir para armazenamento de sessões de site, análises em tempo real, ranking de games online, aplicações de bate-papo e função geoespacial.
“A função geoespacial é bastante utilizada por aplicativos de serviços de transportes privados. Ela tem o objetivo de armazenar as posições dos veículos mais próximos para que sejam transmitidas aos usuários. O Redis tem suporte nativo para este fim”, comentou Lemos.
Segundo Lemos, existem duas formas de implementá-lo.
• Redis Replicated: se constitui de um mestre e réplicas no banco de dados e funciona por meio do envio de todos os comandos de escrita para essas réplicas. Elas, por sua vez, não aceitam escritas mas, no entanto, é possível subscrevê-las para que aceitem. De qualquer forma, as escritas não serão enviadas para o mestre.
Lemos explicou que, de forma geral, a Redis Replicated é utilizada para escalar a leitura do Redis ou simplesmente para ter uma réplica em stand by – tanto para contingência, caso o mestre caia e a réplica assuma, quanto para fazer snapshots (para fins de backup dos dados). “Os snapshots afetam a performance do armazenador. Então, se você fizer o snapshot na réplica, você garante que isso não vai interferir no mestre”, comentou o engenheiro de software.
• Redis Cluster: tal forma de aplicação do Redis opera como uma evolução do Redis Replicated e se apresenta útil quando o objetivo é escalar escritas. Diferentemente do Redis Replicated (no qual, quando o mestre cai as réplicas são informadas, mas não conseguem agir em relação a isso) neste formato, pelo fato de haver diversos mestres e esses estarem interconectados, quando um deles cai, um novo mestre é eleito. “Esta forma de aplicação do Redis confere resiliência ao banco de dados. No entanto, requer mais conhecimento técnico para fins de configuração”, explicou Lemos.
Lemos terminou sua apresentação falando sobre os dois grandes provedores de Redis que existem no mercado atualmente, caso seja necessário utilizá-lo como serviço. São eles: RedisLabs e o ElastiCache (Amazon). Ele ainda compartilhou com os nossos colaboradores como foi adaptar-se à cultura de um outro país e os desafios da sua atuação em uma grande empresa.