Tech Insights

Applications cloud natives : Lancements accélérés, risques réduits, croissance garantie


Qu’est-ce qu’une application cloud native ?

L’approche cloud native vise à développer et exécuter des applications capables d’exploiter tous les avantages du cloud. Ces dernières années, le cloud a bouleversé l'ordre établi dans presque tous les secteurs. Et la raison est simple. Grâce à lui, les entreprises ont pu réduire les investissements consacrés à leurs data centers internes au profit de ressources de calcul illimitées, disponibles à la demande et facturées à l’utilisation. De fait, la réduction des coûts informatiques a fait tomber les barrières à l’entrée. Désormais, la compétitivité d'une entreprise dépend directement de sa capacité à concrétiser rapidement de nouvelles idées. D'où la montée en puissance des logiciels. Les start-ups l'ont bien compris, c'est pourquoi elles misent sur les approches cloud natives pour disrupter les secteurs traditionnels.

Pour se mettre à l'heure du Cloud Native, les entreprises ont besoin d’une plateforme de création et d’exploitation dédiée, capable d’automatiser et d’intégrer les nouveaux concepts du développement logiciel − du DevOps aux conteneurs, en passant par le déploiement continu et les microservices :



“Cloud native is structuring teams, culture, and technology to utilize automation and architectures to manage complexity and unlock velocity.”

Joe Beda
Co-Founder, Kubernetes and Principal Engineer, VMware

Watch Joe talk about Kubernetes



Dans une approche DevOps, développeurs et opérations IT travaillent main dans la main pour automatiser le processus de déploiement logiciel et les modifications d'infrastructure. Cette approche instaure une culture et un cadre propices pour des développements, tests et lancements plus rapides, plus fiables et plus fréquents.

Dans un modèle de déploiement continu, chaque modification applicative est mise en production dès sa finalisation. Nul besoin d’attendre la sortie d'une nouvelle version (au terme de l’intégration de multiples modifications), ni même de planifier une fenêtre de maintenance. Ainsi, chaque lancement devient un « non-événement ». Les équipes déploient des modifications de manière fiable, plus fréquente et moins risquée, tout en raccourcissant drastiquement la boucle de feedback. L’enjeu : intégrer les déploiements au cœur du processus métier et de la compétitivité de l'entreprise.

Les microservices désignent un type d'architecture où une application est développée sous la forme d’une collection de mini-services. Chaque service implémente des fonctionnalités métiers spécifiques, s'exécute dans son propre processus et communique via une API HTTP. Vous pouvez déployer, modifier, monter en capacités et redémarrer chaque microservice de façon indépendante, généralement à partir d'un système automatisé permettant des mises à jour fréquentes en production, sans aucun impact sur le client.

Par rapport aux machines virtuelles (VM) standards, les conteneurs offrent à la fois des gains d'efficacité et de rapidité. Grâce à la virtualisation au niveau du système d’exploitation (OS), vous pouvez diviser une instance d’OS de façon dynamique en plusieurs conteneurs isolés, chacun possédant son propre système de fichiers en écriture et quota de ressources. Le faible impact de la création et suppression des conteneurs, combiné à la haute densité d'une VM unique, font des conteneurs un vecteur idéal pour le déploiement de microservices individuels.



« Ce que nous avons appris, c'est que le marché ne nous attend pas. Peu importe la qualité de l’ingénierie, du développement, du déploiement ou de la formation des équipes. Pour faire mouche, un produit doit sortir au bon moment. Après l’heure, c’est plus l’heure. »

James McGlennon
Vice-président exécutif et DSI, Liberty Mutual Insurance Group



Les avantages des applications cloud natives

