Skip to Content
Guide

Que sont les applications modernes ? Un guide définitif

Les applications modernes s’appuient sur des technologies cloud natives, comme les conteneurs, avec des bonnes pratiques agiles et DevOps pour offrir portabilité, fiabilité et agilité à grande échelle.

Qu’est-ce que Containers ?

Une application moderne est une application conçue et déployée avec les dernières technologies, méthodologies de développement et bonnes pratiques disponibles pour offrir une expérience utilisateur optimale. Les applications modernes sont natives du cloud. Elles sont conçues comme des microservices qui communiquent entre elles via des API, contrairement aux applications monolithiques étroitement couplées. Ces applications basées sur les microservices exploitent généralement des technologies cloud natives telles que les conteneurs et Kubernetes.

Les applications modernes sont conçues dans un souci d’agilité, d’évolutivité, de portabilité et de fiabilité.

Il s’agit de microservices plutôt que de monolithiques, ce qui les rend évolutifs, réutilisables et faciles à utiliser.

Elles sont souvent conçues conformément aux méthodologies de développement agiles et aux bonnes pratiques DevOps, en mettant l’accent sur l’automatisation tout au long du pipeline d’intégration continue (CI/CD).

Alors, à quoi cela ressemble-t-il en termes de technologies actuelles ? Dans ce guide, nous examinerons de plus près les différentes fonctionnalités qui rendent une application moderne.

En savoir plus : Développement d’applications modernes démystifié .

Articles connexes

Article de connaissances
Comment les applications modernes réduisent-elles le coût total de possession ?

Quels sont les avantages des Containers ?

Dans l’approche traditionnelle du développement d’applications, les applications sont conçues avec des bases de code uniques et étroitement intégrées. En revanche, une architecture de microservices consiste à concevoir une application sous la forme d’un ensemble de services peu couplés.

Cette approche du développement présente de nombreux avantages :

  • Code hautement testable
  • Débogage, maintenance et mise à jour simplifiés
  • Contrôle granulaire sur l’allocation des ressources de stockage et de calcul
  • Une meilleure isolation des pannes, ce qui renforce la résilience des applications
  • Portable et déployable indépendamment. Les composants peuvent être découplés des environnements logiciels et matériels avec des technologies de virtualisation telles que les conteneurs.

Parce que vous gérez une série de services modulaires déployables indépendamment, il est possible de travailler sur un service sans perturber les autres. La possibilité de créer, tester, déployer, gérer et mettre à niveau au niveau service par service réduit également considérablement le temps de développement.

Qui bénéficie de l’utilisation Containers ?

L’architecture de microservices permet aux développeurs de libérer tout le potentiel des technologies de virtualisation telles que les conteneurs et les machines virtuelles. Examinons quelques-unes de ces technologies de virtualisation fondamentales :

  • Machines virtuelles (VM) : Activez la virtualisation au niveau matériel (y compris le OS d’exploitation et le matériel). Un hyperviseur permet à un seul serveur d’exécuter plusieurs applications avec différentes dépendances du système d’exploitation.
  • Containers : Activez la virtualisation au niveau logiciel (en fonction du noyau du OS d’exploitation hôte). Les unités logicielles standardisées qui contiennent l’ensemble du code et des dépendances, y compris les binaires, les bibliothèques et les fichiers de configuration, sont nécessaires à l’exécution d’un service.
  • Volumes virtuels (vVols) : Sont des magasins de données découplés. Les applications conteneurisées peuvent tirer un avantage considérable du stockage conteneurisé. Les vVols peuvent mapper 1 :1 aux microservices conteneurisés, ce qui évite les goulets d’étranglement au niveau de la base de données centrale.

La virtualisation peut contribuer à améliorer les avantages d’une architecture de microservices pour le développement d’applications modernes en vous offrant une granularité sur le degré d’isolation que vous attribuez à vos microservices.

Vous pouvez tirer parti des machines virtuelles pour exécuter des services avec différentes dépendances du OS d’exploitation sur la même machine. Vous pouvez également utiliser des conteneurs et des vVols pour augmenter considérablement le nombre de services que vous pouvez exécuter sur une seule machine.

