Développement cloud-natif
Qu'est-ce qu'une infrastructure immuable ?
Qu'est-ce qu'une infrastructure immuable dans le cloud ?
Une infrastructure immuable consiste à créer un serveur sans le modifier directement. Dans le Well-Architected Framework d'AWS (REL08-BP04), ce modèle n'autorise aucune mise à jour, correctif de sécurité ou modification de configuration sur les charges de travail en production. Vous devez remplacer l'ancienne version par une nouvelle si vous devez effectuer des ajustements, ce qui devrait éliminer la « dérive de configuration » (c'est-à-dire les incohérences qui s'immiscent dans les systèmes au fil du temps).
Après la mise en œuvre d'une infrastructure immuable, votre environnement cloud doit être prévisible et fiable.
Quelle est la différence entre une infrastructure mutable et une infrastructure immuable ?
Les différences entre les deux concepts sont les suivantes :
- Infrastructure mutable: Mettez à jour et modifiez vos serveurs existants plutôt que d'en créer de nouveaux. Il s'agit de l'approche traditionnelle dans le SaaS.
- Infrastructure immuable: Remplacez les serveurs par des serveurs plus récents lorsque vous devez apporter des modifications. Il s'agit d'une approche cloud-native et plus récente parmi les applications SaaS.
| Aspect | Infrastructure mutable | Infrastructure immuable |
|---|---|---|
| Caractéristiques de base | ||
| Approche | Modifier directement les serveurs existants | Remplacer des serveurs entiers par de nouvelles versions |
| Style d'implémentation | Approche SaaS traditionnelle | Approche cloud native moderne |
| Aspects opérationnels | ||
| Gestion de la configuration | Mises à jour et modifications manuelles | Déploiement automatisé de nouvelles instances |
| Contrôle de version | Difficile de suivre les changements | Historique complet des versions disponible |
| évolutivité | Processus de mise à l'échelle complexe | Mise à l'échelle facile avec des instances identiques |
| Gestion des risques | ||
| Dérive de configuration | Sujet aux incohérences | Réduit la dérive de configuration |
| Capacité de retour en arrière | Complexe et risqué | Retour simple aux versions précédentes |
| Risque de déploiement | Risque accru de problèmes de déploiement | Problèmes de déploiement réduits |
Quels sont les avantages de l'utilisation d'une infrastructure immuable ?
Les entreprises utilisent des infrastructures immuables pour les raisons suivantes :
- Déploiement et configuration: Ils doivent être cohérents et la dérive doit être évitée pour garantir la stabilité.
- Atténuation des risques: Minimisez l'impact des défis imprévus en ayant la possibilité de revenir à des versions antérieures et de réduire la probabilité de rencontrer des problèmes de déploiement.
- Considérations d'évolutivité: Explorez la mise à l'échelle de votre application en ajoutant de nouvelles instances de serveur identiques.
- Utiliser l'automatisation : Identifiez les frameworks qui peuvent être automatisés pour limiter les temps de déploiement.
Quelles sont les meilleures pratiques pour une infrastructure immuable ?
Les pratiques à mettre en œuvre comprennent :
- automatisation: Utilisez l'infrastructure en tant que code (IaC) et des outils similaires pour automatiser l'approvisionnement/la gestion de votre infrastructure.
- Contrôle de version de tout: Versionnez tous vos aspects pour les restaurations/la traçabilité, y compris les dépendances et les configurations.
- Activer robuste Journalisation et surveillance: Vous pouvez identifier les problèmes potentiels pendant ou après de nouveaux déploiements.
- Commencez petit, itérez: Utilisez une infrastructure immuable sur des éléments non essentiels avant de l'utiliser sur d'autres lorsque vous savez quoi faire.
- Déployez en parallèle: Déployez les modifications sous forme de nouvelles ressources en parallèle avec les anciennes, puis transférez d'abord une petite partie des utilisateurs vers la nouvelle version (canary) ou basculez le trafic vers une flotte parallèle complète (blue/green) (AWS REL08-BP04).
: Comment l'infrastructure immuable s'intègre-t-elle dans le paysage cloud-natif ?
Une infrastructure immuable est utilisée avec DevOps, Kubernetes et d'autres technologies/équipes.
- Kubernetes : simplification du déploiement et gestion des applications conteneurisées, permettant l'adoption d'une infrastructure immuable. La conteneurisation cloud-native correspond au modèle : les modifications persistantes apportées à un conteneur impliquent une nouvelle version ou une recréation à partir de son image (CNCF).
- DevOps : aligner l'intégration continue et le déploiement continu (CI/CD) avec des pratiques d'infrastructure immuable pour la livraison de logiciels.
L'infrastructure immuable nécessite de changer d'outils et d'état d'esprit, mais vous pouvez obtenir fiabilité/évolutivité.
Utilisez une infrastructure immuable dans votre environnement cloud. Déployez des serveurs nouveaux et mis à jour au lieu de modifier les serveurs existants si vous devez effectuer des ajustements.
Conclusion
Vous devriez sérieusement envisager l'infrastructure immuable dans votre développement cloud-native. Son adoption peut améliorer la fiabilité et simplifier la mise à l'échelle avec des instances identiques. Bien que l'adaptation à ce nouvel état d'esprit et à ces nouveaux outils puisse prendre du temps, elle peut mener à des résultats positifs à long terme – à condition d'être prêt à s'adapter et à commencer en douceur.