Como criar um aplicativo nativo de nuvem

Concluído

Como os aplicativos nativos de nuvem são compostos pelos componentes de sua escolha, você pode arquitetar facilmente uma solução que usa tecnologias com as quais você está familiarizado. Por exemplo, se o Python se adequar melhor ao seu serviço de análise de dados, mas seu serviço de email for mais adequado ao uso de uma solução predefinida, a modularidade arquitetônica dos aplicativos nativos de nuvem simplificará significativamente a implementação. Essa modularidade se estende até mesmo para diferentes provedores de nuvem.

Por exemplo, muitos serviços de nuvem, como o banco de dados do Azure para MySQL, permitem desenvolver usando as versões de código aberto das tecnologias com as quais você está acostumado, mas o Azure cuida das responsabilidades de administração e implantação para você.

Como arquitetar uma solução nativa de nuvem para a Adatum

Em nosso cenário, podemos arquitetar uma solução que é fácil para uma pequena equipe desenvolver, mas também pode ser dimensionada com segurança para milhares de dispositivos. A funcionalidade de nuvem elimina muitos problemas de desenvolvimento decorrentes da necessidade de conectar a um grande número de dispositivos e processar dados sob demanda. Usando a infraestrutura de nuvem, os serviços predefinidos podem ser facilmente configurados para se comunicar entre si e realizarem o dimensionamento automático conforme necessário.

Posteriormente, se necessário, a solução poderá aumentar para acomodar produtos novos ou atualizados. No nosso cenário, se uma cadeia de hotéis que encomenda milhares de refrigeradores precisar de funcionalidade extra, é possível criar um serviço extra sem tempo de inatividade para os clientes existentes.

Começando pequeno

Para começar, poderíamos usar um aplicativo Web básico para uma interface de gerenciamento. Um back-end simples na nuvem pode retransmitir mensagens de geladeiras inteligentes para o aplicativo Web, que pode ser conteinerizado e implantado em um cluster do Kubernetes, de modo que o número de contêineres possa ser escalado conforme necessário. O diagrama a seguir mostra esse relacionamento. A caixa Node.js Express retransmite mensagens para nossa caixa Next.json do aplicativo Web, sendo ambas implantadas do serviço Kubernetes.

Essa solução é facilmente conectada ao banco de dados de sua escolha, permitindo que um serviço escalonável e de ponta a ponta esteja em funcionamento com rapidez.

Basic inventory service with Node and webapp.

Como expandir nosso aplicativo

Os dispositivos inteligentes oferecem uma grande quantidade de opções de conectividade e dados. Os avanços no campo IoT oferecem opções econômicas para coletar dados e transmiti-los para a nuvem. Os serviços de nuvem de IoT para dispositivos inteligentes são fáceis de conectar, permitindo que você transmita dados telemétricos, como temperaturas de geladeiras, consumo de energia e qualidade da água.

Os desenvolvedores podem usar serviços de nuvem, como o Hub IoT e Stream Analytics, para desenvolver aplicativos nativos de nuvem com integração de IoT. Como grande parte do trabalho de base foi feita para você, o tempo de desenvolvimento pode ser significativamente reduzido.

Devido à natureza flexivelmente acoplada de aplicativos nativos de nuvem, você pode escolher uma solução de banco de dados diferente para dados telemétricos que seja mais adequada para dados de streaming, como o Cosmos DB, em vez de um banco de dados relacional tradicional que pode ser mais adequado para um serviço de inventário.

Telemetry service using IoT Hub, Azure Stream Analytics, and Cosmos DB.

À medida que os serviços são separados, sua equipe também pode desenvolver e implantar um serviço de IoT sem afetar o serviço de inventário existente, conforme mostra a imagem abaixo.

Final architecture combining both the inventory service and telemetry service.