Qu'est-ce que le cloud natif ?
Une application « cloud native » est constituée de composants discrets et réutilisables, appelés microservices, conçus pour s'intégrer dans tout environnement de cloud.
Arrière-plan noir et bleu
Qu'est-ce que le cloud natif ?

Le cloud natif ne concerne pas tant l'emplacement d'une application que la façon dont elle est générée et déployée.

  • Une application « cloud native » est constituée de composants discrets et réutilisables, appelés microservices, conçus pour s'intégrer dans tout environnement de cloud.

  • Ces microservices servent de blocs fonctionnels et sont souvent fournis dans des conteneurs.

  • Les microservices fonctionnent ensemble comme un tout pour constituer une application, mais chacun d'entre eux peut être mis à l'échelle de manière indépendante, amélioré en permanence et faire l'objet d'une itération rapide grâce à des processus d'automatisation et d'orchestration.

  • La flexibilité de chaque microservice ajoute à l'agilité et à l'amélioration continues des applications cloud natives.

Dans la vidéo « Qu'est-ce que le cloud natif ? », Andrea Crawford présente quelques-uns des principaux concepts :

Microservices et conteneurs

Les microservices (également appelés architecture de microservices) sont une approche architecturale dans laquelle une application unique est composée de nombreux composants ou  services plus petits, faiblement couplés et pouvant être déployés indépendamment. Ces services (également appelés microservices) possèdent généralement leur propre pile technologique, notamment une base de données et un modèle de données, et communiquent entre eux via une combinaison d'API REST, de diffusion de flux d'événements et de  courtiers de messages.

Les microservices pouvant être déployés et redéployés indépendamment les uns des autres, sans s'impacter mutuellement ni perturber l'expérience de l'utilisateur final, ils sont parfaitement adaptés aux méthodologies de distribution automatisée et itérative telles que l'intégration continue/déploiement continu (CI/CD) ou DevOps

Outre le fait qu'ils sont utilisés pour créer des applications cloud natives, les microservices peuvent être utilisés pour moderniser les applications monolithiques traditionnelles.

Dans une récente enquête d'IBM auprès de plus de responsables informatiques, de responsables de développement et de développeurs, 87 % des utilisateurs de microservices s'accordent à dire que l'adoption des microservices vaut l'investissement et les efforts qu'ils impliquent.

Les développeurs déploient souvent des  microservices à l'intérieur de conteneurs (des composants d'application légers et exécutables qui combinent le code source de l'application, dans ce cas, le code des microservices) avec toutes les bibliothèques et  dépendances du système d'exploitation nécessaires pour exécuter le code dans n'importe quel environnement. Plus petits, plus efficaces en termes de ressources et plus portables que les machines virtuelles (VM), les conteneurs sont de fait les unités de calcul des applications modernes cloud natives.

Les conteneurs amplifient les avantages des microservices en permettant un déploiement et une gestion cohérents dans un environnement hybride multicloud : clouds publics, clouds privés et infrastructure sur site. Mais au fur et à mesure que les applications cloud natives se multiplient, les conteneurs et la complexité de leur gestion augmentent également. La plupart des organisations qui utilisent des microservices conteneurisés utilisent également une plateforme d'orchestration de conteneurs, telle que Kubernetes, pour automatiser le déploiement et la gestion des conteneurs à grande échelle.

Pourquoi utiliser les microservices et les conteneurs ?
Avantages et inconvénients

Les clients d'IBM sont de plus en plus souvent amenés à améliorer les applications existantes, à créer des applications et à améliorer l'expérience des utilisateurs. Les applications cloud natives répondent à ces exigences en améliorant les performances, la flexibilité et l'extensibilité des applications.

Avantages

  • Comparées aux applications monolithiques traditionnelles, les applications cloud natives peuvent être plus faciles à gérer, car des améliorations itératives sont apportées grâce aux processus Agile et DevOps.

  • Composées de microservices individuels, les applications cloud natives peuvent être améliorées de manière progressive et automatique afin d'ajouter en continu des fonctions nouvelles et améliorées.

  • Les améliorations peuvent être apportées de manière non intrusive, sans provoquer de temps d'arrêt ou perturber l'expérience de l'utilisateur final.

  • La mise à l'échelle à la hausse ou à la baisse s'avère plus simple avec l'infrastructure élastique qui sous-tend les applications cloud natives.

  • Le processus de développement cloud natif correspond davantage à la vitesse et à l'innovation exigées par l'environnement économique actuel.

Inconvénients

  • Bien que les microservices permettent d'adopter une approche itérative de l'amélioration des applications, ils impliquent de gérer davantage d'éléments. Au lieu d'une grande application, vous devez gérer beaucoup plus de petits services discrets.

  • Les applications cloud natives exigent des ensembles d'outils supplémentaires pour gérer le pipeline DevOps, remplacer les structures de contrôle traditionnelles et contrôler l'architecture de microservices.

  • Les applications cloud natives peuvent être développées et déployées rapidement, mais elles exigent également une culture d'entreprise capable de faire face au rythme de cette innovation.
