Développement d’applications cloud-native : rupture ou transition ?

CloudDéveloppeursProjets
Cloud hybride

Selon les prévisions de Forrester, le marché du cloud public devrait approcher 300 milliards de dollars en 2020. Dans ce contexte, il est naturel que les entreprises souhaitent tirer profit des avantages de ce modèle en développant des applications cloud-natives.

Nous assistons ainsi à l’émergence d’applications extrêmement agiles pouvant être développées et déployées à un rythme plus rapide que leurs pendants traditionnels, et ce, grâce au cloud.

Le développement cloud natif va de pair avec DevOps

Le développement d’applications cloud-native permet aux entreprises de contourner le défi que représente la modernisation de leur pile technologique. Cette technologie leur permet d’opérer une transition itérative de leurs anciens services vers des plateformes conteneurisées, reposant sur des services, des API et le DevOps.

En parallèle, le développement cloud natif permet de répondre aux nouveaux besoins des utilisateurs avec rapidité et agilité grâce à des déploiements plus fréquents qui réduisent considérablement le délai de transition d’une technologie à une autre. Cette approche implique néanmoins l’adoption de nombreuses nouvelles pratiques, l’une de plus difficiles à déployer étant la culture DevOps.

Le DevOps est une approche articulée autour d’un ensemble de pratiques et de processus qui unifient le développement et les opérations. L’évolution de la culture et des pratiques du DevOps peut être difficile pour une entreprise. Malgré le temps et les efforts nécessaires à son adoption, les décideurs informatiques savent que les avantages à long terme de cette transition dépassent largement les difficultés initiales rencontrées. Ce changement de paradigme prendra du temps, mais à terme, les délais de développement seront plus courts et les applications plus agiles.

Une architecture modulaire pour gagner en évolutivité

L’adoption d’une architecture modulaire est un élément clef du développement cloud-natif. Il existe différentes voies conduisant à une architecture plus modulaire. L’une d’entre elles consiste à adopter une architecture de type microservices au sein de laquelle les applications sont décomposées en modules indépendants.

Toutefois, ces architectures sont difficiles à déployer et à entretenir. La plupart des exemples de réussite en matière de microservices se matérialisent par un monolithe décomposé en une galaxie de microservices. C’est pourquoi bon nombre d’experts recommandent une approche des microservices appelée “monolith first” consistant à bâtir un monolithe avant de le décomposer en microservices.

Les applications monolithiques existantes ne peuvent pas être simplement mises au rebut, car beaucoup d’entre elles ont été utilisées avec efficacité pendant de nombreuses années. Plutôt que forcer l’adhésion à un standard, l’accent devrait être mis sur l’application de principes cloud-natifs dans ces applications, avec par exemple la mise en oeuvre d’API.

Automatisation et infrastructure self service

Les tâches informatiques effectuées manuellement sont une perte de temps pour les équipes en charge du développement et des opérations. Leur automatisation peut libérer du temps et des ressources au sein des équipes, ce qui signifie que les logiciels sont développés et déployés beaucoup plus rapidement. Par conséquent, l’IT management, ainsi que l’adoption de l’automatisation et des outils qui créent des procédures pour remplacer les processus manuels sont un élément essentiel d’une stratégie axée sur le cloud.

Cette approche s’applique aussi à votre infrastructure.L’infrastructure “as a service” (IAAS) et à la demande, aide les équipes à créer rapidement des environnements cohérents, ce qui permet aux développeurs de se concentrer sur la création d’applications sans le temps habituellement consacré à la préparation de l’infrastructure pour les projets.

Les conteneurs et la technologie d’orchestration des conteneurs permettent de simplifier l’accès à l’infrastructure sous-jacente d’une application et fournissent une gestion du cycle de vie des applications dans différents environnements, qu’il s’agisse de clouds privés, de clouds publics ou de centres de données.

La transition vers une approche du développement cloud-native ne s’effectue pas du jour au lendemain. À certaines exceptions près, comme les startups, la plupart des entreprises ont mis en place des environnements informatiques complexes faisant appel à des applications sur site, en parallèle de plateformes et services dans le cloud. Par conséquent, pour une majorité d’entreprises, il n’est pas réaliste d’unifier l’ensemble de leurs systèmes et plateformes au sein d’une architecture unique de manière simultanée.

Le secret d’une transition réussie est de procéder par étapes. Concrètement, commencer par la migration des monolithes et des applications dans le cloud (sur site ou hors site). Ensuite, conteneuriser les workloads et de mettre en place des plateformes d’orchestration de containers. Et enfin analyser ces monolithes et évaluer lesquels peuvent être décomposés en micro-services ou en appels de fonctions serverless.

Au fur et à mesure que des services, des monolithes ou des applications tierces sont exécutés dans le cloud, l’entreprise pourra tirer profit des bénéfices offerts par le cloud comme l’intégration, l’automatisation des processus métier et la gestion des API.

Plus les entreprises et leurs équipes se familiariseront avec les changements qu’impliquent le développement cloud natif, plus elles seront en mesure d’ajuster leurs processus pour améliorer l’efficacité des développeurs et des applications.


Auteur
En savoir plus 
EMEA Senior Solutions Architect
Red Hat
Erica Langhi est EMEA Senior Solutions Architect chez Red Hat
En savoir plus 

Livres blancs A la Une