Parcourir Par Tags

Nous avons catégorisé les termes du glossaire. Utilisez les filtres pour parcourir les termes par tag.

Abstraction

Dans le contexte informatique, une abstraction est une représentation qui masque les détails spécifiques à un consommateur de services (un consommateur étant un programme informatique ou un humain), rendant un système plus générique, et ainsi facilement compréhensible. Le système d’exploitation de votre ordinateur portable en est un bon exemple. Il masque tous les détails du fonctionnement de votre ordinateur. Vous n’avez pas besoin d’avoir une compréhension approfondie du processeur, de la mémoire et du fonctionnement des programmes, vous utilisez simplement le système d’exploitation et ce dernier s’occupe des détails...

Applications avec état (Stateful Apps)

Lorsque nous parlons d’applications avec état (et sans état), l’état fait référence à toutes les données que l’application doit stocker pour fonctionner comme prévu. Par exemple, tout type de boutique en ligne qui se souvient de votre panier est une application avec état. Aujourd’hui, la plupart des applications que nous utilisons sont au moins partiellement avec état. Cependant, dans les environnements cloud natifs, les applications avec état posent des difficultés. En effet, les applications cloud natives sont très dynamiques...

Applications Cloud Natives

Les applications Cloud Natives sont des applications conçues pour tirer avantage des innovations du cloud computing. Ces applications s’intègrent facilement avec leurs architectures cloud respectives, en tirant avantage des ressources proposées par le Cloud et de leur capacité de mise à l’échelle. Ce terme fait aussi référence aux applications qui tirent avantage d’infrastructure pilotée par le cloud computing. Aujourd’hui, les applications Cloud Natives incluent les applications qui fonctionnent dans le centre de données des fournisseurs de cloud ainsi que les applications qui tournent sur des plateformes hébergées dans les centres de données internes aux organisations...

Applications Distribuées

Une application distribuée est une application dont les fonctionnalités sont découpées en plusieurs parties indépendantes et plus petites. Les applications distribuées sont généralement composées de microservices individuels qui s’occupent de différentes problématiques au sein d’une application plus large. Dans un environnement Cloud Native, ces composants individuels s’exécutent généralement en tant que conteneurs sur un cluster. Problème auquel il répond Une application s’exécutant sur un seul ordinateur représente un point de défaillance unique — si cet ordinateur tombe en panne, l’application devient indisponible...

Applications Monolithiques

Une application monolithique contient toutes les fonctionnalités au sein d’un unique logiciel déployable. C’est souvent la manière la plus simple pour commencer le développement d’une application. Cependant, lorsque l’application se complexifie, les monolithes peuvent devenir difficiles à maintenir. Avec plus de développeurs qui travaillent sur la même base de code, la probabilité de conflits dans les changements et donc de communication directe entre les développeurs augmente. Problème auquel il répond Transformer une application en microservices augmente la charge de travail - comme il y a plus de choses à tester, déployer et à maintenir opérationel...

Applications sans état (Stateless Apps)

Les applications sans état (Stateless Apps en anglais) traitent les requêtes comme si chaque requête était la toute première envoyée. L’application ne “se souvient” ni des interactions précédentes ni des données de session utilisateur. Les données provenant des interactions précédentes sont appelées état, et comme ces données ne sont stockées nulle part, ces applications sont sans état (stateless). Voici un exemple : Lorsque vous utilisez un moteur de recherche et que cette recherche est interrompue (par exemple, la fenêtre est fermée), les résultats de recherche sont perdus...

Architecture Client-Serveur

Dans une architecture client-serveur, la logique (ou le code) qui constitue une application est séparée en deux composants minimum : un client qui demande que le travail soit effectué (par exemple, l’application web Gmail exécutée dans votre navigateur web) un ou plusieurs serveurs qui satisfont cette demande (par exemple, le service “Envoyer un courrier électronique” exécuté sur les ordinateurs de Google dans le Cloud). Dans cet exemple, les courriels sortants que vous écrivez sont envoyés par le client (application web exécutée dans votre navigateur web) à un serveur (les ordinateurs de Gmail, qui transfèrent vos courriels sortants à leurs destinataires)...

Architecture en Microservices

Une architecture en microservices est une approche architecturale qui divise les applications en (micro)services distincts et indépendants, chaque service étant focalisé sur une fonctionnalité spécifique. Ces services fonctionnent en étroite collaboration, et l’utilisateur final a l’impression d’utiliser un seul service. Prenons Netflix comme exemple. Son interface vous permet d’accéder, de rechercher et de prévisualiser des vidéos. Ces fonctionnalités sont probablement alimentées par de plus petits services, chacun gérant une fonctionnalité spécifique, telle que l’authentification, la recherche et l’exécution des prévisualisations dans votre navigateur...

Architecture Faiblement Couplée

