Outro dia, tive uma videochamada de uma hora marcada para uma revisão de arquitetura com um cliente que tentava resolver dois desafios: lag nos alertas e custos de armazenamento na nuvem. Era um cliente fascinante (e o caso de uso também!), com um dos usos mais bacanas de IA que já vi.

No começo, fui chamado porque eles achavam que o Anthos, do Google, poderia ajudar a resolver um dos problemas, e eu vinha trabalhando bastante nessa área. Apesar de o Anthos poder ajudá-los lá na frente, concluímos que não era a solução certa para o que precisavam naquele momento.
Vale contar essa história porque, na minha visão, é justamente isso que diferencia a DoiT International de muitos parceiros de soluções em nuvem, além da nossa Cloud Management Platform e dos serviços oferecidos com custo zero para os clientes. A gente não recomenda algo em que não acredita ser o melhor para o cliente, e nossos times têm liberdade total para tomar essas decisões — é por isso que nossos clientes também gostam tanto da gente.
Sobre o cliente
A solução SaaS dessa empresa é usada por fábricas no mundo todo para automatizar o controle de qualidade. O que acho admirável é que eles encontraram uma forma de potencializar os trabalhadores e fazê-los desempenhar melhor a função, em vez de substituí-los por robôs. Essa é a verdadeira promessa da IA.
As fábricas conectam os feeds das câmeras que monitoram as linhas de montagem, e o software dessa empresa analisa o vídeo em tempo real e garante que cada etapa seja executada. Se identifica uma etapa faltando, dispara um alerta para que ela seja corrigida.