Exemples d'application

Les applications cloud natives ont souvent des fonctions très spécifiques. Réfléchissez à la façon dont elles pourraient être utilisées sur un site Web de voyage. Chaque rubrique couverte par le site (vols, hôtels, voitures, offres spéciales) est en soi un microservice. Chaque microservice peut déployer de nouvelles fonctionnalités indépendamment des autres microservices. Des promotions et des réductions peuvent également être ajoutées de manière indépendante. Alors que le site de voyage est présenté aux clients comme un tout, chaque microservice reste indépendant et peut être adapté ou mis à jour selon les besoins sans affecter les autres services. Voici quelques exemples d'autres applications cloud natives.

  • American Airlines (2:50) s'est associée à IBM pour créer une application de changement de réservation dynamique qui a été lancée pendant une période de mauvais temps. L'application a amélioré l'expérience des clients en fournissant aux utilisateurs des informations plus complètes et un processus de changement de réservation amélioré.

  • XComP Analytics (1:56), une plateforme d'analyse pour l'éducation et la formation, devait résoudre un problème d'analytique, mais en résolvant un problème, l'entreprise a pu développer six nouveaux produits après avoir fait appel à IBM Cloud Garage. La solution comprend l'utilisation d'une architecture de microservices et l'intégration d'IBM Watson pour résoudre des problèmes d'analyse spécifiques.

  • UBank (2:45) voulait améliorer son offre de prêts immobiliers et aider ses clients à exécuter le processus de prêt. L'application d'assistant intelligent de l'entreprise, RoboChat, a répondu à ce besoin et a été conçue à l'aide de la chaîne d'outils IBM DevOps. Les clients qui utilisent RoboChat bénéficient d'un taux d'obtention de prêts immobiliers supérieur de 15 %.

  • Un point essentiel de la recherche médicale est de conseiller les médecins sur les meilleures pratiques dans le domaine des soins aux patients. Cependant, il faut 17 ans pour que la recherche médicale qui révèle les meilleures pratiques se traduise dans la pratique médicale réelle. ThinkResearch  (2:06) utilise IBM Cloud pour fournir les meilleures informations médicales sur le lieu de soins. En utilisant l'infrastructure IBM Cloud et des services Kubernetes gérés, l'équipe DevOps de ThinkResearch peut se consacrer à l'innovation et aux soins aux patients plutôt qu'à l'infrastructure.

IBM Cloud Garage offre aux clients d'IBM une expertise en conseil pour créer rapidement des applications cloud natives évolutives et innovantes. Il s'agit d'un centre d'innovation où les entreprises de toutes tailles peuvent concevoir et créer des applications qui répondent à des besoins métier réels.

Principes de développement

Qu'ils créent une application cloud native ou qu'ils modernisent une application existante, les développeurs adhèrent à un ensemble cohérent de principes :

  • Suivre l'approche architecturale des microservices : décomposer les applications en services à fonction unique appelés microservices. Les microservices sont faiblement couplés, mais restent indépendants, ce qui permet l'amélioration progressive, automatisée et continue d'une application sans provoquer de temps d'arrêt.

  • S'appuyer sur des conteneurs pour bénéficier d'une flexibilité et d'une évolutivité maximales : les conteneurs regroupent les logiciels avec tout leur code et leurs dépendances dans un même emplacement, ce qui permet aux logiciels de fonctionner n'importe où et apporte une flexibilité et une portabilité maximales dans un environnement multicloud. Les conteneurs permettent également de monter ou de baisser en charge grâce aux politiques d'orchestration Kubernetes définies par l'utilisateur.

  • Adopter les méthodes Agile : les méthodes Agile accélèrent le processus de création et d'amélioration. Les développeurs peuvent rapidement itérer les mises à jour en fonction des commentaires des utilisateurs, ce qui permet à la version de travail de l'application de correspondre le plus possible aux attentes de l'utilisateur final.
Stockage

Les applications cloud natives reposent souvent sur des conteneurs. L'intérêt des conteneurs est qu'ils sont flexibles, légers et portables. Au début, les conteneurs ont été principalement utilisés avec les applications sans état qui n'avaient pas besoin de sauvegarder les données de l'utilisateur entre les sessions.

Cependant, alors qu'une nombre croissant de fonctions métier essentielles sont transférées vers le cloud, la question du stockage de persistance doit être abordée dans un environnement cloud natif. Les développeurs doivent donc envisager de nouvelles façons d'aborder le stockage en cloud.

