Qu'est-ce qu'une charge de travail ?

Une charge de travail désigne l'ensemble des tâches, des processus ou des travaux qu'un système ou une application exécute

Qu'est-ce qu'une charge de travail ?

En informatique, une charge de travail désigne les tâches, les processus ou les travaux qu'un système, un service ou une application exécute. Les charges de travail ne se limitent pas aux applications ; elles représentent l'activité ou la demande exercée sur l'infrastructure sous-jacente.

Dans la suite de cette ressource, nous explorerons la différence entre charges de travail et applications, les types courants de charges de travail, ainsi que la manière de gérer, d'automatiser et de protéger les charges de travail dans les environnements informatiques modernes. Nous mettrons également en avant des exemples concrets pour illustrer ces concepts. Poursuivez votre lecture pour en savoir plus.

Charges de travail vs applications

À première vue, les charges de travail et les applications peuvent sembler interchangeables, mais elles servent des objectifs distincts dans la conception des systèmes. Une application fait référence au logiciel lui-même, qu'il s'agisse d'une application web, mobile ou d'un logiciel de bureau. La charge de travail, en revanche, correspond à ce que l'application exige du système sous-jacent, tel que les unités centrales de traitement (processeurs), la mémoire ou l'espace disque.

Pensez à un application e-commerce. La charge de travail de l'application est déterminée par le nombre de transactions (ou de commandes) traitées par minute, les utilisateurs simultanés et les processus dorsaux gérant les mises à jour des stocks., sessions utilisateurou moteurs de recommandation. L'application est statique dans sa conception, mais sa charge de travail fluctue en fonction de la demande.

Il est essentiel de comprendre cette différence lors de la conception de systèmes, en particulier pour évolutivité et performance. Bien que l'application puisse être conçue avec un certain nombre de fonctionnalités, sa charge de travail évoluera à mesure que l'activité des utilisateurs augmente, que de nouvelles fonctionnalités sont déployées et que l'infrastructure évolue.

Types de charges de travail

Voici quelques types courants :

1. Charges de travail transactionnelles : Fait référence à des systèmes qui traitent des volumes élevés de transactions, tels que les bases de données ou les plateformes de paiement en ligne. Ces charges de travail se caractérisent par leurs exigences de faible latence et leur haute fiabilité.

2. Charges de travail par lot : Ces charges de travail exécutent une série de tâches qui peuvent traités par lots. Les pipelines d'analyse de données, les rapports nocturnes et les tâches d'extraction, de transformation et de chargement (ETL) sont de bons exemples de charges de travail par lots.

3. Charges de travail interactives : Ces charges de travail impliquent une activité en temps réel, comme l'interaction avec les utilisateurs finaux, dans les applications web et mobiles. Elles exigent des temps de réponse rapides aux sollicitations des utilisateurs.

4. Charges de travail à forte intensité de calcul : Fait référence à des applications qui nécessitent une puissance de calcul importante, telle que l'entraînement de modèles d'apprentissage automatique, le rendu vidéo ou les simulations.

5. Charges de travail à forte intensité de données : Les systèmes qui doivent traiter, stocker et récupérer des masses de données, tels que les bases de données à grande échelle ou plateformes de mégadonnées.

Exemples de charges de travail

  • Sites e-commerce : Cette charge de travail implique des demandes d'utilisateurs pour des produits, des requêtes de base de données pour récupérer les détails des stocks, le traitement des transactions de paiement et des mises à jour d'expédition.
  • Entraînement de modèle d'apprentissage automatique Nécessite des ressources intensives de processeur (CPU) ou de processeur graphique (GPU) pour entraîner des modèles sur de grands ensembles de données. Ceci est souvent classé comme une charge de travail à forte intensité de calcul.
  • Services de streaming Des plateformes comme Netflix gèrent des charges de travail interactives où la vidéo est diffusée à la demande aux utilisateurs. Cela implique un backend gourmand en données stockant de grands fichiers multimédias.
  • Détection des fraudes en temps réel : Un cas d'utilisation courant pour une application financière implique analyser les transactions en temps réel pour détecter les fraudes potentielles – cette charge de travail de streaming traite des milliers de transactions par seconde pendant les heures de pointe.

Gestion de la charge de travail

La gestion de la charge de travail consiste à distribuer les tâches au sein d'un système de ressources disponible, tel qu'un processeur, de la mémoire et du stockage, afin de garantir des performances efficaces. Une bonne gestion de la charge de travail est cruciale pour que les applications fonctionnent de manière efficace et efficiente.

Des outils comme OpenPBS et Slurm vous permettent de gérer la charge de travail dans un environnement de cluster car ils planifient les tâches et attribuent les ressources dynamiquement au sein de différents nœuds. Ces outils optimisent les ressources matérielles en planifiant les charges de travail de sorte que les tâches prioritaires reçoivent des ressources et que les tâches moins importantes puissent être retardées ou mises en file d'attente jusqu'à ce que les ressources soient disponibles.

Automatisation des charges de travail

La gestion des charges de travail évolutives nécessite de l'automatisation. L'automatisation des charges de travail fait référence au processus de planification, d'exécution et de gestion automatiques des tâches au sein d'une application ou d'un système. En raison de sa scalabilité, elle favorise l'optimisation des ressources, minimise l'intervention manuelle et offre des performances constantes, en particulier dans des environnements dynamiques.