L’architecture faiblement couplée est un type d’architecture où les différents composants d’une application sont construits indépendamment les uns des autres (c’est le paradigme opposé des architectures fortement couplées). Chaque composant, parfois identifié comme un microservice, est construit pour effectuer une tâche spécifique d’une manière qui lui permet d’être utilisé par d’autres services. Cette approche est souvent plus longue à mettre en œuvre que l’architecture fortement couplée mais, elle a plusieurs avantages en particulier lorsque l’application change d’échelle...

Architecture Fortement Couplée

L’architecture fortement couplée est un type d’architecture où un nombre de composants d’application sont interdépendants (le paradigme opposé est les architectures faiblement couplées). Celà signifie qu’un changement dans un composant aura sûrement un impact sur les autres composants. Souvent plus simples à mettre en oeuvre que les architectures faiblement couplées, elles peuvent mettre un système à risque par rapport aux erreurs en cascade. Elles ont également tendance à nécessiter des déploiements synchronisés des composants ce qui peut devenir un frein à la productivité des développeurs...

Architecture Orientée Événements (Event-Driven Architecture)

L’architecture orientée événements (Event-Driven Architecture) est une architecture logicielle qui favorise la création, le traitement et la consommation d’événements. Un événement est un changement d’état d’une application. Par exemple, héler un véhicule au travers d’une application de covoiturage représente un événement. Cette architecture crée la structure dans laquelle les événements peuvent être correctement acheminés depuis leur source (l’application demandant un trajet) vers les destinataires souhaités (les applications des conducteurs disponibles à proximité)...

Architecture Zéro Confiance

L’architecture zéro confiance est une approche de conception et de mise en place des systèmes informatiques qui élimine complètement la notion de confiance. Son principe fondamental repose sur le credo “ne jamais faire confiance, toujours vérifier”, les dispositifs ou systèmes eux-mêmes, lorsqu’ils communiquent avec d’autres composants d’un système, se vérifient toujours avant de communiquer. Dans de nombreux réseaux actuels, au sein du réseau d’entreprise, les systèmes et les appareils communiquent librement entre eux, car ils se trouvent à l’intérieur de la zone de confiance définie par le périmètre du réseau d’entreprise...

Auto-réparant

Un système auto-réparant est capable de se remettre de certains types de défaillance sans aucune intervention humaine. Il possède une boucle de “convergence” ou de “contrôle” qui examine activement l’état courant du système et le compare à l’état souhaité initialement par les opérateurs. S’il y a une différence (par exemple, moins d’instances d’application sont en cours d’exécution que souhaité), il prendra des mesures correctives (par exemple, démarrer de nouvelles instances)...

Capacité de mise à l'échelle (Scalabilité)

La capacité de mise à l’échelle (ou scalabilité) correspond à la capacité d’un système à s’agrandir. C’est-à-dire à augmenter la capacité d’un système à faire ce qu’il est supposé faire. Par exemple, un cluster Kubernetes change d’echelle en augmentant ou en réduisant le nombre d’applications conteneurisées, mais cette scalabilité dépend de plusieurs facteurs. Combien de nœuds possède-t-il, combien de conteneurs peut gérer chaque nœud, et combien d’enregistrements et d’opérations le plan de contrôle (control plane) peut-il supporter ?..

Centre de données (Datacenter)

Un centre de données (datacenter en anglais) est un bâtiment ou une installation spécialisée conçue pour héberger des ordinateurs, le plus souvent des serveurs. Ces centres de données sont généralement connectés à des lignes internet à haut débit, en particulier lorsqu’ils sont axés sur le cloud computing. Les bâtiments qui abritent les centres de données sont équipés pour maintenir le service même en cas d’événements défavorables, y compris des générateurs qui fournissent de l’électricité pendant les pannes et des climatiseurs puissants qui gardent les ordinateurs, produisant de la chaleur, au frais...

Cloud Computing

Le cloud computing, ou informatique en nuage, ou encore infonuagique au Québec, offre des ressources informatiques telles que de la puissance de calcul, du réseau et de l’espace de stockage à la demande sur Internet, permettant aux utilisateurs d’accéder à des ressources informatiques situées dans un emplacement physique distant. Nous différencions généralement le cloud privé du cloud public, suivant si l’infrastructure cloud est exclusivement dédiée à une organisation, ou mutualisée et ouverte au public...

Cluster

Un cluster est un groupe d’ordinateurs ou d’applications qui fonctionnent ensemble dans un but commun. Dans un contexte Cloud Native, le terme est souvent appliqué à Kubernetes. Un cluster Kubernetes est un ensemble de services (ou de charges de travail) qui s’exécutent dans leurs propres conteneurs, souvent sur des machines différentes. L’ensemble de tous ces services conteneurisés, connectés au travers du réseau, représente un cluster. Problème auquel il répond Un logiciel qui s’exécute sur un seul ordinateur représente un point de défaillance unique — si cet ordinateur tombe en panne, ou si accidentellement quelqu’un débranche le câble d’alimentation, alors un système critique pourrait être mis hors-ligne...

