O que é um fardo de trabalho?
Uma carga de trabalho refere-se ao conjunto de tarefas, processos ou funções que um sistema ou aplicativo executa.
O que é uma carga de trabalho?
Na computação, a carga de trabalho refere-se às tarefas, processos ou funções executados por um sistema, serviço ou aplicação. A carga de trabalho não se limita apenas às aplicações; ela representa a atividade ou a demanda na infraestrutura subjacente.
Nesta seção do recurso, vamos explorar 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 mais concretos. Continue lendo para saber mais.
- Tarefas versus aplicativos
- Tipos de cargas de trabalho
- Exemplos de cargas de trabalho
- Gestão do trabalho
- Proteção do volume de trabalho
- Principais conclusões e recursos adicionais
Tarefas versus aplicativos
À primeira vista, as cargas de trabalho e os aplicativos podem parecer intercambiáveis, mas eles têm objetivos distintos na concepção de sistemas. Uma aplicação refere-se ao próprio software, seja ele um aplicativo web, um aplicativo móvel ou um software para desktop. Enquanto isso, a carga de trabalho é o que a aplicação exige do sistema subjacente, como unidades de processamento central (CPU), memória ou espaço em disco.
Pense em um aplicativo de comércio eletrônico. A carga de trabalho do aplicativo é determinada pelo número de transações (ou pedidos) processadas por minuto, pelo número de usuários simultâneos e pelos processos do backend responsáveis pela atualização do inventário., sessões de usuárioou motores de recomendação. O aplicativo é estático em conceito, mas sua carga de trabalho varia de acordo com a demanda.
Entender essa diferença é fundamental ao projetar sistemas, especialmente aqueles destinados a escalabilidade e desempenho. Embora o aplicativo possa ser desenvolvido com um certo número de funcionalidades, sua carga de trabalho irá mudar à medida que a atividade dos usuários aumentar, novas funcionalidades forem lançadas e a infraestrutura evoluir.
Tipos de cargas de trabalho
Aqui estão alguns tipos comuns:
1. Tarefas transacionais: Refere-se a sistemas que processam volumes elevados de transações, Como bancos de dados ou plataformas de pagamento online, essas cargas de trabalho são caracterizadas por exigências de baixa latência e alta confiabilidade.
2. Tarefas em lote: Esses workloads executam uma série de tarefas que podem ser processado em lotes. Os pipelines de análise de dados, os relatórios diários e os trabalhos de extração, transformação e carregamento (ETL) são bons exemplos de cargas de trabalho em lote.
3. Tarefas interativas: Esses workloads envolvem atividades em tempo real, como interação com usuários finais, tanto em aplicativos web quanto em aplicativos móveis. Eles exigem tempos de resposta rápidos aos inputs dos usuários.
4. Tarefas de computação intensiva: Refere-se a aplicativos que exigem um processador potente, como treinamento de modelos de aprendizado de máquina, renderização de vídeo ou simulações.
5. Tarefas de trabalho intensivas em dados: Sistemas que precisam processar, armazenar e recuperar grandes quantidades de dados, como bancos de dados de grande escala ou plataformas de big data.
Exemplos de cargas de trabalho
- Sites de comércio eletrônico: Esse volume de trabalho envolve solicitações de usuários para produtos, consultas de banco de dados para obter detalhes de inventário, processamento de transações de pagamento e atualizações de envio.
- Treinamento de modelos de aprendizado de máquina: Exige recursos intensivos de processamento de CPU ou de unidades gráficas (GPU) para treinar modelos em grandes conjuntos de dados. Isso geralmente é classificado como uma tarefa com alto consumo de processamento.
- Serviços de streaming: Plataformas como a Netflix lidam com cargas de trabalho interativas onde O vídeo é transmitido em demanda para os usuários. Isso envolve um back-end de dados que armazena grandes arquivos multimídia.
- Detecção de fraudes em tempo real: Um uso comum de aplicativos financeiros envolve analisar transações em tempo real para detectar fraudes potenciais – essa carga de trabalho de streaming processa milhares de transações por segundo durante os períodos de pico.
Gestão do trabalho
A gestão da 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. A gestão adequada da carga de trabalho é fundamental para que os aplicativos funcionem de forma eficiente e eficaz.
Ferramentas como OpenPBS e Slurm permitem gerenciar a carga de trabalho em um ambiente de cluster, pois agendam tarefas e atribuem recursos dinamicamente dentro de diferentes nós. Essas ferramentas otimizam os recursos de hardware ao agendar as tarefas de forma que os trabalhos de alta prioridade recebam recursos e os menos importantes possam ser adiados ou colocados em fila até que os recursos estejam disponíveis.
Automatização do trabalho
A gestão escalável de cargas de trabalho exige automação. A automação de cargas de trabalho refere-se ao processo de agendamento, execução e gerenciamento automatizados de tarefas dentro de um aplicativo ou sistema. Graças à sua escalabilidade, ela suporta a otimização de recursos, minimiza o esforço manual e proporciona desempenho consistente, especialmente em ambientes dinâmicos.
Principais conceitos na automação de trabalho
- Programação de tarefas: A automação ao nível do sistema operacional geralmente envolve a programação de tarefas. Uma vez configurada com regras, como horários específicos, eventos ou limites de sistema, ela pode executar tarefas automaticamente. Alguns exemplos de automação simples ao nível do sistema operacional incluem os trabalhos cron no Linux ou um cronômetro de tarefas no Windows.
- Escalabilidade de recursos: Plataformas de automação como o Kubernetes escalam os recursos dinamicamente devido à demanda em tempo real. Por exemplo, se houver um aumento no número de usuários em um aplicativo web, o Kubernetes irá automaticamente criar novas instâncias (containers) para equilibrar a carga e distribuí-la uniformemente.
- Manuseio de erros: Os sistemas automatizados podem lidar com falhas de tarefas. Uma vez que uma tarefa falhar, as ferramentas de automação podem tentar novamente, registrar um erro ou causar uma alerta para entrada manual. Dessa forma, o tempo de inatividade é minimizado e continua sem interrupção enquanto o sistema realiza o que deve.
- Gerenciamento de dependências: Uma vez que a automação da carga de trabalho permite especificar quais tarefas dependem de outras, isso significa que você pode garantir que os processos sejam executados na sequência correta. Considere um pipeline de processamento de dados: 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 tarefas
1. Kubernetes: A plataforma líder para gestão de cargas de trabalho containerizadas, o Kubernetes automatiza o implantação, o dimensionamento e a gestão de aplicativos containerizados. Utiliza controladores para monitorar o estado do sistema e ajusta os recursos de acordo com a demanda.
2. AWS (Amazon Web Services) Lambda: Plataformas sem servidor O AWS Lambda permite executar código em resposta a eventos sem necessidade de provisionamento ou gerenciamento de servidores. Este modelo de automação permite que as cargas de trabalho se escalem automaticamente e de forma eficiente em resposta às interações dos usuários, às tarefas agendadas ou a outros triggers.
3. Apache Airflow: O Airflow é uma plataforma de código aberto popular para a criação programática, agendamento e monitoramento de fluxos de trabalho. É 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 ETL).
4. Terraform: O Terraform pode automatizar cargas de trabalho ao provisionar e gerenciar infraestrutura como código (IaC). Ele pode ser integrado a plataformas como o AWS e o Google Cloud para automatizar políticas de escalabilidade, provisionar servidores e gerenciar fluxos de trabalho complexos de infraestrutura.
Proteção do volume de trabalho
Com a crescente complexidade, os workloads ficam cada vez mais vulneráveis a ameaças de segurança, o que torna a proteção deles fundamental. A proteção de workloads envolve a segurança das aplicações, dos seus dados e da infraestrutura que os suporta.
Uma estratégia comum envolve o uso de modelos de segurança de confiança zero, onde cada entidade que interage com uma carga de trabalho (seja usuário ou aplicativo) é autenticada e autorizada antes de acessar recursos. Ferramentas como AWS Shield As soluções de segurança de contêineres, como o Falcon, monitoram os workloads do Kubernetes para detetar e prevenir ataques distribuídos de negação de serviço (DDoS).
A proteção de cargas de trabalho na nuvem (CWP) envolve o monitoramento contínuo e a remoção de ameaças das 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 para cargas de trabalho na 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 armazenamento e em trânsito, gerenciamento de identidade e acesso (IAM) e isolamento de rede por meio de nuvens virtuais privadas (VPCs).
Principais conclusões e recursos adicionais
- Frequência de trabalho: Refere-se à exigência colocada a um sistema, enquanto um aplicativo é um software.
- Tipos de cargas de trabalho: As aplicações podem variar de transacionais e interativas a de lote, de alto consumo de computação e de alto consumo de dados. Cada carga de trabalho deve ser gerenciada de acordo com as demandas que lhe são atribuídas.
- Gerenciamento de carga de trabalho: A gestão eficiente das cargas de trabalho é frequentemente automatizada. O objetivo é utilizar os recursos de acordo com as necessidades 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 essa necessidade.
Também deixamos disponíveis algumas outras ferramentas complementares para ajudar sua empresa a desenvolver e administrar aplicativos em grande escala.
- Arquitetura de alta disponibilidade: requisitos e melhores práticas
- O que é um aplicativo distribuído? Definição e exemplos
Você pode visitar nosso blog e centro de conceitos para aprender mais sobre conceitos relacionados ao trabalho de carga de trabalho da Couchbase.