De notre magazine

Les applications cloud native décollent

| mise à jour

Alors que la modernisation et la création de nouvelles applications sont au sommet des priorités de beaucoup d’entreprises, nombre d’entre elles optent pour des pratiques, architectures et outils conçus par les géants du web. A la clé, des applications plus flexibles et résilientes, à même d’être développées en continu, mais aussi la possibilité de les enrichir de services clés en main à disposition sur les plateformes cloud.

En 2019, de nombreuses entreprises vont développer de nouvelles applications ou moderniser leurs solutions existantes. Plus de 60% des responsables IT romands y voient un chantier hautement prioritaire, selon les résultats préliminaire de l’enquête d’ICTjournal menée en janvier. Beaucoup de ces organisations bâtiront sans doute des microservices plutôt que des applications monolithiques, elles confieront l’évolution continue et la gestion de ces solutions à des équipes DevOps, elles recourront à des API, containers et autres outils d’orchestration, et bon nombre d’entre elles opéreront ces applications dans le cloud.

Ces pratiques, ces architectures et ces technologies, ont pour la plupart été développées par les géants du cloud pour créer et gérer leurs propres applications, ce qui leur vaut le label de «cloud native». Fondée en 2015, la Cloud Native Computing Foundation, qui regroupe les principaux éditeurs de logiciels et prestataires cloud, en propose la définition suivante: «Les technologies cloud native permettent aux organisations de construire et d’opérer des applications évolutives dans des environnements dynamiques tels que les clouds publics, privés et hybrides. Les containers, les maillages de services, les microservices, et les infrastructures immuables illustrent cette approche.» Grâce à ces techniques, les entreprises peuvent bâtir des systèmes composites à la fois résilients flexibles et automatisables, sur lesquels les ingénieurs peuvent apporter des changements fréquents et prévisibles, ajoute la fondation. Autant d’atouts qui expliquent l’intérêt qu’ont les entreprises à employer cette même recette pour leurs propres applications, qu’elles soient destinées à leurs clients ou à usage interne. L’adoption en forte croissance des containers et de l’outil open source Kubernetes témoignent de cette évolution.

Moderniser les applications avec des microservices

Les technologies cloud native arrivent aussi à une certaine maturité, au moment même où de nombreuses entreprises cherchent à moderniser leurs applications maison. «Dans le cadre de leur transformation, les entreprises cherchent à développer et maîtriser les applications qu’elles considèrent comme différenciatrices, qu’il s’agisse d’outils internes ou de portails destinés aux clients finaux, explique Séverin Voisin, Responsable des services et opérations SaaS chez ELCA. Lorsque ces solutions doivent vivre et être mises à jour en permanence, employer des microservices et des containers fait beaucoup de sens.»

Les architectures modulaires reposant sur des microservices chargés de processus uniques et communiquant au sein de containers, apportent plusieurs bénéfices: d’abord, l’application monolithique peut être transformée par étape en extrayant peu à peu des microservices. Une fois mis en place, les microservices peuvent être mis à jour, étendus et déployés indépendamment et en parallèle par des équipes dédiées avec davantage de vitesse et sans mettre en péril l’ensemble de l’applicatif. A cela s’ajoute que les architectures microservices augmentent la résilience des applications, en termes de sécurité et de disponibilité.

«Les défis des entreprises n’ont jamais changé aussi vite qu’aujourd’hui, commente Brian Gracely, Directeur de la stratégie produit chez Red Hat. Parfois, il vous faut davantage de données. Parfois il vous faut intégrer un service tiers très populaire. Et parfois il vous faut monter en charge à des niveaux inattendus. Les microservices donnent au business la flexibilité de gérer rapidement ce type d’événements.»

Une nouvelle manière de gérer les applications

Pionnière en la matière la Mobilière a opté pour cette approche cloud native dès 2013 pour moderniser ses applications du domaine non-vie, la plus grosse activité de l’assureur. «Nous ne voulions pas nous contenter de moderniser la façade, mais toute la pile applicative», explique Andreas Grütter, Chef architecte de la Mobilière. L’entreprise a ainsi développé quelque 400 microservices, qui sont orchestrés depuis 2016 au sein d’un cluster Kubernetes sur site. « Nous avions choisi cette technologie à l'époque parce qu'elle avait le potentiel de devenir la technologie standard pour l'orchestration de containers. Heureusement, c’est ce qui s'est produit», commente le responsable. Des équipes DevOps d’une dizaine de personnes, intégrant des profils tant techniques que business, se chargent de développer, d’intégrer et de déployer les services en continu. «Nous avons gagné en flexibilité, nous sommes aussi plus libres et plus rapides dans l’introduction de nouvelles technologies, ce qui améliore notre capacité d’innovation», se réjouit Andreas Grütter.

Outre les fonctionnalités intégrées dans Kubernetes, la Mobilière a développé ses propres outils d’automatisation, de monitoring et de testing pour le nouvel environnement. «Les équipes ont besoin de transparence sur comment et par qui leurs microservices sont employés, et sur leur rôle dans la logique business. Les tests consumer-driven sont un élément central garantissant le bon fonctionnement d’un microservice du point de vue des autres services y faisant appel», explique l’architecte. Selon une étude réalisée par la société spécialisée OverOps, ce recours à des outils d’automatisation s’avère indispensable pour gérer les environnements cloud native et une grande part des équipes DevOps emploient de telles solutions pour les tests, l’analyse des logs et événements et le monitoring de l’infrastructure.