Conteneurisation

La conteneurisation est l’action de regrouper une application et ses dépendances dans une image de conteneur. Le processus de construction du conteneur nécessite de respecter le standard de l’Open Container Initiative (OCI). Du moment que le résultat est une image qui respecte ce standard, l’outil de conteneurisation qui sera utilisé n’a pas d’importance. Problème auquel il répond Avant que les conteneurs ne se répandent, les organisations s’appuyaient sur les machines virtuelles (VMs) pour orchestrer différentes applications au sein d’une unique machine physique...

Conteneurs

Un conteneur est un processus qui fonctionne avec des contraintes de ressources et de capacités gérées par le système d’exploitation d’un ordinateur. Les fichiers accessibles au processus du conteneur sont regroupés dans une image de conteneur. Les conteneurs sont exécutés les uns à côté des autres sur la même machine, mais généralement le système d’exploitation empêche les processus de conteneurs différents d’interagir les uns avec les autres. Problème auquel il répond Avant que les conteneurs ne soient disponibles, des machines dédiées étaient nécessaires pour faire fonctionner des applications...

Contrôle d'accès basé sur les rôles (RBAC)

Le contrôle d’accès basé sur les rôles (RBAC) est une méthode de sécurité permettant de gérer l’accès des utilisateurs aux systèmes, réseaux ou ressources en fonction de leur rôle au sein d’une équipe ou d’une organisation. Le RBAC donne aux administrateurs informatiques la possibilité d’identifier le niveau d’accès nécessaire pour tous les utilisateurs occupant une fonction spécifique, et de leur attribuer un rôle avec un ensemble prédéfini d’autorisations. Les organisations utilisent le RBAC pour offrir à leurs employés des niveaux d’accès adaptés à leurs rôles et responsabilités...

Décalage vers la gauche (Shift Left)

Le terme “gauche” dans “décalage vers la gauche” fait référence aux premières étapes dans le cycle de vie du développement logiciel, en envisageant ce cycle comme une ligne où les étapes sont exécutées de gauche à droite. Le décalage vers la gauche est la pratique consistant à mettre en œuvre des tests, la sécurité ou d’autres pratiques de développement tôt dans le cycle de vie du développement logiciel plutôt que vers la fin...

Découverte de services (Service Discovery)

La découverte de services est le processus permettant de découvrir les différentes instances qui composent un service. Un outil de découverte de service garde une trace des différents nœuds ou points de terminaison qui constituent un service. Problème auquel il répond Les architectures cloud natives sont dynamiques et fluides, ce qui signifie qu’elles changent constamment. Une application conteneurisée finira probablement par démarrer et s’arrêter plusieurs fois au cours de sa durée de vie...

Déploiement bleu/vert

Le déploiement bleu/vert (ou Blue/Green) est une stratégie pour mettre à jour les systèmes informatiques en cours d’exécution avec un temps d’arrêt minimal. L’opérateur maintient deux environnements, appelés “bleu” et “vert”. L’un sert le trafic de production (la version que tous les utilisateurs utilisent actuellement), tandis que l’autre est mis à jour. Une fois que les tests ont été conclus sur l’environnement passif (vert), le trafic de production est basculé (souvent via l’utilisation d’un répartiteur de charge)...

Déploiement canari

Le déploiement canari est une stratégie de déploiement qui commence avec deux environnements : l’un avec du trafic en direct et l’autre contenant le code mis à jour sans trafic en direct. Le trafic est progressivement déplacé de la version originale de l’application vers la version mise à jour. Cela peut commencer par le transfert de 1% du trafic en direct, puis 10%, 25%, et ainsi de suite, jusqu’à ce que tout le trafic passe par la version mise à jour...

Déploiement Continu (Continuous Deployment)

Le déploiement continu, souvent abrégé en CD, va plus loin que la livraison continue en déployant le logiciel fini directement en production. Le déploiement continu (CD) va de pair avec l’intégration continue (CI), et on parle souvent CI/CD. Le processus CI teste si les modifications apportées à une application donnée sont valides, et le processus CD déploie automatiquement les modifications de code dans les environnements d’une organisation, de l’environnement de test jusqu’à celui de production...

Développement Agile de logiciels

Un ensemble de pratiques qui mettent l’accent sur les cycles de développement itératifs et les équipes auto-organisées. Contrairement aux projets dits en cascade où la valeur n’est générée qu’à la toute fin du projet, le développement Agile de logiciels se concentre sur une livraison de valeur continue et incrémentale, ainsi que sur l’amélioration évolutive du processus lui-même. Problème auquel il répond Définir, communiquer et comprendre les exigences pour toutes les parties prenantes d’un projet logiciel est très difficile, voire impossible...

