O que é uma Carga de Trabalho?

Uma carga de trabalho refere-se ao conjunto de tarefas, processos ou trabalhos que um sistema ou aplicativo executa

O que é uma carga de trabalho?

Na computação, uma carga de trabalho refere-se às tarefas, aos processos ou aos trabalhos que um sistema, serviço ou aplicativo executa. As cargas de trabalho não se tratam apenas de aplicativos; elas representam a atividade ou a demanda sobre a infraestrutura subjacente.

No restante deste recurso, exploraremos a diferença entre cargas de trabalho e aplicativos, os tipos comuns de cargas de trabalho e como gerenciar, automatizar e proteger cargas de trabalho em ambientes de TI modernos. Também destacaremos exemplos do mundo real para tornar esses conceitos concretos. Continue lendo para saber mais.

Cargas de trabalho vs. aplicativos

À primeira vista, cargas de trabalho e aplicativos podem parecer intercambiáveis, mas eles servem a propósitos distintos no projeto de sistemas. Um aplicativo refere-se ao software em si, seja um aplicativo web, aplicativo móvel ou software de desktop. A carga de trabalho, no entanto, é o que o aplicativo exige do sistema subjacente, como unidadescentrais de processamento (CPUs), memória ou espaço em disco.

Pense em um aplicativo de e-commerce. A carga de trabalho do aplicativo é determinada pelo número de transações (ou pedidos) processadas por minuto, usuários simultâneos e pelos processos de backend que lidam com atualizações de estoque, sessões de usuárioou mecanismos de recomendação. O aplicativo é estático em seu conceito, mas sua carga de trabalho flutua com base na demanda.

Compreender essa diferença é fundamental ao projetar sistemas, especialmente para escalabilidade e desempenho. Embora o aplicativo possa ser construído com um determinado número de recursos, sua carga de trabalho mudará à medida que a atividade do usuário aumentar, novos recursos forem lançados e a infraestrutura evoluir.

Tipos de cargas de trabalho

Aqui estão alguns tipos comuns:

1. Cargas de trabalho transacionais: Refere-se a sistemas que processam altos volumes de transações, como bancos de dados ou plataformas de pagamento online. Essas cargas de trabalho são caracterizadas por seus requisitos de baixa latência e alta confiabilidade.

2. Cargas de trabalho em lote: Essas cargas de trabalho executam uma série de tarefas que podem processado em lotes. Pipelines de análise de dados, relatórios noturnos e tarefas de extração, transformação e carga (ETL) são bons exemplos de cargas de trabalho em lote.

3. Cargas de trabalho interativas: Essas cargas de trabalho envolvem atividade em tempo real, como interação com usuários finais, em aplicativos web e móveis. Elas exigem tempos de resposta rápidos às entradas dos usuários.

4. Cargas de trabalho de alto consumo de processamento: Refere-se a aplicações que exigem poder de processamento significativo, como treinamento de modelos de aprendizado de máquina, renderização de vídeo ou simulações.

5. Cargas de trabalho intensivas em dados: Sistemas que precisam processar, armazenar e recuperar grandes quantidades de dados, como bancos de dados em larga escala ou plataformas de big data.

Exemplos de cargas de trabalho

  • Sites de e-commerce: Esta carga de trabalho envolve solicitações de usuários por produtos, consultas ao banco de dados para buscar detalhes de estoque, processamento de transações de pagamento e atualizações de envio.
  • Treinamento de modelo de aprendizado de máquina: Requer recursos intensivos de processamento da CPU ou da unidade de processamento gráfico (GPU) para treinar modelos em grandes conjuntos de dados. Isso é frequentemente categorizado como uma carga de trabalho intensiva em computação.
  • Serviços de streaming: Plataformas como a Netflix lidam com cargas de trabalho interativas onde o vídeo é transmitido sob demanda para os usuários. Isso envolve um backend intensivo em dados que armazena grandes arquivos multimídia.
  • Detecção de fraude em tempo real: Um caso de uso comum para uma aplicação financeira envolve analisando transações em tempo real para detectar possíveis fraudes – esta carga de trabalho de streaming processa milhares de transações por segundo durante os horários de pico.

Gestão de carga de trabalho

O gerenciamento de carga de trabalho envolve a distribuição de tarefas dentro de um sistema de recursos disponíveis, como CPU, memória e armazenamento, para garantir um desempenho eficiente. O gerenciamento adequado da carga de trabalho é crucial para que os aplicativos funcionem de maneira eficiente e eficaz.

Ferramentas como OpenPBS e Slurm permitem gerenciar a carga de trabalho em um ambiente de cluster porque agendam tarefas e alocam recursos dinamicamente em diferentes nós. Essas ferramentas otimizam os recursos de hardware ao agendar cargas de trabalho para que os trabalhos de alta prioridade recebam recursos e as tarefas menos importantes possam ser adiadas ou colocadas na fila até que os recursos fiquem disponíveis.

Automação de carga de trabalho

O gerenciamento de cargas de trabalho escalável exige automação. A automação de cargas de trabalho refere-se ao processo de agendar, executar e gerenciar tarefas automaticamente dentro de um aplicativo ou sistema. Devido à sua escalabilidade, ela apoia a otimização de recursos, minimiza o esforço manual e entrega desempenho consistente, particularmente em ambientes dinâmicos.

