Accueil
Thèmes
cloud native
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.
Dans la vidéo « Qu'est-ce que le cloud natif ? », Andrea Crawford présente quelques-uns des principaux concepts :
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.
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
Inconvénients
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.
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.
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 :
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.
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.
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.
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.
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.
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.
D'un clic, déployez des clusters Kubernetes hautement disponibles et entièrement gérés pour vos applications conteneurisées.
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.
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.
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.
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.