DevOps

Le DevOps est une méthodologie dans laquelle une équipe gère le processus complet du développement d’une application jusqu’aux opérations en production, d’où le terme DevOps. Ceci va au-delà de l’implémentation de technologies et demande un changement complet dans la culture et les processus. Le DevOps fait appel à un groupe d’ingénieurs travaillant sur des petits composants (en opposition à une fonctionnalité complète), permettant ainsi de réduire les actions de passations – une source d’erreurs commune...

DevSecOps

Le terme DevSecOps fait référence à une fusion culturelle des responsabilités de développement, opérationnelles et de sécurité. Il étend l’approche DevOps pour inclure les problématiques de sécurité avec un minimum de perturbations, voire nulle, du flux de travail des développeurs et des opérations. Comme DevOps, DevSecOps est un changement culturel, poussé par les technologies adoptées, avec des méthodes d’adoption uniques. Problème auquel il répond Les pratiques DevOps incluent l’intégration continue, la livraison continue, et le déploiement continu et accélèrent les cycles de développement et de publication d’applications...

Diffusion d'événements en continu (Event Streaming)

La diffusion d’événements en continu (Event Streaming) est une approche où un logiciel envoie des données d’événements d’une application à une autre pour communiquer en continu ce qu’elles font. Imaginez un service diffusant tout ce qu’il fait à tous les autres services. Chaque activité effectuée par un service est appelée un événement, d’où le terme de diffusion d’événements en continu. Par exemple, le NASDAQ reçoit des mises à jour sur les prix des actions et des matières premières chaque seconde...

eBPF

eBPF, ou “extended Berkeley Packet Filter”, est une technologie qui permet à de petits programmes ou scripts de s’exécuter au sein d’un environnement contrôlé dans l’espace du noyau (kernel en anglais) d’un système Linux, sans avoir à modifier le code source du noyau ou à charger des modules dans le noyau Linux. Un système Linux comporte deux espaces : l’espace du noyau et l’espace utilisateur. Le noyau représente le cœur du système d’exploitation et est la seule partie ayant un accès illimité au matériel...

Environnement d'exécution (Runtime)

En général, un environnement d’exécution (ou runtime en anglais) exécute un logiciel. C’est une abstraction du système d’exploitation sous-jacent qui traduit les commandes du programme en actions pour le système d’exploitation. Dans le contexte des applications Cloud Natives, l’environnement d’exécution fait généralement référence à l’environnement d’exécution de conteneurs (ou container runtime en anglais). Un environnement d’exécution de conteneurs implémente la spécification Open Container Initiative pour garantir un fonctionnement cohérent des conteneurs quelle que soit la technologie d’orchestration utilisée...

Fiabilité

Du point de vue Cloud Native, la fiabilité fait référence à la capacité d’un système à réagir face aux pannes. Si nous disposons d’un système distribué qui continue de fonctionner alors que l’infrastructure change et que des composants unitaires tombent en panne, alors il est fiable. En revanche, s’il tombe facilement en panne et que les opérateurs doivent intervenir manuellement pour le maintenir en état de marche, alors il n’est pas fiable...

Fonction en tant que Service (FaaS)

Une Fonction en tant que Service, ou Function as a Service (FaaS) en anglais, est un type de service de cloud computing serverless qui permet d’exécuter du code en réponse à des événements sans maintenir l’infrastructure complexe généralement associée à la création et au lancement d’applications en microservices. Avec le FaaS, les utilisateurs ne gèrent que les fonctions et les données, tandis que le fournisseur de services cloud gère l’application. Cela permet aux développeurs d’obtenir les fonctions dont ils ont besoin sans avoir à payer pour des services lorsque le code n’est pas en cours d’exécution...

Glossaire Cloud Native

Glossaire Cloud Native Le Glossaire Cloud Native a pour objectif de démystifier l’univers Cloud Natif, réputé pour sa complexité. Il vise à le rendre accessible aussi bien aux spécialistes technologiques qu’aux acteurs du monde des affaires. Pour y parvenir, nous mettons l’accent sur la simplicité (par exemple, un langage simple sans buzzwords, des exemples auxquels toute personne utilisant la technologie peut se rapporter, en laissant de côte les détails inutiles). Le Glossaire Cloud Native est un project dirigé par le Comité Marketing de la CNCF (Business Value Subcommittee, BVS)...

Idempotence

En mathématiques ou en informatique, l’idempotence décrit une opération qui aboutit toujours au même résultat, peu importe combien de fois vous l’exécutez. Si les paramètres sont identiques, une opération idempotente n’affectera pas l’application qu’elle appelle...

Informatique en Périphérie (Edge Computing)