Plus important encore, la virtualisation facilite la mise à l’échelle automatique du provisioning et du déploiement de microservices et de leurs ressources à la demande.

En savoir plus sur les compromis entre les machines virtuelles et les conteneurs.

Containers et stockage de données

Pour comprendre pourquoi vous souhaiterez peut-être associer des conteneurs « stateless » à des architectures « serverless », nous devrons définir quelques termes :

  • Sans état : Une application est « stateless » si elle ne lit pas ou ne stocke pas d’informations sur son état d’une exécution à l’autre (par exemple, une application de calculatrice affiche zéro lorsque vous la rouvrez, sans souvenir de la dernière fois qu’un calcul a été effectué).
  • Sans serveur : Une application est sans serveur si un développeur s’appuie sur un tiers, comme un fournisseur de cloud, pour gérer les ressources serveur, en séparant les détails de la gestion des serveurs.

Par nature, les premiers conteneurs étaient « stateless » car ils ont pu exister en cas de besoin, faire leur travail et disparaître, libérant ainsi des ressources pour le reste de l’application. De la même manière, les applications modernes simplifient les conteneurs, ce qui leur permet d’exister en fonction des besoins.

Lorsqu’ils sont associés à une architecture sans serveur, les développeurs d’applications peuvent appeler des fonctions qui fournissent des ressources à la demande sans avoir à gérer eux-mêmes l’infrastructure sous-jacente. L’association de conteneurs « stateless » et d’architectures « serverless » simplifie considérablement le développement d’applications hautement évolutives. Cela est particulièrement bien adapté aux environnements d’informatique de périphérie où les périphériques de périphérie diffusent constamment des données en réponse à des événements. La combinaison « stateless »/« serverless » permet aux applications d’effectuer facilement des ajustements à la volée en réponse aux informations en temps réel.

Cela dit, plus votre application est complexe, plus il est probable que vous ayez toujours besoin d’un stockage persistant pour vos microservices conteneurisés. C’est pourquoi les solutions de stockage de données par conteneurs telles que Portworx ® simplifient la mise à disposition de stockage permanent vers les applications conteneurisées « stateful ». Le mappage 1 :1 des magasins de données agiles peut améliorer l’évolutivité et permettre de préserver l’état pendant l’exécution de votre application.

Qu’est-ce que l’orchestration et la gestion des conteneurs ?

Les applications modernes sont des applications cloud natives. Associées à l’infrastructure sous-jacente nécessaire pour les prendre en charge, elles peuvent tirer tous les avantages des écosystèmes cloud tels qu’Amazon Web Services (AWS), Google Cloud et Microsoft Azure .

Alors, qu’est-ce qui rend une application native dans le cloud ? L’association d’une architecture de microservices, de technologies de virtualisation et d’un calcul sans serveur permet de provisionner dynamiquement les applications modernes en fonction de la demande des utilisateurs. Ces microservices peuvent communiquer indépendamment via des API gérées par une couche de services.

Les applications cloud natives tirent pleinement parti des modèles de déploiement du cloud computing tels que le logiciel à la demande (SaaS), la plateforme à la demande (PaaS) et l’infrastructure à la demande (IaaS). Ces modèles remplacent le modèle de paiement dépenses d'investissement traditionnel, qui consiste à payer un prix fixe pour les ressources que vous pouvez ou non utiliser avec les modèles de paiement OPEX, où vous payez les ressources au fur et à mesure que vous les utilisez.

En savoir plus sur ce que signifie le cloud-native.

Qu’est-ce que Docker ?

Leur philosophie de développement et de déploiement fait toute la différence entre les applications modernes et les applications traditionnelles.