Les applications cloud natives sont spécialement conçues pour le cloud. Le principe ? De petites équipes dédiées créent et déploient ces applications à partir d'une plateforme facilement scalable et découplée du matériel. À la clé, les entreprises disposent d'applications hautement agiles, résilientes et déployables dans divers formats de cloud.

  • Compétitivité

    L’approche cloud native implique un revirement des objectifs : d'un simple outil de réduction des coûts informatiques, le cloud se transforme en moteur de votre croissance. À l’ère du logiciel, les grandes gagnantes seront les entreprises capables de développer et déployer rapidement des applications en réponse aux besoins de leurs clients. Une fois déployées, les applications doivent s’exécuter sous forme de services scalables et disponibles en continu.
  • Flexibilité

    Les entreprises peuvent créer des applications qui s’exécuteront sur n’importe quel cloud, sans aucune modification. Leurs équipes ont ainsi la possibilité de migrer ou distribuer leurs applications entre divers clouds publics et privés pour satisfaire leurs priorités et réduire leurs coûts.
  • Développement optimal

    Avec l'approche cloud native, les développeurs n'ont plus à tenir compte des contraintes d'exécution et de montée en charge sur une diversité d'infrastructures cloud. Ils se recentrent ainsi sur l'écriture de code à plus forte valeur ajoutée. Les applications de type « twelve-factor », utilisant des services courants dans des environnements de développement standardisés, suivent un modèle de « contrat » garantissant l'exploitation optimale de la plateforme cloud native sous-jacente.
  • Alignement des opérations sur les métiers

    À travers des processus automatisés, les opérations IT peuvent adopter une approche lean et se mettre au diapason des priorités métiers. Plutôt que de se concentrer sur les tâches d’administration ordinaires, elles peuvent se consacrer à l'amélioration des processus tout en supprimant les risques liés aux erreurs humaines. Enfin, grâce à des corrections et montées de version automatiques à tous les niveaux, elles peuvent éliminer les interruptions de service et l’intervention de techniciens chevronnés.



Comparatif : Applications cloud natives vs. Applications traditionnelles