L’Edge Computing (informatique en périphérie) est une architecture distribuée qui déplace une partie de la capacité de stockage et de calcul du centre de données principal vers la source de données. Les données collectées sont traitées localement (par exemple, dans une usine, dans un magasin ou à travers toute une ville) plutôt que d’être envoyées à un centre de données centralisé pour traitement et analyse. Ces unités ou dispositifs de traitement locaux représentent la périphérie du système, tandis que le centre de données en est le centre...

Infrastructure en tant que code

L’infrastructure en tant que code est la pratique de stocker la définition d’infrastructure dans un ou plusieurs fichiers. Ceci remplace le modèle traditionnel où l’infrastructure en tant que service est provisionnée manuellement, habituellement au travers de scripts ou autres outils de configuration. Problème auquel il répond Construire des applications d’une manière Cloud Native nécessite des infrastructures qui peuvent être duplicables et jettables. Il est également nécessaire de pouvoir mettre à l’échelle à la demande de manière automatique et répétable, potentiellement sans intervention humaine...

Infrastructure en tant que Service (IaaS)

L’infrastructure en tant que service, ou Infrastructure as a Service (IaaS) en anglais, est un modèle de service de cloud computing qui offre des ressources physiques ou virtualisées de calcul, de stockage et de réseau à la demande selon un modèle de paiement à l’utilisation. Les fournisseurs de cloud computing possèdent et exploitent le matériel et les logiciels, qui sont mis à la disposition des consommateurs dans des déploiements de cloud computing publics, privés ou hybrides...

Infrastructure immuable

L’infrastructure immuable fait référence à l’infrastructure informatique (machines virtuelles, conteneurs, équipements réseau) qui ne peut pas être modifiée une fois déployée. Cela peut être imposé à l’aide d’un processus automatisé qui écrase les modifications non autorisées, ou à l’aide d’un système qui, dés le départ, n’autorise aucune modification. Les conteneurs sont un bon exemple d’infrastructure immuable, car des modifications persistantes ne peuvent être apportées aux conteneurs qu’en créant une nouvelle version du conteneur ou en recréant le conteneur existant à partir de son image...

Ingénierie de la fiabilité des sites (SRE)

L’ingénierie de la fiabilité des sites (ou SRE pour Site Reliability Engineering en anglais) est une discipline qui combine l’exploitation informatique et le développement logiciel. Ce dernier est utilisé spécifiquement pour résoudre des problèmes d’infrastructure et d’exploitation informatique. En d’autres termes, au lieu de créer des fonctionnalités pour une application, les ingénieurs en fiabilité des sites construisent des systèmes pour faire fonctionner les applications. Il existe des similitudes avec le DevOps, mais tandis que le DevOps se concentre sur la mise en production du code, le SRE s’assure que le code exécuté en production fonctionne correctement...

Ingénierie du Chaos (Chaos Engineering)

L’ingénierie du chaos (Chaos Engineering ou CE en anglais) est la discipline qui consiste à éprouver un système distribué en production afin de renforcer la confiance dans la capacité du système à résister à des conditions turbulentes et inattendues. Problème auquel il répond Les pratiques SRE et DevOps se concentrent sur les techniques visant à accroître la résilience et la fiabilité des produits. La capacité d’un système à tolérer les défaillances tout en assurant une qualité de service adéquate est généralement une exigence du développement logiciel...

Ingress

Un Ingress, que nous pourrions traduire par “point d’entrée”, est un ensemble de règles qui participe à gérer le trafic Internet depuis l’extérieur vers un conteneur ou un groupe de conteneurs s’exécutant dans un cluster. Il se compose de deux éléments : la ressource Ingress et le contrôleur d’Ingress. La ressource Ingress est un fichier de configuration qui coexiste avec les autres fichiers manifestes et permet aux administrateurs de configurer le routage du trafic externe...

Intégration Continue (CI)

L’intégration continue, souvent abrégée en CI, est la pratique consistant à intégrer les modifications de code aussi régulièrement que possible. La CI est un prérequis à la livraison continue (CD). Traditionnellement, le processus CI commence lorsque les modifications de code sont envoyées dans un système de contrôle de code source (Git, Mercurial ou Subversion), et se termine par un artefact testé prêt à être consommé par un système CD. Problème auquel il répond Les systèmes logiciels sont souvent grands et complexes, et de nombreux développeurs les maintiennent et les mettent à jour...

Interface de Programmation d'Application (API)

Une API est un moyen pour les programmes informatiques d’interagir entre eux. Tout comme les humains interagissent avec un site web via une page web, une API permet aux programmes informatiques d’interagir les uns avec les autres. Contrairement aux interactions humaines, les APIs ont des contraintes sur ce qui peut ou non leur être demandé. Les contraintes sur leurs interactions permettent de créer une communication stable et fonctionnelle entre les programmes...

Kubernetes

