Alors que la migration de l’infrastructure IT est inévitable pour beaucoup d’entreprises, ce passage peut comporter des dangers. Le passage aux applications "natives" n'est cependant pas toujours facile. La migration est une opération risquée qui peut perturber les services et entraîner des coûts imprévus. La maîtrise de la migration vers le cloud requiert des techniques avancées qui s'intègrent aux méthodes existantes d'intégration et de livraison continues (CI/CD).

La livraison progressive et les " feature flags " sont des techniques qui évoluent rapidement et qui permettent de garder les projets de migration bien ciblés tout en maintenant une dynamique.  

Les défis de la migration des infrastructures

En migrant leur infrastructure vers le cloud, les entreprises du secteur digital peuvent bénéficier de certains avantages notables. Les architectures cloud évolutives permettent aux applications d'augmenter rapidement les volumes de transactions tout en maintenant les performances. Les architectures cloud offrent également plus de flexibilité et d'agilité dans le cadre d'une discipline DevOps qui favorise un déploiement rapide.

Toutefois, ces atouts ne sont pas sans risques. La migration vers une nouvelle infrastructure entraine des temps d'arrêt si le code et l'infrastructure ne sont pas compatibles. L'intégrité des données pourrait être compromise si les transactions échouent après le grand basculement, créant un désordre qui nécessite une récupération complexe et affecte les opérations à plus long terme.

Même si l'échec de la migration n'est pas cataclysmique, les problèmes de performance ou de fonctionnalité peuvent créer leurs propres problèmes. Des utilisateurs désorientés risquent d'engorger le service d'assistance, créant des goulots d'étranglement et des problèmes d'acceptation par les utilisateurs.  

Une nouvelle approche de la transformation du cloud

Les développeurs procèdent souvent à des tests de performance et de fiabilité avant le déploiement. Toutefois, les environnements de test et d'essai peuvent ne pas refléter fidèlement les plateformes de production.

Les migrations de code monolithique typiques impliquent de faire fonctionner côte à côte l'ancien et le nouveau système pendant un certain temps, jusqu'à ce que l'équipe responsable du projet soit certaine que le nouveau système fonctionne correctement. Ensuite, elle désactive l'ancien système. C'est une perspective inquiétante lorsqu'on manipule des bases de code de plusieurs millions de lignes, surtout si la migration de l'infrastructure vers le cloud modifie son architecture sous-jacente.

La livraison progressive adopte une nouvelle approche du déploiement du code en le testant en production en toute sécurité. Cette technique comprend toujours les tests traditionnels, mais elle remplace les déploiements monolithiques de code à grande échelle par des déploiements progressifs de fonctionnalités. Elle permet de tester votre code par rapport à des données de production réelles, ce qui se traduit par un code plus fiable aux performances éprouvées sur une infrastructure cloud.

La livraison progressive consiste à tester les nouvelles fonctionnalités en production tout en utilisant simultanément ces fonctionnalités sur les systèmes existants. L'équipe de développement ne passe définitivement à une fonctionnalité individuelle que lorsque celle-ci a fait ses preuves dans l'environnement de production.  

Comment les feature flags peuvent aider à limiter les risques et à ajouter de la valeur ?

La gestion de cette migration progressive de fonctionnalités distinctes vers une nouvelle infrastructure implique l'adaptation d'un élément sur lequel vous avez un contrôle total : votre code. Vous pouvez insérer dans votre code des commutateurs de contrôle qui définissent si ce code s'exécute, où et pour qui. C'est là que la gestion des fonctionnalités et précisément les feature flags interviennent.

Les feature flags sont des variables dans votre code qui permettent de contrôler les fonctions du logiciel à tous les niveaux, de la lecture d'une base de données à un élément de formule dans un navigateur. En activant ou désactivant ces variables, les développeurs peuvent modifier le comportement de l'application en production sans avoir à la reconstruire et à la redéployer.

Les développeurs peuvent rendre les feature flags aussi détaillés qu'ils le souhaitent. Ils peuvent ainsi modifier les fonctions à un niveau très précis, y compris celles qui ne sont pas destinées à l'utilisateur. Leur flexibilité rapide et précise en fait des atouts précieux lors de la migration d'une infrastructure vers le cloud.

La livraison progressive et les features flags offrent une alternative moderne aux méthodes traditionnelles de migration des infrastructures du cloud. Cette approche moderne, moins risquée, plus orientée vers l'utilisateur donne plus de pouvoir aux développeurs, tout en permettant une livraison flexible des nouvelles fonctionnalités. Grâce à la livraison progressive et aux features flags, les entreprises peuvent se sentir plus confiantes dans leur démarche de transformation vers le cloud.

Par Hope Lynch, Senior Director, Platform chez CloudBees