Capture dados de IoT com o MongoDB em 5 minutos
Avalie esse Artigo
Observação: este artigo discute o Stitch. Stitch agora é MongoDB Realm. Todas as mesmas funcionalidades e funcionalidades, agora com um novo nome. Saiba mais aqui. Atualizaremos este artigo no devido tempo.
Capturar dados de IoT (Internet das Coisas) é uma tarefa complexa por 2 motivos principais:
- Temos que lidar com uma grande quantidade de dados, então precisamos de uma arquitetura sólida.
- Mantendo um nível de segurança à prova de balas.
Primeiro, vamos dar uma olhada em uma arquitetura de captura padrão do IoT:
À esquerda, temos nossos sensores. Vamos presumir que eles possam enviar dados a cada segundo pelo TCP usando um POST e suponhamos que temos um milhão deles. Precisamos de uma arquitetura capaz de lidar com um milhão de queries por segundo e capaz de resistir a qualquer tipo de falha de rede ou hardware. As queries TCP precisam ser distribuídas uniformemente para os servidores de aplicativos usando balanceadores de carga e, finalmente, os servidores de aplicativos podem enviar os dados para nossos vários roteadoresMongos a partir do nosso Cluster Fragmentado MongoDB.
Como você pode ver, essa arquitetura é relativamente complexa de instalar. Precisamos:
- comprar e manter muitos servidores,
- fazer atualizações de segurança regularmente nos sistemas operacionais e aplicativos,
- ter um recurso de escalonamento automático (reduzir o custo de manutenção e habilitar o failover automático).
Esse tipo de arquitetura é caro e o custo de manutenção também pode ser bastante alto.
Agora vamos resolver esse mesmo problema com o MongoDB Stitch!
Depois de criar um MongoDB Atlas cluster, você pode anexar um aplicativoMongoDB Stitch a ele e, em seguida, criar um HTTP Service contendo o seguinte código:
1 exports = function(payload, response) { 2 const mongodb = context.services.get("mongodb-atlas"); 3 const sensors = mongodb.db("stitch").collection("sensors"); 4 var body = EJSON.parse(payload.body.text()); 5 body.createdAt = new Date(); 6 sensors.insertOne(body) 7 .then(result => { 8 response.setStatusCode(201); 9 }); 10 };
E é isso! É tudo de que precisamos! Nosso serviço HTTP POST pode ser acessado diretamente pelos sensores do webhook fornecido pelo MongoDB Stitch da seguinte forma:
1 curl -H "Content-Type: application/json" -d '{"temp":22.4}' https://webhooks.mongodb-stitch.com/api/client/v2.0/app/stitchtapp-abcde/service/sensors/incoming_webhook/post_sensor?secret=test
Como o MongoDB Stitch é capaz de ser dimensionado automaticamente de acordo com a demanda, você não precisa mais lidar com a infraestrutura ou lidar com failovers.
Obrigado por reservar um tempo para ler minha postagem. espero que você tenha achado útil e interessante.
Se você estiver procurando uma maneira muito simples de começar a usar o MongoDB, pode fazer isso com apenas 5 cliques em nosso serviço de banco de dadosMongoDB Atlas na nuvem.
Você também pode experimentar o MongoDB Stitch gratuitamente e descobrir como o faturamento funciona.
Se você quiser fazer query de seus dados enquanto está no MongoDB Atlas usando o MongoDB Stitch, recomendamos este artigo de michael lynn.