Applications cloud natives
Applications d’entreprise traditionnelles
Prévisibilité. Les applications cloud natives suivent un cadre ou « contrat » spécifique conçu pour maximiser leur résilience par la description de comportements prévisibles. L’infrastructure orientée conteneurs et hautement automatisée des plateformes cloud conditionne le mode d’écriture logicielle. Les 12 principes qui composent la méthodologie applicative à douze facteurs illustrent bien un tel « contrat ».
Imprévisibilité. Intrinsèquement, l’architecture et le modèle de développement des applications traditionnelles les empêchent d’exploiter tout le potentiel des plateformes cloud natives. Ces applications se déclinent dans des versions plus lourdes, plus longues à développer, peu scalables et sujettes à de nombreux points de défaillance uniques.
Abstraction de l'OS. Dans une architecture applicative cloud native, les développeurs utilisent une plateforme comme moyen d'abstraction des dépendances sous-jacentes de l'infrastructure, ce qui simplifie les migrations et montées en charge. La solution d’abstraction la plus efficace ? Une plateforme formalisée, VMware Tanzu par exemple, idéale pour des opérations sur une infrastructure cloud comme Google Cloud Platform (GCP), Microsoft Azure ou Amazon Web Services (AWS).
Dépendance OS. L’architecture applicative traditionnelle permet aux développeurs de créer des liens de dépendance étroits entre l’application et le système d’exploitation, les matériels, le stockage et autres services sous-jacents. Or, ces dépendances rendent complexe et périlleuse toute migration ou montée en charge des applications vers de nouvelles infrastructures, ce qui ne favorise pas la transition vers un modèle cloud.
Capacités sur mesure. Une plateforme d’applications cloud natives automatise le provisionnement et la configuration de l'infrastructure, permettant ainsi une allocation dynamique de vos ressources selon vos besoins applicatifs. En vous appuyant sur une exécution cloud native, vous optimisez la gestion du cycle applicatif dans sa globalité : des montées en charge jusqu'aux opérations de restauration, en passant par l'utilisation et l'orchestration des ressources disponibles.
Capacités surdimensionnées. Pour chaque application, l’approche informatique traditionnelle consiste à concevoir une solution d’infrastructure dédiée et sur mesure (on parle de « snowflakes » en anglais), ce qui allonge les délais de déploiement. Résultat : l’infrastructure est dimensionnée en fonction des estimations de pics de charge, ce qui la laisse le plus souvent en surcapacité sans pour autant pouvoir évoluer au-delà du seuil maximal défini.
Collaboration. L’approche cloud native favorise l'adoption du DevOps. Outre une savante combinaison de talents, de processus et d’outils, vous instaurez une collaboration plus étroite entre vos développeurs et vos opérations IT, avec à la clé l'envoi plus rapide et plus fluide du code applicatif en production.
Cloisonnement. Dans une approche traditionnelle, le code applicatif fini passe sans transition des développeurs aux opérations, dont la mission est de mettre ce code en production. La politique interne prend alors le pas sur le client. On assiste à des conflits et renvois de responsabilités qui ralentissent les déploiements et démoralisent les collaborateurs.
Déploiement continu. Les équipes informatiques déploient chaque mise à jour logicielle dès sa finalisation. Résultat : elles raccourcissent leur boucle de feedback et restent ainsi au plus proche des besoins de leurs clients. Le déploiement continu fonctionne encore mieux en conjonction avec d’autres approches, comme le développement centré sur les tests ou l’intégration continue.
Développement en cascade. Traditionnellement, les nouvelles versions de logiciels sortent de façon régulière, généralement à des semaines voire des mois d’intervalle, une fois tout le code incorporé dans la version. Pourtant, de nombreux composants sont prêts avant l’heure et n’ont d’autre dépendance que le véhicule artificiel de cette version. Pendant ce temps, les fonctionnalités que les clients demandent, voire exigent, tardent à venir. Si bien que l’entreprise manque de nombreuses occasions de se démarquer, de conquérir de nouveaux clients et d’accroître son chiffre d’affaires.
Indépendance. Une architecture de microservices décompose les applications en une série de mini-services indépendants et faiblement couplés. Ces services sont eux-mêmes rattachés à des équipes de développement autonomes et de petite taille. Cette configuration permet des mises à jour fréquentes et indépendantes, ainsi que des montées en charge et des basculements/redémarrages sans impact sur les autres services.
Dépendance. Les architectures monolithiques regroupent de nombreux services disparates dans un seul et même pack de déploiement, avec pour conséquences des dépendances inutiles entre les services, ainsi qu’une perte d’agilité au cours du développement et des déploiements.
Scalabilité automatique. L’automatisation à grande échelle permet d'appliquer un ensemble de règles cohérentes à des environnements et déploiements de toutes tailles. Résultat : vous éliminez les interruptions de service liées aux erreurs humaines. L’approche cloud native va au-delà d'une automatisation ad hoc, cas classique dans l'orchestration traditionnelle orientée virtualisation. De fait, dans une architecture cloud native, l’automatisation et l’orchestration travaillent pour les équipes de manière homogène, plutôt que de contraindre ces dernières à coder de tels processus au cas par cas, pour chaque application. En d’autres termes, l’automatisation simplifie le développement et l’exécution d’applications faciles à gérer.
Évolutivité manuelle. Une infrastructure manuelle repose sur des opérateurs humains qui définissent et gèrent les configurations serveurs, réseau et de stockage. Compte tenu du degré de complexité, les opérateurs mettent énormément de temps à diagnostiquer les problèmes et ne parviennent pas à faire évoluer leurs environnements à grande échelle. Les solutions d’automatisation créées manuellement risquent de coder en dur les erreurs humaines dans l’infrastructure.
Restauration accélérée. L’environnement d’exécution et l’orchestrateur de conteneurs ajoutent une couche de virtualisation dynamique à haute densité à vos VM. L’orchestration gère le placement des conteneurs de façon dynamique à travers un cluster de VM. L’objectif est double : assurer à la fois une scalabilité élastique et une reprise/un redémarrage rapide en cas de panne.
Reprise lente. Une infrastructure basée sur les VM est conceptuellement inadaptée aux impératifs de rapidité et d’efficacité des microservices. Longues à démarrer et à stopper, les VM individuelles pèsent sur l’infrastructure avant même le déploiement du code applicatif.


Les applications cloud natives vous intéressent ? Voici les points à retenir.



Cloud-Native Apps and VMware


VMware Team Perspectives

Purpose-built for the cloud model, cloud-native applications enable smaller teams across organizations to deploy and deliver software faster. From retailers and manufacturers to healthcare and financial services organizations, IT teams are exploring cloud-native applications for greater agility.





Applications cloud natives selon VMware

VMware Tanzu offre une plateforme de création et d’exploitation des services cloud natifs, capable d’automatiser et d’intégrer les concepts de DevOps, déploiement continu, microservices et conteneurs. Grâce à la plateforme VMware, les entreprises accélèrent leurs lancements et libèrent plus rapidement tout le potentiel du cloud. Plus compétitives, elles développent plus rapidement leur base client et leur chiffre d’affaires.

De l’infrastructure au développement applicatif, la plateforme cloud native VMware vous propose un environnement intégré et optimisé pour des montées en charge rapides en fonction de la demande.

Avec Cloud Foundry, les entreprises ont accès à un flux continu d’innovations. Par exemple, au moment où l’environnement de microservices de Netflix est apparu comme un framework solide pour l’architecture cloud, VMware l’a incorporé à Cloud Foundry.