Skip to content

Spinnaker component architecture

Spinnaker is a continuous delivery platform designed to manage cloud resources and deployment pipelines with high flexibility.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] Its architecture is composed of several specialized microservices that work together to provide cluster management, deployment automation, and workflow orchestration.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Core Components

Deck

Deck is the user-facing web UI, often referred to as the "click-click-click page."^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It serves as the graphical interface where users can configure applications, view pipeline status, and manage deployments.

Gate

Gate acts as the API gateway for the Spinnaker ecosystem.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It serves as the entry point for all API requests, routing them from the frontend (Deck) to the appropriate backend services.

Igor

Igor is the component responsible for communication with external build systems, specifically Jenkins.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It allows Spinnaker to trigger builds and retrieve artifacts created by Jenkins pipelines.

Orca

Orca functions as the task orchestration engine.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It is responsible for executing the logic defined in Spinnaker pipelines, coordinating the sequence of operations required for a deployment.

Clouddriver

Clouddriver is the infrastructure component that interacts with cloud providers to manage resources, primarily those categorized as IaaS (Infrastructure as a Service).^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It handles the actual manipulation of cloud resources, such as deploying server groups or load balancers.

Front50

Front50 is the persistence layer of Spinnaker.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It manages the storage of persistent data, including application configurations, pipeline definitions, and service account settings.

Echo

Echo serves as the communication and event bus component.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md] It handles messaging and notifications, allowing different parts of the system to communicate events asynchronously.

To function, these components rely on several supporting infrastructure pieces:

  • Redis: Used for caching and internal communication.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]
  • Minio: An S3-compatible storage service used to back persistent data managed by Front50.^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

Typical Deployment Order

When deploying Spinnaker (specifically the Armory distribution in a Kubernetes environment), components are typically initialized in a specific dependency order to ensure stability:^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]

  1. Minio (Storage)
  2. Redis (Caching)
  3. Clouddriver (Cloud Operations)
  4. Front50 (Persistence)
  5. Orca (Orchestration)
  6. Echo (Messaging)
  7. Igor (CI Integration)
  8. Gate (API Gateway)
  9. Deck (UI)
  10. Nginx (Ingress Proxy)

Sources

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