Contrairement aux applications migrées vers le cloud, les applications nativement conçues pour celui-ci sont capables d’exploiter tous les avantages d’une telle architecture. Pour guider les entreprises qui souhaitent bâtir de telles applications, Red Hat a réalisé un livre blanc à visée pratique.

Quand une entreprise souhaite développer une application native pour le cloud, ce qui compte n’est pas où l’application va être déployée, mais bien comment celle-ci va être conçue, déployée et gérée. En effet, comme le rappelle Reda Hat en introduction de son livre blanc, une application native pour le cloud a pour objectif de tirer partie de tous les avantages de ces architectures, aussi bien en termes de performance que de flexibilité, qualité et facilité de déploiement.

Les quatre piliers des applications natives pour le cloud

4 piliers applis cloud native

Pour construire de telles applications, il faut respecter quatre grands fondamentaux :

  1. Une architecture orientée services, reposant sur des services faiblement couplés afin d’être modulaire ;
  2. L’usage d’interfaces applicatives de programmation (APIs) légères et non liées à une technologie en particulier, afin de réduire la complexité ;
  3. La mise en place de conteneurs, pour faciliter l’exploitation et la portabilité vers différents environnements ;
  4. La mise en place de méthodes agiles alignées sur les principes de DevOps, notamment l’intégration continue.

Un parcours progressif pour aller vers le développement d’applications cloud natives

Une fois ces bases posées, l’organisation doit les mettre en œuvre à travers une démarche adaptée. Pour aborder cette transition, Red Hat propose un cheminement en 8 grandes étapes :

1Faire évoluer la culture et les pratiques internes pour aller vers DevOps

L’enjeu n’et pas seulement de mettre en place des outils, mais aussi de convaincre les collaborateurs d’adopter une approche plus intégrée et collaborative.

2Commencer par accélérer les applications monolithiques existantes

Cette approche connue sous le terme de « fast monolith » consiste à refondre une application monolithique pour la rendre plus modulaire. Elle pourra ainsi bénéficier de meilleures performances en passant sur le cloud, tandis que les équipes se familiariseront avec les grands principes du cloud.

3Utiliser des services applicatifs dans le cloud pour accélérer le développement.

Inutile de réinventer la roue alors qu’il existe de nombreux services prêts à l’emploi dans le cloud, que ce soit en SaaS ou sur des PaaS/IaaS : cache, moteur de règles ou de workflow, connecteurs, API de mobilité, virtualisation de données, etc.

4Choisir des outils adaptés à chaque tâche

La plateforme de cloud doit offrir les outils et frameworks adaptés à l’approche choisie : conception basée sur des domaines ou sur des tests, mini-services ou micro-services, fast monolith…

5Fournir une infrastructure à la demande et en self-service

Les développeurs doivent pouvoir accéder à l’infrastructure dont ils ont besoin au moment où ils en ont besoin, sans devoir attendre des semaines qu’elle soit provisionnée.

6Automatiser pour accélérer la livraison des applications

Des outils d’automatisation permettent de déployer des processus répétables, afin de décharger les collaborateurs de tâches récurrentes et d’aller plus vite.

7Mettre en œuvre la livraison continue et des techniques de déploiement avancées

Le but est de rapprocher développeurs, production et assurance qualité, comme prévu par DevOps. La mise en place d’outils d’intégration continue est une première étape pour aller vers la livraison continue. Différentes techniques de déploiement avancées permettent ensuite de réduire les risques liés aux livraisons en construisant un cadre adapté pour l’expérimentation.

8Évoluer vers des architectures plus modulaires

Il peut s’agit d’architectures basées sur les micro-services, où les applications sont découpées en composants les plus petits possibles, afin d’avoir une granularité fine et des processus partagés par plusieurs applications. Autre possibilité, concevoir d’abord une application monolithique (MonolithFirst), puis une fois le périmètre bien compris, identifier les composants qui font de bons candidats à des micro-services. Dernière alternative, les mini-services, des collections de services répartis par domaine, généralement regroupés par serveur.

Source : Red Hat, «  The path to cloud-native applications, 8 steps to guide your journey »