Dans l’approche traditionnelle du développement d’applications, vous commencez par un plan global linéaire et vous y tenez. Le développement passe de la collecte des exigences à des phases clairement définies jusqu’au déploiement de l’ensemble de l’application en production. La communication entre les développeurs, les opérateurs, les parties prenantes et les utilisateurs finaux est freinée par de longs cycles de vie de développement logiciel (SDLC). Les bases de code sont monolithiques, les correctifs sont plus importants et les tentatives de déploiement d’une correction de bogues, d’ajout d’une nouvelle fonctionnalité ou de mise à jour de la technologie sous-jacente sont vulnérables aux interruptions de services longues ou aux effets secondaires inattendus qui peuvent être difficiles à dépanner.

La solution applicative moderne ? Passer des systèmes monolithiques aux microservices avec des bonnes pratiques agiles et DevOps.

Le développement agile adopte une approche itérative du développement logiciel. Associé à des microservices , il permet aux développeurs de créer, tester et déployer des fonctionnalités progressivement sur plusieurs itérations de conception. Le SDLC est maintenu serré, ce qui permet des boucles de rétroaction plus étroites entre les utilisateurs finaux, les parties prenantes et les développeurs. Parmi les méthodologies de développement agile les plus populaires, citons Scrum, Extreme Programming (XP) et le développement piloté par des tests (TDD).

DevOps est une pratique et une culture du développement logiciel qui intègre étroitement les équipes de développeurs et d’opérations au sein d’une organisation. Le SDLC est réinventé comme un pipeline CI/CD qui utilise la gestion de la configuration, l’automatisation et la surveillance en temps réel pour rationaliser le développement, les tests et le déploiement de logiciels.

Les applications modernes devraient être hautement disponibles et performantes à tout moment. Ils ne peuvent pas se permettre de subir des interruptions de service dues à des correctifs monolithiques, des mises à jour ou des bogues. C’est pourquoi les applications modernes s’appuient sur des méthodologies de développement agiles et des bonnes pratiques DevOps pour s’assurer qu’elles restent à jour et compétitives dans un paysage numérique en constante évolution.

Découvrez comment les applications modernes réduisent les délais de mise sur le marché.

Qu’est-ce que Kubernetes ?

Dans un monde de plus en plus numérique, la protection des données est une priorité. Les avantages des applications modernes en matière de protection des données sont les suivants :

  • Isolement du code, ce qui complique la tâche des pirates informatiques qui compromettent l’ensemble du système 
  • Architecture modulaire, qui permet des tests de sécurité incrémentiels plus stricts sur l’ensemble du SDLC. 
  • Les pipelines CI/CD, qui assurent des boucles de rétroaction plus étroites entre les développeurs et les utilisateurs, permettent  aux développeurs de corriger rapidement les vulnérabilités dès qu’elles apparaissent
  • Reprise après sinistre rationalisée : les microservices peuvent être sauvegardés et restaurés indépendamment avec un minimum voire aucune interruption de l’ensemble de l’application
  • Meilleures pratiques de sécurité renforcées telles que DevSecOps

Les applications modernes sont équipées pour faire face aux menaces de sécurité modernes. Des cycles de développement plus étroits et des boucles de retour de communication permettent aux développeurs d’identifier et de corriger les bogues et les vulnérabilités avant qu’ils ne puissent être exploités.

En savoir plus : Les avantages des applications modernes en matière de protection des données

11/2020
VMware Hybrid Cloud Solution Brief | Solution Brief
Hybrid cloud and container adoption are growing rapidly. Advance to an effortless, optimized VMware environment.
Présentation
3 pages
CONTACTEZ-NOUS
Des questions, des commentaires ?

Vous avez des questions ou des commentaires concernant des produits ou certifications Pure ?  Nous sommes là pour vous aider.

Planifier une démo

Planifiez une démo en direct et découvrez comment Pure peut vous aider à transformer vos données. 

Tél. : +33 1 89 96 04 00

Services Médias : pr@purestorage.com

 

Pure Storage France

32 rue Guersant

75017 Paris

info@purestorage.com

 

FERMER
Votre navigateur n’est plus pris en charge !

Les anciens navigateurs présentent souvent des risques de sécurité. Pour profiter de la meilleure expérience possible sur notre site, passez à la dernière version de l’un des navigateurs suivants.