Ir para seção

O que é uma aplicação sensível à latência?

Copiar URL

Nem toda aplicação ou ambiente é compatível com as demandas de cargas de trabalho lightweight e altamente distribuídas. A edge computing é um tipo de computação que acontece perto ou no local onde estão os usuários e as fontes de dados, ou seja, fora da nuvem ou do data center centralizado tradicional. Ela acontece em um espectro de arquiteturas de infraestrutura. De um lado, na borda da rede, temos dispositivos portáteis, baratos e com recursos computacionais limitados (por exemplo, dispositivos móveis de edge computing, como smartphones e tablets). A IDC dá a essa categoria o nome de "light edge". Do outro lado, temos a "heavy edge" que compreende data centers e escritórios remotos com grandes servidores, inúmeros usuários e um alto volume de transações de dados.

Seja qual for o ponto desse espectro em que sua infraestrutura se encontra, algumas necessidades e expectativas são universais. No núcleo, usuários e dispositivos precisam realizar transações em tempo real para satisfazer as expectativas de clientes e alcançar o desempenho definido nos contratos de nível de serviço (SLAs). Isso significa que para serem consideradas eficazes nesses ambientes, as aplicações devem atingir padrões de desempenho muito específicos. Elas são chamadas de aplicações sensíveis à latência.

Antes de explicar o que são aplicações sensíveis à latência, vamos dar a definição de alguns termos básicos:

  • Latência é o tempo entre a ocorrência de um evento até seu processamento por um sistema. Para simplificar, é o tempo que leva para ir do ponto A ao ponto B.
  • Largura de banda (de rede) é o volume máximo de dados que pode ser transportado em um intervalo de tempo específico. Normalmente, é medida em megabits ou gigabits por segundo. O volume real de dados transportado em um intervalo de tempo específico é chamado de taxa de transferência. Às vezes, precisamos encontrar o equilíbrio entre largura de banda (ou taxa de transferência) alta e latência baixa. É difícil atingir esses dois quesitos ao mesmo tempo.
  • Pacotes são os elementos dos dados transportados.
  • Jitter é a variação na latência, em geral quando a consistência da comunicação da rede cai ou fica lenta de forma intermitente.
  • Tempo real significa que uma operação é executada dentro de uma quantidade de tempo específica e definida. Normalmente, é medido em milissegundos ou microssegundos. Muitas vezes, tempo real é entendido incorretamente como "imediato". Na verdade, este conceito está relacionado à abordagem determinista e significa que é garantido que uma operação ocorrerá dentro de um limite de tempo determinado, mesmo que existam outras operações ou cargas. No processamento em tempo real, cada transação é executada individualmente. Já o processamento em lote agrega várias transações.
  • Nós de edgesnormalmente se refere a qualquer dispositivo ou servidor que realize edge computing.

A latência mede o tempo de resposta real de um sistema em comparação ao tempo de resposta pretendido. Em geral, ela é usada para avaliar o desempenho da rede, do hardware, do firmware e do sistema operacional, seja individualmente ou no contexto do sistema. No caso de aplicações sensíveis à latência, é desejável um valor baixo para essa métrica, o que indica que há pouco atraso entre o início da operação e a resposta. A alta latência implica em uma operação mais lenta e, dependendo do tipo de dados, pode significar perda de pacotes. O ideal é ter sempre uma latência estável. Um jitter elevado reduz a confiabilidade da rede, mesmo com uma boa latência média.

Como exemplo de aplicação sensível à latência e baseada na edge, podemos citar os veículos autônomos conduzidos por IA. O computador do veículo tem apenas milissegundos para reconhecer se há um pedestre ou outro objeto no meio da rua e processar a correção de curso. O processamento de dados e a inteligência artificial precisam estar alocados no veículo, incluindo a telemetria ao vivo, que é transmitida para um gateway ou data center. Essa é uma aplicação crítica. Lentidão no processamento de uma transação com cartão de crédito ou em uma conferência por vídeo é frustrante para os usuários finais, mas uma falha em um veículo autônomo pode ser fatal. O Institute of Electrical and Electronic Engineers (IEEE) descreve como muitas tecnologias modernas são dependentes de aplicações sensíveis à latência.

Normalmente, as pessoas relacionam latência apenas à velocidade. Mas o correto é considerá-la como um aspecto do desempenho total do sistema. A latência é observada no intervalo de tempo entre o início e a conclusão de um evento. E esse tempo pode ter limites flexíveis ou não, dependendo da aplicação. Os veículos autônomos são um exemplo de limite rígido, pois o processamento deve ser imediato para que não ocorram falhas críticas no sistema.

Algumas cargas de trabalho não exigem baixa latência. Em outras palavras, é aceitável que o tempo entre o início e a resposta da operação seja mais alto. Essas cargas de trabalho são assíncronas, ou seja, o tempo entre o início e a conclusão não é perceptível ou relevante para os usuários. Um alta latência é aceitável em serviços de email, por exemplo. Isso acontece porque o tempo necessário para receber esse tipo de comunicação depois do envio não é facilmente observável pelo usuário final.

