Spinnaker Sub-Services: Clouddriver, Deck, Echo, Gate, Igor, Orca, Rosco, Armory Lighthouse
Spinnaker is a collection of sub-services that work together to form the Continuous Deployment platform.
Each service follows the single-responsibility principle which allows for faster iteration on each individual component and a more pluggable architecture for custom components.
However, this means that standing up the OSS version of Spinnaker as well as upgrading it can be convoluted due to having to install, configure and upgrade each service manually. Armory Spinnaker’s distribution of enterprise Spinnaker is designed to make Spinnaker easily upgradable.
Below is the list of each sub-service and a short explanation of what it does:
Clouddriver is a core component of Spinnaker which facilitates the interactions between a given cloud provider such as AWS, GCP or Kubernetes. There is a common interface that is used so that additional cloud providers can be added.
Deck is the interactive User Interface for visualizing the state of cloud resources. Deck depends on Gate to interact with the cloud providers.
Echo is the service for Spinnaker which manages notifications, alerts and scheduled pipelines (Cron). It can also propagate these events out to other REST endpoints such as an Elastic Search, Splunk’s HTTP Event Collector or a custom event collector/processor.
Gate is the front-end API that is exposed to the users of your Spinnaker instance. It also manages authentication and authorization for sub-service APIs and resources with Spinnaker. All communication between the User Interface and the back-end services happen through Gate.
Igor is an API which communicates with Jenkins. It takes data from Jenkins then turns the data actionable within Spinnaker.
Orca is responsible for the orchestration of pipelines, stages and tasks within Spinnaker. It acts as the “traffic cop” within Spinnaker making sure that sub-services, their executions and states are passed along correctly.
The smallest atomic unit within Orca is a task – stages are composed of tasks and pipelines are composed of stages.
Rosco is the “bakery” service. It is a wrapper that uses Hashicorp’s Packer command line tool which bakes images for AWS, GCP, Docker, Azure, and other builders.
- Armory Lighthouse
Lighthouse is a small, lightweight service written by Armory and is part of Armory Spinnaker’s distribution. Its job is to monitor the health of the Spinnaker sub-services, taking action when needed. Additionally, Lighthouse provides functionality for upgrading the Spinnaker sub-services.