Conceitos-chave em automação de carga de trabalho

  • Agendamento de tarefas: A automação em nível de sistema operacional geralmente envolve o agendamento de tarefas. Uma vez configurada com regras, como horários específicos, eventos ou limites do sistema, ela pode invocar tarefas automaticamente. Exemplos de automação simples em nível de sistema operacional incluem cron jobs no Linux ou um agendador de tarefas no Windows.
  • Dimensionamento de recursos: Plataformas de automação como o Kubernetes dimensionam recursos dinamicamente devido à demanda em tempo real. Por exemplo, se houver um pico de usuários em uma aplicação web, o Kubernetes implantará automaticamente novas instâncias (contêineres) para equilibrar a carga e distribuí-la uniformemente.
  • Tratamento de erros: Os sistemas automatizados podem lidar com falhas de tarefas. Uma vez que uma tarefa falha, as ferramentas de automação podem tentar novamente, registrar um erro em log ou disparar um alerta para intervenção manual. Dessa forma, o tempo de inatividade é minimizado e o fluxo continua ininterrupto enquanto o sistema executa o que deve fazer.
  • Gerenciamento de dependências: Como a automação de carga de trabalho permite especificar quais tarefas dependem de quais, isso significa que você pode garantir que os processos sejam executados na sequência correta. Considere um pipeline de processamento de dados em que os trabalhos de ETL precisam ser executados em ordem – a extração deve preceder a transformação e o carregamento.

Ferramentas para automação de cargas de trabalho

1. Kubernetes: A principal plataforma para gerenciamento de cargas de trabalho conteinerizadas, o Kubernetes automatiza a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres. Ele usa controladores para monitorar o estado do sistema e ajusta os recursos para corresponder à demanda.

2. AWS (Amazon Web Services) Lambda: Plataformas serverless como o AWS Lambda, permite que você execute código em resposta a eventos sem provisionar ou gerenciar servidores. Esse modelo de automação permite que as cargas de trabalho sejam escaladas de forma automática e eficiente em resposta a interações de usuários, tarefas agendadas ou outros gatilhos.

3. Apache Airflow: O Airflow é uma plataforma de código aberto popular para criação, agendamento e monitoramento programáticos de fluxos de trabalho. Ele é especialmente útil para cargas de trabalho em lote, onde as tarefas devem ser executadas em sequência ou em horários específicos (por exemplo, pipelines de dados e trabalhos de ETL).

4. Terraform: O Terraform pode automatizar cargas de trabalho provisionando e gerenciando infraestrutura como código (IaC). Ele pode se integrar com plataformas como AWS e Google Cloud para automatizar políticas de escalabilidade, provisionar servidores e gerenciar fluxos de trabalho de infraestrutura complexos.

Proteção de cargas de trabalho

Com a crescente complexidade, as cargas de trabalho estão cada vez mais vulneráveis a ameaças de segurança, o que torna a proteção de cargas de trabalho vital. A proteção de cargas de trabalho envolve a segurança de aplicativos, de seus dados e da infraestrutura que os sustenta.

Uma estratégia comum envolve o uso de modelos de segurança de confiança zero (zero trust), onde cada entidade que interage com uma carga de trabalho (seja usuário ou aplicativo) é autenticada e autorizada antes de acessar os recursos. Ferramentas como AWS Shield pode ajudar a proteger cargas de trabalho contra ataques de negação de serviço distribuída (DDoS), enquanto soluções de segurança de containers como o Falcon monitoram cargas de trabalho do Kubernetes em busca de anomalias.

A proteção de cargas de trabalho em nuvem (CWP) envolve o monitoramento contínuo e a remoção de ameaças de cargas de trabalho e contêineres na nuvem. Uma plataforma de CWP (CWPP) é uma solução de segurança que protege cargas de trabalho de todos os tipos em qualquer local, oferecendo proteção unificada de cargas de trabalho em nuvem em vários provedores. Os provedores de nuvem geralmente oferecem serviços nativos de proteção de cargas de trabalho, como criptografia de dados em repouso e em trânsito, gerenciamento de identidade e acesso (IAM) e isolamento de rede por meio de nuvens privadas virtuais (VPCs).

Principais conclusões e recursos adicionais

  • Carga de trabalho Refere-se à demanda colocada sobre um sistema, ao passo que uma aplicação é um software.
  • Tipos de cargas de trabalho: Variam de transacionais e interativos a em lote, de alto desempenho computacional e intensivos em dados. Cada carga de trabalho deve ser tratada de acordo com as demandas exigidas dela.
  • Gestão de carga de trabalho: O gerenciamento eficiente de cargas de trabalho costuma ser automatizado. O objetivo é utilizar os recursos com base nas demandas do sistema.
  • Protegendo a carga de trabalho: A proteção contra ameaças à carga de trabalho é importante, e ferramentas nativas de nuvem e modelos de segurança ajudam a atender a isso.

Também deixamos para você alguns recursos adjacentes para ajudar sua empresa a criar e gerenciar aplicativos em escala.

Você pode visitar nosso blog e centro de conceitos para saber mais sobre conceitos relacionados a cargas de trabalho do Couchbase.

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.