Em ambientes complexos (com um ou vários sistemas interagindo entre si) os efeitos da latência são cumulativos. Não importa se as operações precisam ser concluídas sequencialmente ou em paralelo, a eficácia do sistema geral pode ser afetada pelo tempo total de latência das suas operações principais. Nesse caso, a velocidade talvez não seja o fator preponderante, mas sim a métrica de consistência. Isso é chamado de latência determinística e significa que a latência esperada para uma operação (ou a latência total de todas as operações) é previsível e consistente. Esse é um fator crítico quando vários dispositivos precisam estar sincronizados, como radares de matriz faseada, equipamentos de telecomunicações ou máquinas industriais.

Em resumo, uma aplicação sensível à latência é, funcionalmente, uma aplicação em tempo real. Isso inclui qualquer aplicação cujas operações precisem ocorrer dentro de uma janela determinística, em geral medida em microssegundos, e que tenha seu desempenho afetado de forma negativa por uma latência alta ou variável. Elas também são chamadas de aplicações de baixa latência.

Pode ser útil caracterizar as aplicações como "sensíveis à latência", quando o desempenho é prejudicado sem que elas deixem de funcionar, ou como "de latência crítica", quando falhas acontecem assim que a latência ultrapassa um determinado ponto.

Com frequência, a latência é associada ao desempenho da rede. Porém, as aplicações sensíveis à latência mostram nem sempre a qualidade da rede é a única culpada. Os fatores que influenciam o tempo de processamento também interferem na latência.

Na virtualização e com as máquinas virtuais, diferentes processos virtuais competem pelo uso de recursos de CPU e compartilhados, como memória e armazenamento. Até mesmo as configurações do sistema, como o gerenciamento de energia e o tratamento de transações, podem afetar a forma como cada processo acessa os recursos.

Nos ambientes de cloud computing, os desafios são semelhantes. Quanto mais camadas de abstração existirem no ambiente de hardware, mais difícil será alocar os recursos compartilhados e de processamento de forma a otimizar o tempo de processamento e minimizar a latência das aplicações principais. Há provedores de nuvem, como a Amazon Web Services (AWS), que oferecem implantações e otimizações para aplicações sensíveis à latência e de latência crítica.

Quando trabalhamos com aplicações sensíveis à latência, o ambiente operacional e o hardware subjacente são tão importantes para garantir a confiabilidade quanto a infraestrutura de rede e a configuração.

Muitas vezes, a arquitetura de edge é comparada a uma cebola, composta de camadas de hardware em círculos concêntricos que se afastam progressivamente do data center. Cada camada tem sua própria arquitetura e particularidades, exigindo soluções específicas para cada diferente caso de uso.

As camadas externas da arquitetura de edge são aquelas mais próximas das interações geradoras de dados, como as com clientes/usuários e dispositivos gerenciados. Elas precisam ser altamente responsivas a novos dados e mudanças nas condições, por isso são as camadas com maior probabilidade de implantação de aplicações sensíveis à latência ou em tempo real. Além disso, essas também são as camadas mais distantes dos locais de armazenamento de dados e com a maior probabilidade de conter hardware pequenos e leves, como tablets ou dispositivos de Internet das Coisas (IoT).

Nesse contexto, os líderes de TI precisam desenvolver políticas e processos que garantam o desempenho das aplicações sensíveis à latência e dos ambientes de edge computing em geral. Eles devem:

  • Criar pipelines de desenvolvimento e implantação claros e centralizados.
  • Implementar políticas de atualização e gerenciamento de software e hardware consistentes.
  • Integrar testes de desempenho a todos os pipelines.
  • Automatizar sempre que possível.
  • Defina ambientes operacionais padrão para manter a consistência em toda a edge.
  • Incrementar a interoperabilidade por meio de metodologias e padrões abertos e consistentes

As práticas recomendadas para IoT industrial (IIoT), computação de alto desempenho e outras arquiteturas distribuídas são muito parecidas. A edge ou a IoT não são um estado final, mas um meio para alcançar um objetivo específico. Da mesma forma, a velocidade não é o único benefício das aplicações sensíveis à latência. Essas aplicações são úteis para os casos em que o processamento rápido dos dados pode criar experiências mais poderosas para os clientes. Ou ainda, gerenciar equipamentos grandes com segurança e eficiência, reagir a mudanças nas condições operacionais ou se adaptar às novas entradas de dados.

O sistema operacional é tão importante para a edge e os ambientes de nuvem quanto para um data center físico e sua infraestrutura de servidores. É o sistema operacional que disponibiliza as funcionalidades essenciais, como provisionamento e gerenciamento de recursos (algo crucial para as aplicações sensíveis à latência), assim como outros requisitos de TI, como segurança e configuração da rede.

