5 conseils pour ré-architecturer vos applications pour le cloud

Il est difficile de profiter pleinement les avantages du cloud si vous migrez simplement une application en l’état. Réorganisez d’abord votre application en suivant ces 5 conseils.

S’il est certes techniquement possible de migrer presque n'importe quelle application vers le cloud public, ce n'est pourtant pas toujours un choix judicieux ou rentable. Pour que cela en vaille la peine, il est nécessaire de concevoir de nouvelles applications, ou de  refondre l’architecture des applications existantes, afin de tirer parti de l’ensemble des spécificités du cloud.

Pour ceux qui ont besoin de réorganiser leurs applications existantes, voici cinq éléments à garder à l'esprit.

  1. Équilibrer les composants applicatifs et le workflow

Pour optimiser les applications cloud, il est généralement préférable de les décomposer en plusieurs composants. Vous devez héberger chaque composant indépendamment, ce qui augmente les coûts. Il faut également coupler des composants applicatifs  à des workflows avec des connexions réseau, ce qui peut également coûter plus cher. Avant de commencer, listez les avantages et évaluez si le coût en vaut la peine.

Si c'est le cas, l'étape suivante consiste à déterminer si certaines fonctions de l'application sont utilisées et dimensionnées ensemble ou séparément. Si elles fonctionnent de concert, il est peu probable que leur transformation en composants applicatifs distincts augmente la résilience ou l'évolutivité. Il est donc préférable de les déployer dans le cloud comme un seul composant.

Si en revanche leurs utilisations différent, demandez-vous si vous pouvez recomposer des applications à partir de ces fonctions et si les différences en matière de dimensionnement et de résilience sont significatives.

En général, un nombre réduit de composants - conforme aux bonnes pratiques de mise à l'échelle et de résilience - est la réponse la moins chère et la meilleure.

  1. La scalabilité et la résilience du cloud ne sont pas automatiques

La capacité de migrer (burst) une workload du datacenter vers le cloud, d’améliorer les performances en ajoutant de nouvelles instances et de remplacer les composants défaillants sont autant d'avantages connus du cloud. Mais cela nécessite une conception minutieuse de l'application. La plupart des applications sont stateful, ce qui signifie qu'elles traitent des demandes qui contiennent plusieurs étapes. Si vous faites tourner une nouvelle il se peut qu’elle ne sache pas de quelle étape il s’agit. Cela peut provoquer des défaillances ou donner des résultats incorrects.

Contrôler cet état est l'une des parties les plus difficiles lorsqu’on réarchitecture des applications pour le cloud. Assurez-vous de gérer les transactions à partir de l'interface graphique de utilisateur. Cela vous donne un contrôle total sur la scalabilité et la résilience. Si cela ne fonctionne pas -- à cause de la nature de l'application -- sauvegardez l'état dans une base de données et partagez-le lorsque vous avez besoin de répliquer ou de remplacer des composants de l'application. Vous pouvez également évaluer les micro-services et les fonctionnalités Serverless de votre fournisseur de cloud pour vous aider - mais attention au coût.

  1. Préparez-vous à l'hybride et au multi-cloud

En raison de la conformité et des politiques de gouvernance, la plupart des applications cloud doivent se connecter au datacenter de l’entreprise pour mettre à jour les bases de données qui ne peuvent pas migrer vers le cloud. Pour cela, de nombreux utilisateurs du cloud public mettent en place une stratégie multi-cloud pour réduire les risques d'indisponibilité. Il est toutefois nécessaire de concevoir une application pour l'une ou l'autre de ces architectures, hybrides ou multi-cloud, ou potentiellement faire face à des problèmes de coût, de performance et de fiabilité.

Les applications hybrides ou multi-cloud accentuent les problèmes de workflow et de scalabilité, car presque tous les fournisseurs de cloud facturent le trafic entrant et sortant au sein de leur cloud. Cela signifie que si vous avez besoin de dimensionnement ou de remplacer des composants applicatifs qui exploitent plusieurs fournisseurs, il vous faudra engager de nouveaux coûts. Évaluez donc les capacités de votre fournisseur, afin de contrôler au mieux le coût et la performance globale des applications.

Normalement, les applications cloud fonctionnent mieux si leur front-end est dans le cloud et si le traitement des transactions et les mises à jour de la base de données se trouvent dans le datacenter. Cela peut vous servir de point de repère pour débuter la conception de votre application. N’en sortez que si nécessaire.

  1. Utiliser les services Web des fournisseurs de cloud de manière réfléchie

Les fournisseurs de cloud proposent des douzaines de services, dont certains peuvent radicalement simplifier et refaçonner les applications qui migrent vers le cloud. D'un autre côté, ces services peuvent également augmenter les coûts - voire même avoir des coûts cachés liés à la migration des workflows et des connexions réseau.

Lorsque vous évaluez ces services, il convient de catégoriser votre application. En général, les applications cloud sont soit des applications front qui prennent en charge les mécanismes proposés aux utilisateurs, soit des applications liées à des événements dont la source de données vient de l’IoT par exemple. Les fournisseurs de cloud ont des services pour gérer ces deux modèles, mais vous pouvez aussi les comparer à des outils middleware pour évaluer les possibilités de développement à façon. Dans de nombreux cas, le coût unique de ces outils middleware sera inférieur aux frais permanents des services cloud.

  1. Rechercher la cohérence dans la plateforme de développement

Lorsque vous réarchitecturez des applications pour le cloud, la version de l’OS ou des outils   middleware que vous sélectionnez influencera le comportement des applications - et influencera certainement vos pratiques de développement. Si vous ne sélectionnez pas les versions, il peut être difficile de maintenir des niveaux de version compatibles, ce qui peut entraîner des défaillances.

Le contrôle de version pour les composants partagés est particulièrement délicat. Si vous décomposez une application et prévoyez de réutiliser ces composants dans plusieurs applications, les  versions des outils middleware seront dans ce cas clé. Cela impliquera d’avoir à mettre à jour davantage de composants que dans un environnement plus traditionnel.

Dernière mise à jour de cet article : avril 2018

Soyez le premier à commenter

M'envoyer une notification dès qu'un autre membre commente.

Merci de créer un identifiant pour pouvoir poster votre commentaire.

- ANNONCES GOOGLE

Close