Automatisation de plateforme et DevOps pour AKS
En tant que construction native Cloud, Kubernetes requiert une approche native Cloud du déploiement et des opérations. Azure et Kubernetes sont des plateformes ouvertes et extensibles avec des API riches et bien conçues, offrant ainsi une opportunité et une capacité d’automatisation complètes. Planifiez une approche DevOps et hautement automatisée en vous appuyant sur l’automatisation et les meilleures pratiques DevOps générales.
Remarques relatives à la conception
Voici quelques considérations de conception pour l’automatisation de la plateforme AKS et le DevOps :
Tenez compte des limitations de service Azure et de votre environnement d’intégration continue et livraison continue (CI/CD) lorsque vous choisissez votre approche d’ingénierie et d’automatisation. Pour un autre exemple, consultez Limitations de l’utilisation de GitHub.
Lors de la sécurisation et de la protection de l’accès aux environnements de développement, de test, Q&A et de production, envisagez les options de sécurité du point de vue CI/CD. Mappez le contrôle d’accès correctement car les déploiements s’effectuent automatiquement.
Envisagez d’utiliser des préfixes et des suffixes avec des conventions bien définies pour identifier de manière unique chaque ressource déployée. Ces conventions d’attribution de noms évitent les conflits dans le déploiement de solutions les unes à côté des autres et améliorent l’agilité et le débit globaux de l’équipe.
Inventoriez les flux de travail à prendre en charge lors de l’ingénierie, de la mise à jour et du déploiement de votre solution dans les régimes normaux et de plan de récupération d'urgence (Disaster Recovery Plan, DRP). Pensez à mapper des pipelines en fonction de ces workflows, en maximisant la maîtrise des outils et concepts ainsi que la productivité.
Voici quelques exemples de scénarios et de pipelines :
- Déploiement, mise à jour corrective et mise à niveau de clusters
- Déploiement et mise à niveau d’applications
- Déploiement et gestion des modules complémentaires
- Basculement pour la récupération d’urgence
- Déploiement Blue-Green
- Gestion des environnements Canary
Envisagez d’utiliser un maillage de service pour ajouter des fonctionnalités de sécurité, de chiffrement et de journalisation à vos charges de travail.
Envisagez de déployer d’autres ressources telles que des abonnements, des balises et des étiquettes pour prendre en charge votre expérience DevOps en effectuant le suivi et le traçage des déploiements et des artefacts associés.
Tenez compte de l’impact du changement de paradigme des bovins et des animaux familiers. Attendez-vous à ce que les pods et autres aspects de Kubernetes soient éphémères, et alignez votre infrastructure d’automatisation et de pipeline en conséquence. Ne vous fiez pas aux adresses IP ou autres ressources à corriger ou à conserver.
Recommandations de conception
Voici quelques recommandations de conception pour l’automatisation de la plateforme AKS et le DevOps :
Appuyez-vous sur des pipelines ou des actions pour :
- Optimiser les pratiques appliquées au sein de l’équipe.
- Retirer l’essentiel de la charge liée à la réinvention de la roue.
- Fournir la prévisibilité et les insights de la qualité et de l’agilité globales.
Déployer très tôt et souvent en utilisant des pipelines basés sur des déclencheurs et des pipelines planifiés. Les pipelines basés sur des déclencheurs garantissent que les modifications passent par une validation correcte, tandis que les pipelines planifiés gèrent le comportement des environnements changeants.
Séparer le déploiement d’infrastructure du déploiement d’applications. L’infrastructure principale est moins sujette aux changements que les applications. Traiter chaque type de déploiement comme un flux et un pipeline distincts.
Déployer à l’aide d’options natives Cloud. Utiliser l’infrastructure en tant que code pour déployer l’infrastructure, notamment le plan de contrôle, et utiliser Helm et le modèle Operator dans Kubernetes pour déployer et gérer des composants natifs Kubernetes.
Utiliser GitOps pour déployer et gérer des applications. GitOps utilise le référentiel git comme une source unique de vérité, ce qui évite la dérive de la configuration et augmente la productivité et la fiabilité lors des restaurations et des procédures associées.
Utilisez des identités managées par pod et le fournisseur Azure Key Vault pour le pilote Secrets Store CSI afin de protéger les secrets, les certificats et les chaînes de connexion.
Efforcez-vous de maximiser la simultanéité du déploiement en évitant les éléments de configuration et les paramètres codés en dur.
Appuyez-vous sur des conventions bien connues pour les déploiements d’infrastructure et d’application. Utilisez des contrôleurs d’admission associés au module complémentaire Azure Policy pour Kubernetes pour valider et appliquer des conventions parmi les autres stratégies définies.
Adoptez la transition vers la gauche de manière cohérente avec :
- La sécurité, en ajoutant des outils d’analyse de vulnérabilité tels que l’analyse de conteneur au début du pipeline.
- La stratégie, en utilisant la stratégie en tant que code et en appliquant des stratégies de façon native dans le cloud par le biais de contrôleurs d’admission.
Traitez chaque défaillance, erreur ou panne comme une opportunité d’automatiser et d’améliorer la qualité globale de la solution. Intégrez cette approche dans le cadre de votre infrastructure SRE (ingénierie de fiabilité de site).