Kubernetes, souvent abrégé en k8s, est un orchestrateur de conteneurs open source. Il automatise le cycle de vie des applications conteneurisées sur des infrastructures modernes, fonctionnant comme un “Système d’exploitation de centre de données” qui gère des applications à travers un système distribué. Kubernetes planifie la création de conteneurs sur les nœuds d’un cluster, regroupant plusieurs ressources d’infrastructure tel qu’un répartiteur de charge (load balancer), du stockage persistent, etc. pour exécuter des applications conteneurisées...

Livraison Continue (Continuous Delivery)

La livraison continue, souvent abrégée en CD, est un ensemble de pratiques dans lequel les modifications de code sont automatiquement déployées dans un environnement d’acceptation (ou, en cas de déploiement continu, en production). La CD comprend des procédures pour garantir que le logiciel est correctement testé avant le déploiement et fournit un moyen de revenir en arrière sur les modifications si nécessaire. L’intégration continue (CI) est la première étape vers la livraison continue (c’est-à-dire que les modifications doivent fusionner proprement avant d’être testées et déployées)...

Machine Physique (Bare Metal)

Une machine physique, ou machine bare metal, fait référence à un ordinateur physique, plus précisément à un serveur, qui possède un et un seul système d’exploitation. En informatique moderne, la plupart des serveurs sont des machines virtuelles, il est donc important de faire cette distinction. Un serveur physique est généralement un ordinateur assez gros qui intègre du matériel puissant. L’installation d’un système d’exploitation et l’exécution d’applications directement sur ce matériel physique, sans virtualisation, est ce que l’on appelle une machine physique, ou machine bare metal...

Machine Virtuelle

Une machine virtuelle (VM) est un ordinateur et son système d’exploitation qui n’est pas lié à un matériel particulier. Les VMs s’appuient sur la virtualisation pour découper un unique ordinateur physique en plusieurs ordinateurs virtuels. Cette séparation permet aux entités et aux fournisseurs d’infrastructure de facilement créer et détruire des VMs sans impacter l’infrastructure sous-jacente. Problème auquel il répond Les machines virtuelles tirent parti de la virtualisation. Lorsqu’une machine physique est liée à un unique système d’exploitation, la manière donc les ressources peuvent être utilisées est en quelque sorte limitée...

Maillage de services (Service Mesh)

Dans un monde de microservices, les applications sont découpées en plusieurs petits services qui communiquent via le réseau. Exactement comme votre réseau wifi, les réseaux informatiques sont intrinsèquement non fiables, piratables et souvent lents. Les services mesh répondent à cette problématique en gérant le trafic (i.e., la communication) entre les services et ajoutent de la fiabilité, de l’observabilité et des fonctionnalités liées à la sécurité de manière uniforme pour tous les services...

Mise à l'échelle automatique (Autoscaling)

La mise à l’échelle automatique (ou autoscaling) est la capacité d’un système à s’adapter automatiquement (voir capacité de mise à l’échelle), généralement, en termes de ressources informatiques. Avec un système permettant une mise à l’échelle automatique, les ressources sont automatiquement ajoutées en cas de besoin et peuvent être ajustées pour répondre aux demandes fluctuantes des utilisateurs. Le processus de mise à l’échelle automatique varie et peut être configuré pour s’adapter à différentes métriques, telles que la mémoire ou le temps de traitement...

Mise à l'échelle horizontale (Horizontal Scaling)

La mise à l’échelle horizontale est une technique qui consiste à augmenter la capacité d’un système en ajoutant plus de nœuds au lieu d’ajouter plus de ressources informatiques à des nœuds unitaires (ce dernier étant connu sous le nom de mise à l’échelle verticale (Vertical Scaling)). Supposons que nous avons un système avec 4 Go de mémoire et que nous voulons augmenter sa capacité à 16 Go, la mise à l’échelle horizontale consiste à ajouter 4 × 4 Go de mémoire plutôt que de passer à un système avec 16 Go de mémoire...

Mise à l'échelle verticale (Vertical Scaling)

La mise à l’échelle verticale, également connue sous le nom de “mise à l’échelle vers le haut et vers le bas”, est une technique qui consiste à augmenter la capacité d’un système en ajoutant des processeurs et de la mémoire à chaque nœud unitaire à mesure que la charge de travail augmente. Supposons que vous avez un ordinateur avec 4 Go de mémoire et que vous voulez augmenter sa capacité à 16 Go, la mise à l’échelle verticale consiste à passer à un système avec 16 Go de mémoire...

Mutualisation (Multitenancy)

La mutualisation (multitenancy en anglais) fait référence à une installation unique de logiciel utilisé par plusieurs locataires (tenant). Un locataire est un utilisateur, une application ou un groupe d’utilisateurs/applications qui utilisent le logiciel pour travailler sur ses propres jeux de données. Ces locataires ne partagent pas de données (sauf si c’est explicitement demandé par le propriétaire) et peuvent même ne pas se connaître. Un locataire peut être petit comme un utilisateur indépendant avec un unique identifiant de connexion — pensez à un logiciel de productivité personnelle — ou aussi grand qu’une entreprise complète avec des centaines d’identifiants de connexion, chacun avec ses propres droits mais interdépendants de multiples manières...