No caso das aplicações sensíveis à latência, a questão é analisar o volume de dados a ser executado no data center ou na nuvem e decidir se é preferível transferi-los para serem executados localmente. É necessário encontrar um equilíbrio entre quantidade de dados e velocidade.

Se os riscos da latência estiverem no processamento local, existem ferramentas específicas que podem melhorar o desempenho do sistema. Por outro lado, é possível projetar uma arquitetura com ferramentas e tecnologias variadas que minimizem os efeitos da latência.

Como resolver o problema da latência na arquitetura

Dependendo da abordagem escolhida, sua maior preocupação poderá ser com os requisitos de latência na rede. Isso significa que a arquitetura de edge é um fator crítico para que seus serviços sejam executados com eficiência. Nos casos de latência de rede, a arquitetura de edge deve ser capaz de tratar os dados localmente, na própria edge, em vez de transmiti-los em estado bruto a um data center que irá processá-los e enviará uma resposta. Transferir o processamento de aplicações para a edge reduz a dependência em redes com alta latência.

O Red Hat® Enterprise Linux® for Distributed Computing oferece funcionalidades otimizadas para a edge. Com ele, você pode implantar cargas de trabalho de aplicações em uma arquitetura de nuvem híbrida distribuída (incluindo data center, nuvem e edge) com um ambiente operacional aberto e consistente. É possível instalar o Red Hat Enterprise Linux for Distributed Computing nos endpoints e gateways da edge para que as aplicações analisem e processem dados localmente, ao mesmo tempo em que transmitem atualizações e insights relevantes para servidores na nuvem ou no data center. Isso reduz a dependência em redes com alta latência, largura de banda inconsistente e conexões intermitentes.

Como resolver o problema da latência no sistema

O tempo é crítico para ambientes sensíveis à latência. Mesmo nas arquiteturas bem projetadas, é sensato ter um sistema de alto desempenho na edge para o processamento local.

As aplicações sensíveis à latência precisam de um ambiente operacional altamente adaptável. O Red Hat Enterprise Linux for Real Time é um pacote especial criado para implementar alterações em algoritmos e subsistemas, projetado especificamente para ambientes sensíveis à latência e que precisam de previsibilidade e velocidade superior aos casos usuais de ajuste de desempenho.

O Red Hat Enterprise Linux for Real Time inclui utilitários compatíveis com as principais configurações para incrementar o desempenho em tempo real com:

  • Otimização das configurações de hardware e de memória, bem como das aplicações criadas com técnicas de programação paralelas.
  • Controle sobre execução de aplicações multithreaded e multiprocess.
  • Verificação de compatibilidade do sistema de hardware.
  • Definição do comportamento do armazenamento em cache.

Conte com um ecossistema expandido

São casos como este que revelam o poder do ecossistema da Red Hat. Com as configurações e fornecedores de hardware certificados para o Red Hat Enterprise Linux for Real Time e o Red Hat Enterprise Linux for Distributed Computing você tem a segurança de que suas aplicações de edge irão funcionar de acordo com suas especificações.

Além disso, o Red Hat Enterprise Linux pode ser integrado ao Red Hat® OpenShift® (para a implantação e a orquestração de containers Kubernetes), ao Red Hat® Ansible® Automation Platform (para a automação) e ao Red Hat Middleware (para o gerenciamento de processos e decisões, fluxos de dados, integração e acesso a outras ferramentas).

A edge computing é uma estratégia para oferecer insights e experiências no momento em que sãonecessários. O Red Hat Enterprise Linux for Real Time, o Red Hat Enterprise Linux for Distributed Computing e as demais soluções do portfólio da Red Hat oferecem uma base poderosa para colocar essa estratégia em prática.

Leitura recomendada

Artigo

IoT e edge computing

A IoT precisa de um poder computacional mais próximo de onde o dispositivo físico ou a fonte de dados estão localizados. A edge computing oferece essa fonte local de processamento e armazenamento para a IoT.

Artigo

O que é edge computing?

A edge computing, ou computação de borda, é aquela na qual o processamento acontece no local físico (ou próximo) do usuário ou da fonte de dados.

Artigo

Edge computing para telecomunicações

Edge computing é uma prioridade para muitos provedores de serviços de telecomunicações em seu processo de modernização das redes e busca por novas fontes de receita.

Leia mais sobre a Edge Computing

Soluções Red Hat

Uma plataforma estável e comprovada, versátil o suficiente para lançar novas aplicações, virtualizar ambientes e criar uma nuvem híbrida mais segura.

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

Um portfólio de software empresarial otimizado para implantações lightweight na edge.

Conteúdo adicional

Resumo

Edge computing e cidades inteligentes

Uso da edge computing em cidades inteligentes e no gerenciamento de emergências

Vídeo

The Source TV: Inovação pelas bordas e o avanço da Edge Computing

Entenda como a Edge Computing está fazendo cada vez mais parte da nossa vida

Ebook

Ganhe mais competitividade com sua estratégia de containers