Peu importe le fournisseur de services en nuage que vous utilisez si la charge de travail est conçue pour être portable. Lors de la conception de la portabilité et de la normalisation, commencez par identifier les points de verrouillage des fournisseurs ou les endroits où un fournisseur de services en nuage pourrait vous empêcher de passer à un autre fournisseur.
Par exemple, concevoir autour de choses comme Kubernetes n'est pas toujours suffisant. Pensez aux autres systèmes avec lesquels le cluster Kubernetes pourrait interagir ou avec lesquels il devrait interagir. Évaluez ces besoins et concevez votre architecture à l'aide de solutions open source et de primitives d'infrastructure cloud, que vous pouvez trouver chez n'importe quel fournisseur de cloud.
Privilégiez les API standard pour assurer la compatibilité entre l'application et les autres systèmes. Commencez par les API RESTful pour les composants qui utilisent une communication synchrone (requête/réponse). Leur popularité vient du fait qu'elles utilisent HTTP, le protocole le plus courant et le plus largement supporté. Bien que d'autres protocoles soient apparus et continueront d'apparaître pour des choses telles que le streaming vidéo, ceux qui se sont imposés sont basés sur HTTP.
Les conceptions modulaires avec microservices ou conteneurs décomposent l'application en composants plus petits et plus faciles à gérer, ce qui facilite l'ajout ou la suppression de fonctionnalités en fonction des besoins et rend l'application plus flexible et évolutive. L'approche "cloud-native" se distingue par un processus efficace de mise à jour et de remplacement de ces composants sans affecter l'ensemble de la charge de travail.
Une fois que l'on dispose d'une architecture portable, comment faire en sorte qu'elle ne soit pas aussi écrasante du point de vue de la gestion ? L'automatisation simplifie et rationalise le déploiement et la gestion de l'application. Utilisez des pipelines d'intégration continue/déploiement continu (CI/CD) et des outils d'infrastructure en tant que code (IaC).
Une approche déclarative du déploiement vous permet de codifier chaque partie de votre charge de travail : l'application, le logiciel, les configurations du système et tout ce qui s'exécute dans les environnements de développement, d'essai et de production. Ainsi, vous pouvez rapidement passer à un nouveau nuage, à un basculement ou à un autre fournisseur de nuage. Avec un environnement entièrement codifié et versionné, vous disposez d'une documentation complète sur la manière dont tout est configuré et d'un historique transparent de tous les changements et de toutes les personnes qui les ont effectués.
Et, bien sûr, il ne faut pas oublier la sécurité. Suivre cette voie vers la portabilité vous permet de développer une approche plus standard de la sécurité, en éliminant une mentalité dangereuse du type "mettez-le et oubliez-le". J'ai souvent vu cela. Vous déployez une charge de travail dans un nuage privé virtuel (VPC) et supposez qu'elle est sécurisée.
Dans le cadre de la même approche "Everything-as-Code", nous mettons en œuvre une architecture portable et normalisée ; certains aspects de votre posture de sécurité peuvent également être normalisés et codifiés. Outre les pratiques DevSecOps qui automatisent les boucles de rétroaction, les tests de vulnérabilité, etc., pensez aux politiques de contrôle d'accès et aux modèles de configuration renforcés, qui ne dépendent pas de la plateforme sous-jacente et peuvent donc sécuriser vos ressources de manière cohérente dans tous les environnements. Cette approche de la sécurité peut s'avérer extrêmement puissante, en particulier lorsque vous pouvez prendre cette application et la déposer chez n'importe quel fournisseur de services en nuage. La possibilité de prendre votre charge de travail et de la déplacer est une stratégie défensive solide pour la reprise après sinistre.
Avantages d'une architecture portable
Une architecture en nuage portable offre flexibilité, optimisation des coûts, résilience, évolutivité et pratiques de déploiement améliorées. Elle vous permet de choisir les meilleures solutions en nuage pour vos besoins, d'éviter le verrouillage des fournisseurs et de vous adapter rapidement à l'évolution des exigences ou des conditions du marché. Vous pouvez également :
- Augmenter la disponibilité : Une architecture portable garantit que les applications peuvent être facilement déployées sur plusieurs plateformes en nuage, réduisant ainsi le risque de temps d'arrêt dû à des problèmes spécifiques à la plateforme.
- Améliorer l'agilité : Une architecture cloud-native permet aux développeurs d'itérer et de déployer rapidement de nouvelles caractéristiques et fonctionnalités, réduisant ainsi les délais de mise sur le marché et améliorant la compétitivité.
- Améliorer la sécurité: Une architecture portable permet de sécuriser les applications et les composants de l'infrastructure de manière plus cohérente, avec des fonctions de sécurité telles que le cryptage et la gestion des identités intégrées dans l'architecture au lieu de dépendre des fonctions de la plateforme.
- Augmenter la résilience : Une architecture portable garantit que les applications peuvent survivre aux défaillances matérielles et logicielles sans interruption ni perte de données.
- Une gestion plus facile : Une architecture portable permet de gérer les applications plus efficacement, grâce à des outils de surveillance, d'automatisation et d'orchestration qui fonctionnent sur plusieurs plateformes en nuage.
- Accroître l'innovation : Une architecture portable permet aux organisations d'utiliser des technologies nouvelles et émergentes, telles que l'IA et l'apprentissage automatique, pour créer de nouvelles applications et de nouveaux services innovants.
Commentaires