fbpx
Redis, MongoDB, RabbitMQ, Sentry e muito mais que o mundo Linux pode oferecer para aplicações .Net
Publicado em: domingo, 23 de mar de 2014
Categorias: Arquitetura

Se você não conhece nenhuma dessas soluções, vou fazer um breve apanhado sobre as capacidades de cada uma delas.

Redis ( http://redis.io/ )

Redis é um Key-Value Storage. Basicamente um tipo de NoSQL baseado em chave-valor. Nele armazenamos objetos complexos. É uma solução muito útil para cache, entre outras abordagens. Se você já usou SharedCache, Memcached, e outras soluções de cache, sabe muito bem do que estou falando. Para você que nunca usou, pense que quando a descoberta de um dado é relativamente custosa, armazenar esse dado em um cache é uma das primeiras estratégias para garantir carga em seu site ou aplicação. Com um cache server você armazena seus objetos, determina um tempo de expiração para o objeto que está armazenando, e na medida que a aplicação vai sendo utilizada, cada vez mais você deixa de executar aquele longo processamento para entregar dados já processados que estão no cache. Já vi pessoas dizendo que o esforço para ir a um cache de rede e entregar um resultado a partir dele possa parecer infundado, mas quando você recebe milhares de requisições por segundo, processar algumas queries a cada request te custam caro, muito caro.

MongoDB ( https://www.mongodb.org/ )

Não há quem não tenha lido sobre NoSQL que não tenha ouvido falar nele. MongoDB é uma das soluções NoSQL mais conhecidas e usadas pelo mercado. Mas admito considerar que nossa relação esteja por um fio. De qualquer forma, se você pode usar um document store em seu ambiente de produção, MongoDB é sempre uma solução a se pensar.

Existem diversos fatores que te fazem pensar em NoSQL, seja por flexibilidade, performance, e capacidade de lidar com volumes dados realmente grandes. MongoDB sempre terá seu espaço. Mas considere o Couchbase como alternativa, eu venho olhando para o produto com um olhar muito benevolente nos últimos meses.

RabbitMQ ( https://www.rabbitmq.com/ )

Nessa área, embora o RabbitMQ tenha se mostrado uma das melhores soluções do mercado, existem diversas alternativas. O principal motivador para usar filas, invariavelmente é pensar em modelos assíncronos e escaláveis de processamento. A adoção do RabbitMQ se dá pela implementação do standard AMQP, esse sim merece muito sua atenção. Se você ainda usa MSMQ, principalmente! MSMQ está fadado ao fracasso e a tendência é que a Microsoft ofereça um serviço AMQP fora do Azure. Acredito que o Service Bus for Windows Server já esteja compatível com AMQP, mas a adoção de AMQP no Azure é o principal sinal de que todo o mercado, inclusive a Microsoft, estão convergindo para padrões universais, inclusive no quesito message broker.

Sentry ( https://getsentry.com/ )

O Sentry me foi apresentado por um rapaz que trabalha comigo, e admito nunca ter sequer chegado perto dessa solução antes disso. Já conhecia o LogEntries e ao conhecê-lo adito ter me frustrado muito, principalmente por estar planejando um produto exatamente assim. Fato que criei o LogEngine, que por sua vez tinha uma performance muito boa se comparado a estes, mas me faltou braço para criar a interface Web. O Sentry vem como uma solução centralizada para armazenamento e visualização de eventos de aplicação, servindo para que você tenha um console completo com tudo o que acontece com sua aplicação.

E o Linux?

O que todas essas soluções trazem de interessante é que foram concebidas para performar melhor em ambiente linux, mas nem por isso, soluções baseadas em tecnologia Microsoft não podem se valer do grande benefício que esses serviços nos prestam. Ter um parque heterogêneo não é fácil, mas podemos usar o melhor que cada mundo tem a nos oferecer!

Enfim sem bairrismo, use aquilo que te ajuda a te entregar mais, com menos!

E você, está usando outros serviços hospedados em servidores linux que podem ajudar aplicações .net? Quais?

O Cloud Native .NET é meu principal projeto.

Onde empenho energia para ajudar, acompanhar, direcionar Desenvolvedores, Líderes Técnicos e jovens Arquitetos na jornada Cloud Native.

Conduzo entregando a maior e mais completa stack de tecnologias do mercado.

Ao trabalhar com desenvolvedores experientes, eu consigo usar seu aprendizado com .NET, banco de dados, e arquitetura para encurtar a jornada.

Ao restringir à desenvolvedores .NET eu consigo usar do contexto de tecnologias e problemas do seu dia-a-dia, coisas que você conhece hoje, como WCF, WebForms, IIS e MVC, por exemplo, para mostrar a comparação entre o que você conhece e o que está sendo apresentado.

É assim que construímos fundamentos sólidos, digerindo a complexidade com didática, tornando o complexo, simples.

É assim que conseguimos tornar uma jornada densa, em um pacote de ~4 meses.

Eu não acredito que um desenvolvedor possa entender uma tecnologia sem compreender seus fundamentos. Ele no máximo consegue ser produtivo, mas isso não faz desse desenvolvedor um bom tomador de decisões técnicas.

É preciso entender os fundamentos para conseguir tomar boas decisões.

2 Comentários

  1. Marcos

    É como pegar um motor de uma Ferrari, caixa de marchas de uma lamborghini e os bancos de um Camaro para equipar um Fusca da Microsoft.

    Responder
    • Luiz Carlos Faria

      Marcos, há uma desconexão incrível entre teu argumento e realidade. Nossos banchmarks com .NET Core são incríveis, acho que vale uma pesquisa.
      A propósito, te convido a conhecer o que temos feito de open source e o que fazemos no dia-a-dia junto à comunidade. Temos muito a aprender, mas estamos no caminho certo, acredito que seria uma incrível experiência programar em C#, no Visual Studio, seja para windows ou para linux.
      Eu tenho feito muito esforço para que narrativas como essa que postou aqui nos comentários não existam mais.

      Responder

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Luiz Carlos Faria

Mensagem do Autor

Espero que goste desse post. Não deixe de comentar e falar o que achou.

Se acha que esse post pode ajudar alguém que você conheça, compartilhe!

 

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.