Défis techniques et nouvelles responsabilités

Outre le besoin d’automatisation et d’outillage, les environnements cloud native présentent certains nouveaux défis techniques. «Il y a davantage de communication réseau à l’intérieur du cluster, ce qui nécessite une certaine maturité dans la gestion de l’infrastructure», explique notamment Andreas Grütter de la Mobilière. Selon le chef architecte, la résolution d’incidents (debugging) est aussi un défi, d’où l’importance de pouvoir monitorer les microservices techniques qui participent à un service business rencontrant un problème. «Les applications sont plus complexes et intégrées, renchérit Séverin Voisin d’ELCA. Il faut des équipes qui se responsabilisent et qui connaissent bien leur produit.».

Les solutions cloud native augmentent aussi le travail des développeurs qui, s’ils dépendent moins de l’IT, doivent en revanche davantage spécifier et gérer les besoins de leurs applications. «Avant, la mise à jour d’un middleware ou le déploiement d’un patch OS étaient essentiellement du ressort de l’IT. Avec les containers, la responsabilité du suivi des versions passe au DevOps, ce qui fait sens puisque c’est lui qui sait quel en sera l’impact, mais demande une gouvernance et un contrôle adéquat», avance Séverin Voisin.

Un changement de culture qui n’est toutefois pas toujours aisé, comme l’explique le responsable IT d’une chaîne de restaurants américaine, cité dans une étude de Capgemini: «Au fur et à mesure que vous évoluez vers une architecture cloud native, les développeurs applicatifs doivent davantage tenir compte de la qualité de service au sein de l'application en termes de performance, d'évolutivité et de transparence de la localisation. Ces caractéristiques ne sont pas nécessairement inhérentes à l'état d'esprit des développeurs.»

La voie tracée vers le cloud

Les atouts d’agilité et d’évolutivité ne sont pas les seuls à expliquer l’intérêt actuel pour les pratiques, architectures et technologies cloud native. Ces dernières sont aussi un chemin tout tracé pour déployer les applications directement ou ultérieurement dans le cloud – en général un PaaS - avec des possibilités que n’offre pas la simple migration d’une application existante dans un IaaS (lift & shift).

Ainsi, selon Gartner, les entreprises cherchent désormais à se défaire de leurs applications basées sur des VM hébergées dans le cloud. Soit en les remplaçant par des alternatives SaaS, soit en les réécrivant en mode cloud native. «La principale raison de ce changement réside dans les coûts à long terme associés à des applications qui ne sont pas optimisées pour le cloud. Les autres bénéfices en matière de performance, de montée (ou descente) en charge et de disponibilité sont autant d’arguments supplémentaires pour une réécriture», explique le cabinet de conseil.

La voie vers le PaaS est notamment facilitée par le fait que les fournisseurs leaders proposent tous des offres de Container et autre Kubernetes en mode as-a-Service, de plus en plus populaires. «Avec notre architecture, le chemin pour le cloud est prêt», explique ainsi Andreas Grütter de la Mobilière, qui teste actuellement le service PaaS pour Kubernetes dans Azure.

Par ailleurs, les applications cloud native opérant dans un PaaS peuvent intégrer les multiples services – notamment serverless - disponibles sur ces plateformes. Un atout en matière d’innovation qui devrait booster les dépenses dans le cloud, prédit Forrester : «La plupart des applications d’entreprise seront améliorées grâce à l'incroyable éventail de technologies émergentes mises au point dans le nuage, depuis les nouvelles bases de données jusqu'aux dispositifs informatiques de pointe, en passant par l'Internet des objets, l'apprentissage automatique et l'intelligence artificielle».

Responsable des services et opérations SaaS d’ELCA, Séverin Voisin tempère: «Les applications containerisées sont des candidates pour le cloud, mais le cloud pose d’autres questions, notamment en termes de localisation ou encore de lock-in, dès lors que l’on commence à exploiter des services PaaS spécifiques à tel ou tel fournisseur».

Des atouts business

Cloud ou pas cloud, les applications cloud native vont sans doute prospérer et modifier durablement la manière dont les entreprises développent et opèrent les applications au cœur de leur activité et de leur compétitivité. Selon l’étude réalisée par Capgemini, un tiers des applications pourraient être conçues dans ce mode en 2020. Les organisations les plus avancées en la matière, enregistrent des gains en matière d’agilité, d’expérience client et de coûts de nature à changer la relation de l’informatique avec le business, comme l’explique le responsable de l’architecture d’Altria cité dans l’étude : «La démarche cloud native a changé la physionomie de notre relation avec l'entreprise. Nous sommes maintenant impliqués dans toutes les conversations depuis l'idée jusqu'à l'étape suivante. Quand l'entreprise pense à une opportunité, nous sommes là au début.»

Webcode
DPF8_129074