Nœud

Un nœud est un ordinateur qui travaille de concert avec d’autres ordinateurs, ou nœuds, pour accomplir une tâche commune. Prenons par exemple votre ordinateur portable, votre modem et votre imprimante. Ils sont tous connectés via votre réseau wifi, communiquant et collaborant ensemble, chacun représentant un nœud. En cloud computing, un nœud peut être un ordinateur physique, un ordinateur virtuel, appelé VM, ou encore un conteneur. Problème auquel il répond Bien qu’une application puisse s’exécuter sur une seule machine, comme beaucoup le font encore, cela comporte certains risques...

Observabilité

L’observabilité est une propriété des systèmes qui définit le degré auquel le système peut générer des informations exploitables. Elle permet aux utilisateurs de comprendre l’état d’un système à partir de ses sorties externes et de prendre des mesures (correctives). Les systèmes informatiques sont mesurés en observant des signaux de bas niveau tels que le temps processeur, la mémoire, l’espace disque, des signaux de niveau supérieur et des signaux métiers, notamment les temps de réponse de l’API, les erreurs, le nombre de transactions par seconde, etc...

Orchestration de Conteneurs

L’orchestration de Conteneurs fait référence à la gestion et à l’automatisation du cycle de vie d’applications conteneurisées au sein d’environnements dynamiques. Réalisée à l’aide d’un orchestrateur de conteneurs (la plupart du temps, Kubernetes), elle permet les déploiements, le passage à l’échelle (automatique), (l’auto-)remédiation et le monitoring. L’orchestration est une métaphore: L’outil d’orchestration dirige les conteneurs tel un chef d’orchestre, s’assurant que chaque conteneur (ou musicien) fait ce qu’il doit faire...

Passerelle d'API (API Gateway)

Une passerelle d’API est un outil qui regroupe des APIs d’applications individuelles, les rendant toutes disponibles en un seul endroit. Celà permet aux organisations de déplacer des fonctions clés, telles que l’authentification et l’autorisation ou la limitation du nombre de requêtes entre applications, vers un emplacement géré de manière centralisée. Une passerelle d’API fonctionne comme une interface commune pour les consommateurs d’API (souvent externes). Problème auquel il répond Si vous mettez des APIs à la disposition de consommateurs externes, vous voudrez un point d’entrée unique pour gérer et contrôler tous les accès...

Pod

Dans un environnement Kubernetes, le pod est l’unité déployable la plus basique. Il représente un bloc de construction essentiel pour le déploiement et la gestion d’applications conteneurisées. Chaque pod contient une seule instance d’application et peut être constitué d’un ou plusieurs conteneurs. Kubernetes gère les pods dans le cadre d’un déploiement plus large et peut mettre à l’échelle les pods verticalement ou horizontalement selon les besoins. Problème auquel il répond Si les conteneurs agissent généralement comme des unités indépendantes qui exécutent et contrôlent une charge de travail particulière, il existe des cas où des conteneurs doivent interagir et être contrôlés de manière étroitement couplée...

Politique en tant que code

La politique en tant que code est la pratique de stocker la définition des politiques sous forme d’un ou plusieurs fichiers dans un format lisible et exploitable par un programme informatique. Cela remplace le modèle traditionnel où les politiques sont documentées sous une forme lisible par l’homme dans des documents distincts. Problème auquel il répond La construction d’applications et d’infrastructures est souvent contrainte par de nombreuses politiques définies par une organisation, par exemple des politiques de sécurité qui interdisent de stocker des secrets dans le code source, d’exécuter un conteneur avec des permissions de super-utilisateur ou de stocker des données en dehors d’une région géographique spécifique...

Portabilité

La portabilité comme caractéristique logicielle est une forme de réutilisabilité permettant d’éviter le “verrouillage” à certains environnements d’exploitation, par exemple, les fournisseurs de cloud, les systèmes d’exploitation ou les fournisseurs. Traditionnellement, les logiciels sont souvent conçus pour des environnements spécifiques (comme AWS ou Linux). En revanche, un logiciel portable fonctionne dans différents environnements d’exploitation sans nécessiter de modifications majeures. Une application est considérée comme portable si l’effort nécessaire pour l’adapter à un nouvel environnement reste raisonnable...

Proxy de service

Un proxy de service intercepte le trafic vers ou depuis un service donné, lui applique une certaine logique, puis transmet ce trafic à un autre service. Il agit essentiellement comme un “intermédiaire” qui collecte des informations sur le trafic réseau et/ou lui applique des règles. Problème auquel il répond Pour suivre la communication de service à service (c’est-à-dire le trafic réseau) et potentiellement la transformer ou la rediriger, nous devons collecter des données...

