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.
Related Infrastructure¶
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]
- Minio (Storage)
- Redis (Caching)
- Clouddriver (Cloud Operations)
- Front50 (Persistence)
- Orca (Orchestration)
- Echo (Messaging)
- Igor (CI Integration)
- Gate (API Gateway)
- Deck (UI)
- Nginx (Ingress Proxy)
Sources¶
^[400-devops-06-kubernetes-k8s-paas-08spinaker.md]