Spinnaker - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Spinnaker

Bien que Spinnaker ne soit pas exclusivement conçu comme un GitOps outil, vous pouvez le configurer pour implémenter des GitOps principes, en particulier lorsque vous l'utilisez pour des déploiements cloud natifs et Kubernetes.

GitOps soutien

Area Capacités des outils

Configuration déclarative

Spinnaker utilise des définitions de pipeline déclaratives, qui sont généralement stockées sous forme de fichiers JSON ou YAML. Ces définitions de pipeline peuvent être contrôlées par version dans les référentiels Git, conformément aux pratiques. GitOps

IaC

Spinnaker prend en charge la définition des configurations d'infrastructure et de déploiement sous forme de code. Ces définitions peuvent être stockées dans des référentiels Git et peuvent servir de source unique de vérité.

Déploiements multicloud

Spinnaker est conçu pour fonctionner avec plusieurs fournisseurs de cloud et clusters Kubernetes. Il permet GitOps des pratiques cohérentes dans divers environnements.

Pipeline en tant que code

Les pipelines Spinnaker peuvent être définis sous forme de code et stockés dans des référentiels Git. Cela permet de contrôler les versions et de revoir les processus de déploiement.

Déploiements automatisés

Vous pouvez configurer Spinnaker pour démarrer automatiquement les déploiements en fonction des modifications apportées aux référentiels Git. L'outil prend en charge les pratiques de déploiement continu qui sont essentielles à GitOps.

Infrastructure immuable

Spinnaker promeut l'utilisation d'une infrastructure immuable, qui est un concept clé dans. GitOps Il encourage le déploiement de nouvelles instances au lieu de modifier les instances existantes.

Annulations et gestion des versions

Spinnaker fournit des capacités de restauration robustes et un retour rapide aux bons états connus précédents. Il prend en charge le versionnement des déploiements, conformément aux GitOps principes de traçabilité.

Flux de travail d'approbation

Spinnaker inclut des étapes de jugement manuel dans les pipelines afin de permettre des promotions contrôlées entre les environnements. Cela favorise les GitOps pratiques de séparation entre les déploiements et les versions.

Canary et les blue/green déploiements

Spinnaker prend en charge des stratégies de déploiement avancées qui s'alignent sur GitOps les pratiques relatives aux versions sûres et contrôlées.

Intégration aux systèmes de contrôle de version

Spinnaker peut s'intégrer à différents fournisseurs Git pour démarrer des pipelines en fonction des événements du référentiel.

Intégration avec Kubernetes

Spinnaker fournit un support natif pour Kubernetes et prend GitOps en charge la gestion de type Kubernetes des ressources Kubernetes.

Gestion des artifacts

Spinnaker prend en charge la gestion des artefacts et le contrôle des versions, qui sont essentiels au maintien d'un flux de travail. GitOps

Observabilité et surveillance

Spinnaker propose une intégration avec des outils de surveillance pour prendre en charge l'aspect observabilité de. GitOps

Piste d'audit

Spinnaker fournit des journaux et un historique de déploiement détaillés, qui soutiennent le principe d'auditabilité de. GitOps

Contrôle d’accès basé sur les rôles (RBAC)

Cet outil implémente le RBAC pour un contrôle précis sur qui peut effectuer quelles actions, conformément aux GitOps pratiques de sécurité.

Modélisation et paramétrage

Spinnaker prend en charge la création de modèles dans les définitions de pipeline afin de permettre des déploiements réutilisables et paramétrés.

Promotion de l'environnement

Spinnaker facilite la promotion des applications entre les environnements (par exemple, de la mise en scène à la production) de manière contrôlée.

Intégration aux outils CI

Spinnaker peut s'intégrer à divers outils d'intégration continue (CI) pour fournir un CI/CD pipeline complet conforme aux principes. GitOps

Stages et extensions personnalisés

Cet outil prend en charge les étapes et les extensions personnalisées, afin que les équipes puissent mettre en œuvre des GitOps flux de travail adaptés à leurs besoins.

Gestion centralisée

Spinnaker fournit une plate-forme centralisée pour gérer les déploiements dans plusieurs environnements et fournisseurs de cloud.

Bien que Spinnaker ne soit pas principalement commercialisé comme un GitOps outil, sa flexibilité et ses fonctionnalités robustes le rendent capable de mettre en œuvre des GitOps flux de travail, en particulier dans des environnements multicloud complexes. La principale différence entre Spinnaker et les GitOps outils dédiés tels qu'Argo CD ou Flux réside dans le fait que Spinnaker propose une plateforme de diffusion continue plus complète avec des stratégies de déploiement avancées et un support multicloud.

La force de Spinnaker réside dans sa capacité à gérer des scénarios de déploiement complexes auprès de différents fournisseurs de cloud et dans sa prise en charge de stratégies de déploiement avancées. Lorsque Spinnaker est correctement configuré, il peut mettre en œuvre les GitOps principes de manière efficace. Cela en fait un outil puissant pour les organisations qui souhaitent adopter GitOps des pratiques dans des environnements divers et complexes.

Pour plus d'informations, consultez la documentation de Spinnaker.

Architecture

Le schéma suivant illustre un flux de travail GitOps sur CD piloté par Spinnaker et Jenkins X. Pour des informations détaillées, consultez la documentation de Spinnaker.

Architecture et flux de travail Spinnaker activés. AWS

où :

  • Étape 1 : validation du code. Les développeurs valident les modifications du code de l'application dans un dépôt Git. Ces modifications peuvent inclure des mises à jour de l'application elle-même, de Dockerfiles ou des manifestes Kubernetes.

  • Étape 2 : Construction de Jenkins et création d'images. Jenkins est automatiquement déclenché par le dépôt Git via un webhook ou un sondage. Jenkins construit l'application, crée une image Docker et envoie l'image créée vers un registre Docker configuré (tel qu'Amazon ECR ou Docker Hub).

  • Étape 3 : surveillance de l'image Spinnaker et déclenchement du pipeline. Spinnaker surveille en permanence le registre Docker à la recherche de nouvelles images. Lorsqu'une nouvelle version d'image est détectée, Spinnaker déclenche automatiquement un pipeline pour démarrer le processus de déploiement.

  • Étape 4 : Déploiement vers des espaces de noms cibles Spinnaker déploie la nouvelle image Docker sur Amazon EKS. Sur la base des configurations du pipeline, l'image est déployée sur les espaces de noms cibles du cluster. Spinnaker veille à ce que la dernière version de l'application soit déployée tout en respectant les stratégies de déploiement définies, telles que les blue/green déploiements Canary.