Sécurité Cloud Natives

La sécurité Cloud Native est une approche qui intègre la sécurité dans les applications Cloud Natives. Il garantit que la sécurité fait partie du cycle de développement de l’application du développement jusqu’à la mise en production. La sécurité Cloud Native vise à garantir les mêmes standards que les modèles de sécurité traditionnels tout en s’adaptant aux particularités des environnements Cloud Natives, comme les infrastructures éphémères ainsi que les livraisons de code fréquentes...

Sécurité de la couche de transport (TLS)

TLS, en français “Sécurité de la couche de transport”, en anglais “Transport Layer Security”, est un protocole conçu pour renforcer la sécurité des communications sur un réseau. Il garantit la sécurité des données lors de la livraison de celles-ci sur Internet, en évitant toute interception et/ou altération des données. Ce protocole est largement utilisé dans des applications telles que la messagerie instantanée, le courrier électronique, etc. Problème auquel il répond Sans TLS, des informations sensibles telles que les habitudes de navigation, la correspondance par courrier électronique, les discussions en ligne et les conférences téléphoniques peuvent facilement être tracées et modifiées par des tiers pendant la transmission...

Sécurité mutuelle de la couche de transport (mTLS)

Le TLS mutuel (mTLS, mutual TLS en anglais) est une technique utilisée pour authentifier et chiffrer les messages envoyés entre deux services. Le TLS mutuel est le protocole standard de la sécurité de la couche de transport, mais au lieu de valider l’identité d’une seule connexion, les deux parties sont validées. Problème auquel il répond Les microservices communiquent sur un réseau et, tout comme sur votre réseau wifi, les communications qui transitent par ce réseau peuvent être piratées...

Sécurité par l'ingénierie du chaos

La sécurité par l’ingénierie du chaos, ou SCE (Security Chaos Engineering en anglais), est une discipline basée sur l’ingénierie du chaos. La SCE réalise des tests de sécurité proactifs sur un système distribué pour accroître la confiance dans la capacité du système à faire face à des conditions instables et malveillantes. Les ingénieurs en sécurité du chaos utilisent, en boucle, des méthodes scientifiques pour y parvenir, comme la définition de l’état d’équilibre (steady-state), d’hypothèses, l’amélioration continue, l’apprentissage et la mise en œuvre de mesures d’atténuation...

Serverless

Le serverless, que l’on pourrait traduire littéralement par “sans serveur”, est un modèle de développement Cloud Native qui permet aux développeurs de construire et d’exécuter des applications sans avoir à gérer de serveurs. Bien que les serveurs existent toujours dans le paradigme serverless, ils sont abstraits du processus de développement de l’application. Un fournisseur de cloud s’occupe du travail routinier de mise à disposition, de maintenance et de mise à l’échèle de l’infrastructure...

Service

Notez bien qu’en informatique, le mot service a plusieurs significations. Dans cette définition, nous nous concentrerons sur la plus traditionnelle : service comme dans microservice. La manière dont les services diffèrent des microservices, voire s’ils diffèrent, est subtil et différentes personnes peuvent avoir des opinions différentes. Pour une définition générale, nous les considérerons équivalents. Veuillez vous référer à la définition des microservices...

Système distribué

Un système distribué est un ensemble de composants autonomes connectés via un réseau, et qui apparaît à ses utilisateurs comme un seul système cohérent. La plupart du temps appelés nœuds, ces composants peuvent aussi bien être des machines physiques (des ordinateurs ou des téléphones portables par exemple) que des processus logiciels. Les nœuds sont programmés pour atteindre un objectif commun et échangent des messages via le réseau afin de collaborer...

Technologies Cloud Natives

Les technologies Cloud Natives, aussi référencées comme la pile des technologies Cloud Natives, sont les technologies utilisées pour construire des applications Cloud Natives. Ces technologies permettent aux organisations de développer des applications capables de se mettre à l’échelle dans des environnements modernes et dynamiques tels que les clouds publics, privés et hybrides. Tout en tirant pleinement parti des avantages du cloud computing. Elles sont conçues dès le départ pour exploiter les capacités du cloud computing ainsi que des conteneurs, des service meshes, des micro-services...

Virtualisation

La virtualisation, dans un cadre Cloud Native, est l’exécution de plusieurs systèmes d’exploitation isolés sur un même ordinateur physique, aussi appelé serveur. Ces systèmes d’exploitation isolés et leurs ressources de calcul dédiées (processeur, mémoire et réseau) sont appelées machines virtuelles ou VMs. Lorsque nous parlons d’une machine virtuelle, nous parlons d’un ordinateur défini par logiciel. C’est-à-dire quelque chose qui ressemble et se comporte comme un vrai ordinateur, mais partage son matériel avec d’autres machines virtuelles...