(não é o feed real, só um exemplo aleatório de feed de fábrica)
Talvez seja o nerd em mim falando, mas fiquei fascinado quando o cliente compartilhou a tela e se conectou a um feed ao vivo, e a gente assistia o sistema marcar uma lista de tarefas em uma fábrica de radiadores automotivos (girar a roda no sentido anti-horário, apertar uma válvula, teste de pressão etc.). Foi muito legal ver funcionando!
O problema do lag nos alertas
Um dos problemas era um lag de 4 segundos entre a detecção da falha e a notificação ao operador. Os clientes deles exigiam no máximo 2 segundos, para dar tempo de interromper a operação e corrigir antes que fosse tarde demais. Eles tinham um prazo de 6 meses para resolver isso.
Os engenheiros da empresa tinham ouvido falar do Anthos, do Google, uma plataforma que possibilita a modernização de aplicações em ambientes híbridos e multi-cloud. O Anthos permite que organizações centralizem e padronizem políticas, segurança, configuração e gestão de aplicações em containers nas principais nuvens, em ambientes virtualizados on-premise e, agora, em bare metal (na borda). Eles estavam convencidos de que, levando o processamento para mais perto do cliente, o lag seria resolvido — fora que era a "novidade do momento".
O problema de custo do cloud storage
Dá para imaginar o quão rápido o armazenamento se acumula quando se está guardando feeds de vídeo (às vezes por anos) de câmeras em todas essas fábricas pelo mundo. Cada feed gerava cerca de 700MB por hora em 720p no formato H.264, mesmo depois de multiplexado e comprimido. Eles processavam 130 horas por semana, por fábrica.
A empresa estava usando buckets de cloud storage no tier padrão, e os custos vinham subindo de forma constante. Eles também buscavam orientação para melhorar a eficiência.
Walkthrough da arquitetura
O cliente compartilhou a tela e o diagrama de arquitetura, enquanto eu e outro colega do time de arquitetura de nuvem acompanhávamos.
"Os streams ao vivo chegam, a gente armazena em buckets do Google Cloud Storage e processa. Construímos uma rede neural de deep learning customizada com 1 GPU por stream, que identifica o início e o fim de determinadas ações. Salvamos os dados gerados no Google Cloud Bigtable e, na sequência, a lógica de negócio interpreta tudo", explicaram. "Tem um lag de 4,5 segundos e, desses, mais de 3 segundos acontecem na rede neural. Quebramos o vídeo recebido em frames para alimentar a rede neural e depois recodificamos o vídeo."
Espera, como assim? "Por favor, me expliquem por que vocês recodificam o vídeo."
"Ah, isso vem de algumas escolhas ruins lá no início — quando o vídeo chega, a gente remove os timestamps. Precisamos recodificar depois da inferência para gerar o feed anotado."
"Quanto tempo leva a recodificação?", pergunta meu colega.
"Pouco mais de 2 segundos", responderam.
"E quanto tempo vocês levam para detectar uma falha?"
"Cerca de 1 a 1,5 segundo."
Bingo!
Naquele momento ficou claro que levar os workloads para a borda com o Anthos não resolveria o problema. Não era uma questão de rede, era de aplicação.
Solução proposta para o lag
Depois de discutir a arquitetura, concluímos que havia dois caminhos a explorar. O primeiro seria revisitar o motivo pelo qual removiam os timestamps na ingestão inicial e, possivelmente, eliminar essa etapa. O outro era separar o alerta da recodificação e dispará-lo na hora, sem esperar a codificação terminar.
Eles concordaram e iam designar os engenheiros para explorar essas frentes, deixando a implementação do Anthos em espera, pelo menos por enquanto. Também ficamos sabendo que eles tinham clientes que, por questões de compliance, não queriam que os feeds saíssem da fábrica. Ainda há aplicações viáveis para o Anthos On-Prem resolver no futuro próximo, mas, naquele momento, queríamos ajudar a resolver as necessidades imediatas.
Também identificamos pontos em que eles poderiam economizar processando múltiplos streams com uma única GPU. E, ao separar a inferência/alerta da recodificação, talvez nem precisassem de máquinas tão potentes.
Solução proposta para o armazenamento
Durante a análise inicial, eles contaram que usavam armazenamento no tier padrão e ainda não aproveitavam os tiers com desconto para uso menos frequente. Uma vitória fácil aqui, em que todos concordamos, foi usar o gerenciamento de ciclo de vida de objetos do Google Cloud Storage para mover objetos automaticamente, seja por idade ou frequência de acesso, para tiers mais baratos.
Apesar de o cliente já ter ficado satisfeito com isso e planejar explorar essa opção, eu queria ir um pouco mais fundo para ver se conseguíamos ganhos adicionais. Enquanto descreviam o formato H.264, lembrei de uma palestra recente com pioneiros de IA como Ian Longellow e Andrew Ng, entre outros, sobre casos de uso de generative adversarial networks (GANs) além dos "deep fakes" — e um deles era justamente melhorar a compressão de vídeo.
Propus que considerassem usar GANs para reduzir ainda mais a quantidade de dados que precisam armazenar ao arquivar esses vídeos. Eles reconheceram o potencial e ficaram muito satisfeitos com nossas sugestões. Os engenheiros saíram com encaminhamentos práticos, e estou ansioso para acompanhar o progresso em breve.
Mais uma revisão de arquitetura bem-sucedida!

Esse exemplo recente mostra o que esperar de um Senior Cloud Architect na DoiT International. Oferecemos ao time de engenharia do cliente uma camada personalizada de suporte no estilo "Stack Overflow" e ajudamos a resolver problemas respondendo na metade do tempo da maioria dos suportes de provedores de nuvem. Também ajudamos a capacitar os funcionários do cliente com treinamentos em nuvem. E, como nesse caso, atuamos em otimização de custos e revisões de arquitetura (Infraestrutura, Dados, ML ou IA e arquitetura de software).
Se isso te interessou, recomendo dar uma olhada na nossa página de Carreiras ou me chamar (com uma mensagem) no Twitter ou no LinkedIn. Buscamos os melhores e mais brilhantes, então o processo é puxado, mas, uma vez "dentro", você logo vai perceber que a DoiT International é única (algo entre uma empresa de produto e de serviços profissionais). Espero trabalhar com você em breve, seja como cliente ou colega.