Spinnaker is composed of a number of independent microservices:
Deck is the browser-based UI.
Gate is the API gateway. The Spinnaker UI and all api callers communicate with Spinnaker via Gate.
Orca is the orchestration engine. It handles all ad-hoc operations and pipelines.
Clouddriver is responsible for all mutating calls to the cloud providers and for indexing/caching all deployed resources.
Front50 is used to persist the metadata of applications, pipelines, projects and notifications.
Rosco is the bakery. It is used to produce machine images (e.g. GCE images, AWS AMIs, Azure VM images). It presently wraps packer, but will shortly be expanded to support additional mechanisms for producing images.
Igor is used to trigger pipelines via continuous integration jobs in systems like Jenkins and Travis, and to allow for Jenkins/Travis stages to be used in pipelines.
Echo is Spinnaker’s eventing bus. It supports sending notifications (e.g. Slack, email, Hipchat, SMS), and act on incoming webhooks from services like Github.
Fiat is Spinnaker’s authorization service. It is used to query a user’s access permissions for accounts, applications and service accounts.
Halyard is Spinnaker’s configuration service. Halyard manages the lifecycle of each of the above services. It only interacts with the above services during Spinnaker startup, updates, and rollbacks.
System Dependency Graph
A filled cell indicates that the system listed in the heading of that column has a dependency on the system listed in the heading of that row. As all Spinnaker services can be run in their own server group, it is typical for services to resolve their dependencies via load balancers or discovery systems (e.g. Eureka or Consul).
By default Spinnaker binds ports according to the following table