Desenvolver programas para extensas coleções de aparelhos com sistema operacional Linux é uma tarefa desafiadora e crucial que demanda planejamento meticuloso e automação eficiente. Inicie seguindo essas recomendações fundamentais.

A internet das coisas revolucionou a forma como nos relacionamos com o mundo ao conectar diversos aparelhos à internet, que vão desde termostatos inteligentes em residências até sensores industriais em fábricas. Muitos desses dispositivos IoT utilizam o sistema operacional Linux por ser flexível, resistente e de código aberto.
Parar desenvolver software em grande escala para dispositivos Linux, é importante seguir processos bem planejados e adotar as melhores práticas para assegurar a estabilidade, segurança e gerenciamento dos dispositivos IoT. Neste artigo, serão discutidas algumas estratégias recomendadas para implantar software em grandes quantidades de dispositivos IoT com base em Linux.
Mantenha-se atualizado com as informações mais recentes sobre a evolução da computação em nuvem ao assinar a newsletter InfoWorld All Things Cloud.
Utiliza envases.
Para começar, é aconselhável considerar a utilização de uma estratégia de implantação baseada em contêineres. Essa técnica consiste em empacotar o software juntamente com suas necessidades em uma imagem do contêiner, a qual pode ser facilmente implementada em dispositivos de IoT. Os contêineres Docker têm se destacado como uma opção popular para a implantação de aplicativos de IoT, pois oferecem diversas vantagens.
- Isolamento: Ao colocar a aplicação em um recipiente, é possível aumentar a segurança e a confiabilidade do sistema.
- Reformulação: A portabilidade dos contêineres Docker permite que sejam instalados em diversas plataformas compatíveis com Docker, simplificando a criação de aplicativos de IoT para diferentes dispositivos.
- Paráfrase: Os containers Docker são consistentes em sua reprodutibilidade, podendo ser criados e implementados de maneira uniforme em diversos ambientes.
- Paráfrase: Os containers Docker são altamente eficientes em termos de recursos, o que os torna uma opção ideal para dispositivos de Internet das Coisas com restrições de memória e armazenamento.
- Madura: A tecnologia Docker está bem desenvolvida, amplamente compreendida e conta com um bom suporte.
Utilize uma plataforma centralizada para gerenciamento.
Um sistema centralizado de gestão pode automatizar a supervisão e administração dos dispositivos IoT em sua frota. Com um painel unificado que fornece uma visão abrangente da saúde da frota e permite acessar detalhes, é possível poupar tempo e esforço, minimizando erros.
Ao lidar com centenas ou milhares de dispositivos, é importante que as imagens instaladas nesses dispositivos IoT se conectem automaticamente à plataforma de gerenciamento e se registrem de forma segura.
Existem várias opções de plataformas de gestão centralizada, disponíveis tanto comercialmente quanto de código aberto. Ao decidir por uma plataforma, é essencial levar em conta as necessidades particulares da sua empresa. A plataforma é compatível com a versão do Linux que você utiliza? Suporta os dispositivos escolhidos? Oferece o nível de segurança requerido? Integra-se adequadamente com o seu processo de desenvolvimento atual e futuro?
Dividir suas implementações em segmentos.
Ao lidar com grandes frotas, é essencial poder criar estruturas hierárquicas para agrupamento e subgrupos a fim de facilitar a administração em larga escala. Agrupar os dispositivos com base em suas características compartilhadas permite uma organização mais eficiente, tornando mais fácil o monitoramento, configuração e atualização de software. Os grupos podem ser organizados de acordo com a localização, tipo de dispositivo, sistema operacional, versão de aplicação, entre outros critérios. A capacidade de visualizar grupos específicos a partir de um painel central tornará a administração em larga escala muito mais gerenciável.
Automatizar as atualizações de programas de computador.
Após algum tempo da implementação inicial, será necessário atualizar o software nos dispositivos implantados. Novamente, a automação é fundamental. Embora seja possível criar vários scripts para realizar essa tarefa, é importante que eles consigam identificar automaticamente os dispositivos, estabelecer conexões seguras e realizar as atualizações com sucesso nos dispositivos. Antes de optar por essa abordagem, é importante considerar a complexidade da tarefa, os possíveis bugs, o tempo e os recursos necessários, bem como a falta de suporte ao depender exclusivamente da expertise dos desenvolvedores dos scripts.
Uma alternativa recomendada é empregar uma plataforma de gestão de IoT para automatizar essa tarefa. Há diversas opções de plataformas comerciais e de gestão de IoT de código aberto disponíveis que podem automatizar o procedimento de atualização de software. Essas plataformas geralmente contam com uma variedade de funcionalidades que as tornam mais confiáveis e eficientes do que scripts personalizados.
- Cadastro de aparelhos e identificação: As plataformas de administração de IoT podem realizar o registro automático de seus aparelhos, dispensando a necessidade de monitorar e atualizar manualmente o inventário dos dispositivos IoT. Para os aparelhos IoT situados em redes externas e firewalls públicos ou privados, é essencial contar com uma plataforma segura para estabelecer e controlar as conexões com esses aparelhos, mesmo quando seus endereços IP estão ocultos e protegidos por firewalls.
- Reprogramação de software e coordenação de atualizações: As plataformas de controle de Internet das Coisas podem programar e coordenar de maneira automática as atualizações de software em seus dispositivos IoT. Isso assegura que as atualizações sejam realizadas de forma organizada e eficaz.
- Informações sobre atualizações remotas (OTA): Embora pareça evidente, é importante ressaltar que as atualizações seguras OTA permitem a implementação de atualizações sem a necessidade de acesso físico aos dispositivos. Dessa forma, a equipe pode implementar atualizações em qualquer dispositivo, de qualquer local.
- Segmentação e diversidade: Com a presença de numerosos dispositivos IoT em grande escala, é possível encontrar uma ampla variedade de tipos e configurações, incluindo diferentes utilidades, versões, dependências e funcionalidades. A plataforma de gerenciamento precisa ter a capacidade de lidar com atualizações distintas para diversos segmentos de dispositivos, mesmo diante de uma frota com milhares de unidades, garantindo que as atualizações sejam suficientemente genéricas para contemplar os diferentes tipos e configurações existentes.
- Paráfrase: Em termos de segurança, é comum que as plataformas de gerenciamento de IoT forneçam diversas medidas para proteger os dispositivos durante as atualizações de software. Além de uma conexão criptografada e troca de token segura para autenticação, é importante que as atualizações avaliem a conformidade e possíveis vulnerabilidades do software, indo além da simples criptografia.
Se você deseja ter um controle eficaz das atualizações de software para dispositivos IoT, é aconselhável utilizar uma plataforma de gerenciamento de IoT já testada. Essas plataformas podem economizar tempo, dinheiro e evitar problemas futuros.
Elabore um plano para voltar.
Dispositivos de IoT podem representar um desafio para atualizações devido aos seus locais remotos e conexões de rede instáveis. É essencial ter um plano de contingência em caso de problemas durante as atualizações. Um plano de reversão deve ser capaz de restaurar rapidamente os dispositivos ao seu estado anterior. Sem um plano de reversão, uma falha na atualização devido a uma interrupção na rede pode resultar em muitos dispositivos inoperantes, o que exigiria visitas dispendiosas no local. Em caso de falha na atualização, um dispositivo corretamente implantado deve ser capaz de voltar automaticamente ao seu estado anterior de funcionamento.
Você pode manter uma cópia de segurança da imagem e tentar reenviá-la para os dispositivos. No entanto, esse método pode ser trabalhoso e manual, mesmo com automação por script, e requer acesso ao dispositivo com problema. Algumas plataformas de gerenciamento de IoT utilizam um cliente inteligente para facilitar o gerenciamento de conexões seguras com os dispositivos, permitindo restaurar um dispositivo para seu estado anterior após uma atualização mal sucedida.
Implemente a metodologia DevOps na Internet das Coisas.
A evolução da IoT pode estar em estágio inicial, ainda não integrada aos processos principais de DevOps. Quando chegar o momento de expandir, será necessário incluir a IoT no ambiente DevOps. Lidar com milhares de dispositivos implantados envolve desafios de escala e custos significativos.
Reconhecida como uma estratégia fundamental, o DevOps proporciona a entrega eficaz e sem falhas de atualizações e melhorias de software para dispositivos IoT. Ao incorporar o desenvolvimento de IoT em um fluxo de trabalho já existente, é possível obter uma maior cooperação, agilidade, garantia de entrega, controle e capacidade de rastreamento, elementos essenciais de um processo de DevOps contemporâneo.
Garanta a segurança do seu procedimento de implementação.
É essencial empregar um procedimento de implantação seguro para resguardar os dispositivos IoT contra acessos não autorizados, vulnerabilidades acidentais e malware. Uma implementação segura deve abranger mecanismos de autenticação robustos para acessar os dispositivos e o sistema de gerenciamento. A transmissão de dados entre os dispositivos e o sistema de gerenciamento deve ser protegida por criptografia. Além disso, é fundamental que a conexão dos dispositivos clientes com a plataforma após a implantação seja sempre cifrada.
Para assegurar a autenticidade de um dispositivo IoT e da plataforma de gerenciamento com a qual está se conectando, é essencial realizar uma troca de tokens que sirva para autenticar tanto o cliente quanto a plataforma. Em resumo, o dispositivo e a plataforma precisam gerar e trocar tokens exclusivos e altamente seguros para evitar falsificações, possibilitando assim a verificação da identidade de ambos.
Além de criptografar os dados, é importante avaliar a segurança do software em si. Está livre de falhas de segurança? Foram feitas análises em busca de vulnerabilidades antes da implementação e ao longo do desenvolvimento? Se estiver utilizando software de código aberto, é recomendável consultar bancos de dados de vulnerabilidades, como cve.org e vulndb, que fornecem informações sobre pacotes de software específicos.
Além de verificar o próprio software, é importante avaliar as configurações de implantação que podem expor os dispositivos a ataques. Para simplificar esse processo, é recomendável utilizar uma ferramenta de análise de composição de software (SCA) para identificar vulnerabilidades, bem como uma ferramenta de teste de segurança de aplicação estática (SAST) para ajudar os desenvolvedores a identificar falhas no código antes da implementação. Embora essas ferramentas sejam úteis, é importante ter cuidado com possíveis alertas falsos que podem sobrecarregar os desenvolvedores. Para evitar desperdício de tempo, é aconselhável buscar uma ferramenta mais avançada que leve em consideração o contexto específico do software em uso.
Os testes de segurança devem ser realizados regularmente durante todo o processo de desenvolvimento de software, desde a programação até a implementação. Incorporar práticas de segurança automatizadas nos processos de DevOps é fundamental para garantir implantações seguras. A integração de DevOps e SecOps, conhecida como DevSecOps, é amplamente reconhecida como uma prática essencial no desenvolvimento de software atual.
Automatizar a supervisão e notificações.
Monitorar extensas frotas de dispositivos IoT é crucial para assegurar seu desempenho, segurança e fiabilidade. Ao recolher e analisar de forma contínua dados provenientes desses dispositivos, as empresas podem obter perceções sobre os seus padrões de utilização, detetar potenciais problemas e tomar medidas corretivas. Dada a escala, é essencial a capacidade de automatizar o processo de monitorização e alerta. Por exemplo, verificar se um dispositivo está inativo, se os limites pré-definidos de CPU, disco ou memória estão a ser ultrapassados, ou se um determinado processo continua ativo. Ao automatizar a monitorização e os alertas de todos os dispositivos, é possível antecipar problemas antes que se agravem.
Estabelecer a possibilidade de acessar de forma remota.
Realizar pesquisas de campo pode ser custoso devido aos gastos com pessoal, tempo e deslocamento físico, sendo recomendável evitar tais despesas sempre que possível. Por isso, a capacidade de acessar remotamente dispositivos é essencial. Em situações em que é necessário intervir manualmente devido a uma falha no dispositivo, o acesso remoto ao terminal pode ser crucial, permitindo que o desenvolvedor acesse o dispositivo como se estivesse presente fisicamente. O método mais comum para isso é o uso de SSH (Secure Shell), um protocolo seguro que possibilita a conexão a um computador remoto para executar scripts e comandos diretamente no dispositivo. É importante garantir que o dispositivo esteja configurado corretamente para suportar essa funcionalidade.
Quando os dispositivos são instalados em redes privadas, atrás de firewalls, é possível usar um túnel SSH reverso para se conectar a um host remoto que esteja também atrás de um firewall. Esse método permite acessar o dispositivo como se estivesse na mesma rede que a máquina local, sem necessidade de saber o endereço IP do dispositivo ou passar pelo firewall com SSH padrão.
Uma alternativa mais eficaz é utilizar uma plataforma de IoT robusta para gerenciar sua frota, que tenha experiência comprovada no desenvolvimento e implementação de aplicativos empresariais. Essa plataforma instala um aplicativo inteligente e leve em cada dispositivo que você deseja monitorar e controlar. Esse aplicativo pode lidar com a conectividade, segurança, monitoramento, alertas e informações SSH reversas necessárias para garantir o acesso remoto ao dispositivo. O painel central forneceria uma visão abrangente de toda a frota, oferecendo a visibilidade e estrutura necessárias para atender às suas necessidades em constante evolução.
Não se aventure sozinho.
Como desenvolvedor, pode ser tentador criar uma plataforma personalizada e inteligente para gerenciar sua frota de dispositivos IoT. No entanto, essa abordagem exige tempo, experiência e um investimento significativo em especialistas internos. Para lidar de forma mais eficiente com grandes e críticas frotas de IoT, é mais conveniente estabelecer parceria com um fornecedor especializado e estabelecido, que tenha um histórico comprovado. Isso permitirá que sua equipe de desenvolvimento se concentre na criação de aplicativos de IoT de qualidade, sem a necessidade de construir e manter a infraestrutura para gerenciá-los.
Roee Alfasi é um profissional que atua como gerente de produto e possui expertise em IoT na empresa JFrog.
Lo siento, pero necesito que proporciones un texto específico para poder parafrasearlo. ¿Puedes proporcionar la oración o párrafo que deseas que parafrasee?
O New Tech Forum fornece um espaço para líderes de tecnologia, incluindo fornecedores e outros colaboradores externos, analisarem e debaterem de forma abrangente e detalhada a tecnologia empresarial emergente. A seleção é feita de forma subjetiva, com base em nossa escolha das tecnologias que consideramos relevantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não oferece garantia de publicação para fins de marketing e se reserva o direito de editar todo o conteúdo contribuído. Qualquer dúvida pode ser enviada para doug_dineley@foundryco.com.