À l'instar du développement d'applications cloud natives qui adopte une approche microservices et modulaire, le stockage cloud natif doit lui aussi adopter cette approche. Les données cloud natives peuvent résider dans un grand nombre d'endroits, tels que les journaux d'événements ou système, les bases de données relationnelles et les magasins de documents ou d'objets.

L'emplacement des données, les obligations de conservation, la portabilité, la compatibilité des plateformes et la sécurité ne sont que quelques-uns des aspects que les développeurs doivent prendre en compte lorsqu'ils planifient le stockage en cloud.

En savoir plus sur le stockage de données cloud natif
Applications cloud natives et applications traditionnelles

Applications cloud natives et applications compatibles cloud

Une application compatible cloud est une application développée pour être déployée dans un centre de données traditionnel, mais qui a été modifiée ultérieurement pour pouvoir fonctionner dans un environnement cloud. Les applications cloud natives, quant à elles, sont faites pour fonctionner uniquement dans le cloud. Les développeurs conçoivent des applications cloud natives pour qu'elles soient évolutives, indépendantes des plateformes et composées de microservices.

Applications cloud natives et applications prêtes pour le cloud

Dans la courte histoire du cloud computing, la signification de l'expression « prêt pour le cloud » a connu plusieurs évolutions. À l'origine, le terme s'appliquait aux services ou logiciels conçus pour fonctionner sur Internet. Aujourd'hui, le terme est plus souvent utilisé pour décrire une application qui fonctionne dans un environnement de cloud, ou s'applique à une application traditionnelle qui a été reconfigurée pour un environnement de cloud. Le terme « cloud natif » a une histoire beaucoup plus courte et fait référence à une application développée dès le départ pour fonctionner uniquement dans le cloud et tirer parti des caractéristiques de l'architecture en cloud ou à une application existante qui a été restructurée et reconfigurée selon les principes du cloud natif.

Applications cloud natives et applications basées sur le cloud

Un service ou une application cloud est distribué sur Internet. Il s'agit d'un terme général appliqué librement à un certain nombre d'offres de cloud. Cloud natif est un terme plus spécifique. Le terme décrit les applications conçues pour fonctionner dans des environnements de cloud. Ce terme désigne les applications qui reposent sur des microservices, l'intégration continue et la distribution continue (CI/CD) et qui peuvent être utilisées via n'importe quelle plateforme en cloud.

Applications cloud natives et applications Cloud first

L'expression « Cloud first » (cloud d'abord) décrit une stratégie métier dans laquelle les entreprises s'engagent à utiliser en priorité les ressources du cloud lors du lancement de nouveaux services IT, de l'actualisation des services existants ou du remplacement des technologies existantes. Les économies de coûts et les gains d'efficacité opérationnelle sont les moteurs de cette stratégie. Les applications cloud natives se combinent bien avec une stratégie Cloud first, car elles n'utilisent que des ressources cloud et tirent parti des caractéristiques bénéfiques de l'architecture en cloud.

Solutions connexes
IBM pour le cloud natif

IBM Cloud est un leader du développement d'applications cloud natives et un partenaire de confiance pour créer rapidement vos applications d'entreprise sur une plateforme ouverte, sécurisée et intégrée.

Explorer IBM pour le cloud natif
Red Hat OpenShift on IBM Cloud

D'un clic, déployez des clusters Kubernetes hautement disponibles et entièrement gérés pour vos applications conteneurisées.

Explorer Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine

Exécutez des images de conteneurs, des travaux par lots ou du code source en tant que charges de travail sans serveur, sans avoir à dimensionner, déployer, mettre en réseau ou mettre à l'échelle.

Explorer IBM Cloud Code Engine
Ressources Que sont les microservices ?

Dans une architecture de microservices, chaque demande est composée de nombreux petits services liés de façon souple et pouvant être déployés de manière indépendante.

Que sont les conteneurs ?

Les conteneurs sont des unités exécutables de logiciels qui regroupent le code d'une application avec ses bibliothèques et ses dépendances, et peuvent être exécutés n'importe où, que ce soit sur un ordinateur de bureau, dans un système informatique traditionnel ou dans le cloud.

Qu'est-ce que Kubernetes ?

Kubernetes est une plateforme open source d'orchestration de conteneurs qui automatise le déploiement, la gestion et la mise à l'échelle des applications conteneurisées.

Pour aller plus loin

Au cours des 20 dernières années, IBM a considérablement investi dans le code, les communautés et la gouvernance open source, notamment dans la Cloud Native Computing Foundation.Avec plus de 20 000 clusters Kubernetes actuellement en production et en cours d'exécution, IBM Cloud est conçu pour être performant.Il fournit l'une des normes les plus performantes en matière de chiffrement des données et adhère à plus de 30 programmes de conformité.

Explorer le cloud natif sur IBM Cloud