Concepts clés de l'automatisation des charges de travail

  • Planification des tâches : L'automatisation au niveau du système d'exploitation implique souvent la planification de tâches. Une fois configurée avec des règles, telles que des heures spécifiques, des événements ou des seuils système, elle peut lancer des tâches automatiquement. Des exemples d'automatisation simple au niveau du système d'exploitation incluent les tâches cron sous Linux ou un planificateur de tâches sous Windows.
  • Mise à l'échelle des ressources : Les plates-formes d'automatisation telles que Kubernetes mettent à l'échelle les ressources de manière dynamique en fonction de la demande en temps réel. Par exemple, en cas de pic d'utilisateurs sur une application web, Kubernetes déploie automatiquement de nouvelles instances (conteneurs) pour équilibrer la charge et la répartir uniformément.
  • Gestion des erreurs : Les systèmes automatisés peuvent gérer les échecs de tâches. Une fois qu'une tâche échoue, les outils d'automatisation peuvent réessayer, consigner une erreur ou déclencher une alerte pour une intervention manuelle. De cette façon, les temps d'arrêt sont minimisés et le fonctionnement se poursuit sans interruption pendant que le système fait ce qu'il est censé faire.
  • Gestion des dépendances : Parce que l'automatisation des charges de travail vous permet de spécifier quelles tâches dépendent de quelles autres, cela signifie que vous pouvez vous assurer que les processus sont exécutés dans l'ordre approprié. Considérez un pipeline de traitement des données où les tâches ETL doivent s'exécuter dans l'ordre : l'extraction doit précéder la transformation et le chargement.

Outils d'automatisation des charges de travail

1. Kubernetes: Plateforme de référence pour la gestion des charges de travail conteneurisées, Kubernetes automatise le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Il utilise des contrôleurs pour surveiller l'état du système et ajuste les ressources en fonction de la demande.

2. AWS (Amazon Web Services) Lambda : Plateformes sans serveur comme AWS Lambda, vous permet d'exécuter du code en réponse à des événements sans avoir à provisionner ni à gérer de serveurs. Ce modèle d'automatisation permet aux charges de travail de s'adapter automatiquement et efficacement en réponse aux interactions des utilisateurs, aux tâches planifiées ou à d'autres déclencheurs.

3. Apache Airflow : Airflow est une plateforme open source populaire pour la création, la planification et la surveillance programmatiques de flux de travail. Elle est particulièrement utile pour les charges de travail par lots où les tâches doivent s'exécuter en séquence ou à des moments précis (par exemple, les pipelines de données et les tâches ETL).

4. Terraform : Terraform peut automatiser des charges de travail en provisionnant et en gérant l'infrastructure en tant que code (IaC). Il peut s'intégrer à des plateformes telles qu'AWS et Google Cloud pour automatiser les politiques de mise à l'échelle, provisionner des serveurs et gérer des flux de travail d'infrastructure complexes.

Protection des charges de travail

Avec la complexité croissante, les charges de travail sont de plus en plus vulnérables aux menaces de sécurité, ce qui rend la protection des charges de travail essentielle. La protection des charges de travail consiste à sécuriser les applications, leurs données et l'infrastructure qui les prend en charge.

Une stratégie courante consiste à utiliser des modèles de sécurité à confiance zéro, où chaque entité interagissant avec une charge de travail (qu'il s'agisse d'un utilisateur ou d'une application) est authentifiée et autorisée avant d'accéder aux ressources. Des outils tels que AWS Shield peut contribuer à protéger les charges de travail contre les attaques par déni de service distribué (DDoS), tandis que les solutions de sécurité des conteneurs telles que Falcon surveillent les charges de travail Kubernetes à la recherche d'anomalies.

La protection des charges de travail cloud (CWP) consiste à surveiller en continu et à éliminer les menaces pesant sur les charges de travail cloud et les conteneurs. Une plateforme de protection des charges de travail cloud (CWPP) est une solution de sécurité qui protège les charges de travail de tous types et de n'importe quel emplacement, offrant une protection unifiée des charges de travail cloud chez plusieurs fournisseurs. Les fournisseurs de cloud proposent généralement des services natifs de protection des charges de travail, tels que le chiffrement des données au repos et en transit, la gestion des identités et des accès (IAM) et l'isolation des réseaux via des clouds privés virtuels (VPC).

Principaux enseignements et ressources complémentaires

  • Charge de travail Fait référence à la charge imposée à un système, alors qu'une application est un logiciel.
  • Types de charges de travail : Allant des charges de travail transactionnelles et interactives aux charges de travail par lots, gourmandes en calcul et gourmandes en données. Chaque charge de travail doit être traitée en fonction des exigences qui lui sont imposées.
  • Gestion de la charge de travail : La gestion efficace des charges de travail est souvent automatisée. L'objectif est d'utiliser les ressources en fonction des demandes du système.
  • Protection de la charge de travail : La protection contre les menaces pesant sur la charge de travail est importante, et les outils natifs du cloud ainsi que les modèles de sécurité y contribuent.

Nous vous laissons également des ressources connexes pour aider votre entreprise à créer et à gérer des applications à grande échelle.

Vous pouvez visiter notre blog et pôle de concepts pour en savoir plus sur les concepts liés aux charges de travail de Couchbase.

Commencer à construire

Consultez notre portail pour développeurs afin d'explorer NoSQL, de parcourir les ressources et de commencer à utiliser les tutoriels.

Utiliser Capella gratuitement

Prenez en main Couchbase en quelques clics. Capella DBaaS est le moyen le plus simple et le plus rapide de démarrer.

Prendre contact

Vous souhaitez en savoir plus sur les offres Couchbase ? Laissez-nous vous aider.