Applications natives cloud

menu icon

Applications natives cloud

Explorez les applications natives cloud et la manière dont elles favorisent l'innovation et la vitesse dans votre entreprise.

Qu'est-ce que le natif cloud ?

Le natif cloud 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 « native cloud » 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 continue des applications natives cloud.

Dans la vidéo, « Qu'est ce que le cloud natif ?» (4:36), Andrea Crawford donne un aperçu de certains concepts essentiels :

Vous pouvez également vous immerger dans l'IBM Cloud Podcast, qui propose une mini-série de sept épisodes intitulée « Everything Cloud Native ».

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 de manière indépendante. Ces services (également appelés microservices) possèdent généralement leur propre pile technologique, y compris une base de données et un modèle de données, et communiquent entre eux via une combinaison constituée d'API REST, de la diffusion en 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 se prêtent parfaitement aux méthodologies de distribution automatisée et itérative telles que l'intégration continue/le déploiement continu (CI/CD) ou DevOps.

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

Dans une récente enquête d'IBM effectuée auprès de responsables IT, de responsables du développement et de développeurs, 87 % des utilisateurs des microservices s'accordent à dire que l'adoption des microservices vaut l'investissement et la peine. Pour en apprendre davantage sur leurs points de vue concernant les avantages et les défis liés aux microservices, utilisez l'outil interactif ci-dessous :

(Source : 'Microservices in the enterprise 2021: Real benefits, worth the challenges'.)

Les développeurs déploient généralement les microservices à l'intérieur de conteneurs, des composants d'application légers et exécutables qui combinent le code source de l'application, en l'occurrence le code des microservices, avec toutes les bibliothèques et dépendances du système d'exploitation (OS) 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 natives cloud modernes.

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

Pour plus d'informations sur les conteneurs et la conteneurisation, consultez les documents « Containers: A Complete Guide » et « Containerization: A Complete Guide ».

Découvrez des informations supplémentaires sur les raisons pour lesquelles vous devez utiliser des microservices et des conteneurs en tant que construction architecturale.

Avantages et inconvénients

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

Avantages

  • Par rapport aux applications monolithiques traditionnelles, les applications natives cloud peuvent être plus faciles à gérer, car les améliorations itératives se produisent à l'aide de processus Agile et DevOps.
  • Composées de microservices individuels, les applications natives cloud 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 natives cloud.
  • Le processus de développement natif cloud 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 imposent également 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 natives cloud 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 natives cloud permettent d'accélérer le développement et le déploiement, mais elles exigent également une culture d'entreprise capable de faire face au rythme de cette innovation.

Exemples d'application

Les applications natives cloud ont souvent des fonctions très spécifiques. Réfléchissez à la façon dont des applications natives cloud 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 natives cloud.

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

American Airlines (2:50) s'est associé à IBM pour créer une application de changement de réservation dynamique qui a été lancée lors d'une dégradation des conditions météorologiques. 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é.

Analyse XComP (1:56), plateforme d'analyse pour l'éducation et la formation, devait résoudre un problème d'analyse, mais en corrigeant 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) devait améliorer son offre de prêts immobiliers et aider ses clients à mener à bien la procédure de prêt immobilier. 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, la recherche médicale qui fait émerger les meilleures pratiques nécessite 17 ans avant de se concrétiser dans la pratique médicale. 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.

Principes de développement

Qu'ils créent une application native cloud ou 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 dans un seul et même endroit le logiciel avec l'ensemble de son code et de ses dépendances, ce qui permet au logiciel de s'exécuter n'importe où, et apporte une flexibilité et une portabilité maximales dans un environnement multicloud. Les conteneurs permettent également de mettre à l'échelle à la hausse ou à la baisse rapidement avec les politiques d'orchestration Kubernetes définies par l'utilisateur.
  • Adopter des méthodes Agile : Les méthodes Agile accélèrent le processus de création et d'amélioration. Les développeurs peuvent itérer rapidement les mises à jour en fonction du retour d’informations des utilisateurs et obtenir une version d’application fonctionnelle aussi proche que possible des attentes des utilisateurs finaux.

Stockage

Les applications natives cloud reposent généralement 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, avec un nombre croissant de fonctions métier essentielles transférées dans le cloud, la question du stockage de persistance doit être abordée dans un environnement natif cloud. Les développeurs doivent donc envisager de nouvelles façons d'aborder le stockage dans le cloud.

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

L'emplacement des données, les exigences 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 dans le cloud.

Découvrez comment IBM Cloud Object Storage crée un magasin de données permanent pour les applications natives cloud.

Applications cloud natives versus Applications traditionnelles

Natif cloud versus Compatible cloud

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

Natif cloud versus Prêt 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 « natif cloud » 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 cloud, ou à une application existante qui a été restructurée et reconfigurée selon les principes du natif cloud.

Natif cloud versus Basé sur le cloud

Un service ou une application cloud sont distribués sur Internet. Il s'agit d'un terme général appliqué librement à un certain nombre d'offres de cloud. Natif cloud est un terme plus spécifique. Le terme décrit les applications conçues pour fonctionner dans des environnements de cloud. Il 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 cloud.

Natif cloud versus 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 natives cloud 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 cloud.

Natif cloud et IBM

Pour répondre aux attentes plus exigeantes des utilisateurs, il est nécessaire d'adopter les bonnes architectures, pratiques et technologies. Lorsque vous cherchez à améliorer l'expérience des utilisateurs en créant des applications et en modernisant les applications existantes lors de votre transition vers le cloud, le natif cloud peut vous aider en améliorant les performances, la flexibilité et l'extensibilité des applications.

Pour aller plus loin :

  • Découvrez comment vous pouvez aller de l'avant en utilisant IBM for cloud native.
  • Découvrez comment IBM peut vous aider à ouvrir la voie avec des services professionnels natifs cloud.
  • Essayez de moderniser une application existante pour un déploiement natif cloud avec ce tutoriel.
  • Explorez le cours et le badge Cloud Native and Multicloud qui figurent dans la certification du rôle IBM Cloud Associate Solution Advisor.
  • Développez vos compétences grâce à des cours sur l'intégration, la sécurité et l'identité modernes, tels que « Deploying Cloud-Native Architectures and Applications » et « Preparing for Cloud-Native Security », qui figurent dans la formation et la certification du rôle IBM Cloud Professional Developer.

Commencez par créer un compte IBM Cloud dès aujourd'hui.