Skip to content

Spinnaker continuous deployment platform

Spinnaker is an open-source, multi-cloud continuous delivery platform designed to manage software deployments with high velocity and confidence.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

It provides flexible and configurable pipelines to enable repeatable, automated deployments, offering a global view of application status across all environments.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] The platform is typically employed in enterprise PaaS (Platform as a Service) stacks to complement Kubernetes infrastructure by providing robust release management capabilities, often integrating with tools like Jenkins for CI and [[Harbor]] for container registry.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Core Concepts

Microservices architecture

Spinnaker is built as a collection of microservices that handle different aspects of the deployment lifecycle.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

The key components include:

  • Deck: The user interface for managing pipelines and resources ("点点点页面").^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Gate: The API gateway through which all API traffic passes.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Orca: The orchestration engine responsible for executing pipeline stages and tasks.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Clouddriver: Manages interactions with cloud providers (e.g., Kubernetes, AWS).^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Igor: Integrates with CI systems (like Jenkins) to trigger pipelines.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Echo: Handles communication and events.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Front50: Manages persistent data and pipeline configuration.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Deployment Strategy

In a Kubernetes-based PaaS environment, Spinnaker components are typically deployed as microservices within the cluster itself.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] This allows for easy scaling and management. Common dependencies include Redis for caching and Minio or S3 for persistent storage.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

The general deployment flow involves setting up these microservices sequentially to ensure dependencies are met (e.g., starting storage and cache before orchestration engines).^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Workflow and Integration

Spinnaker bridges the gap between Continuous Integration (CI) and Continuous Deployment (CD).

  1. CI Integration: It connects with Jenkins (via the Igor component) to build artifacts and container images.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  2. Pipeline Orchestration: Users can create complex pipelines that automate the testing and deployment process.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  3. Kubernetes Deployment: It interacts with the Kubernetes API (via Clouddriver) to manage Deployments, Services, and Ingress resources.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  4. Production Iteration: The platform facilitates blue/green or rolling update strategies, allowing for rapid code iteration and rollback if necessary.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

This workflow enables a "click-to-deploy" experience, reducing the time required to release code changes to production to minutes.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Sources

^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]