What is Spinnaker & Spinnaker Architecture explained?

Spinnaker is a free and open-source continuous delivery software platform originally developed by Netflix and extended by Google. It is designed to work with Kubernetes, Google Cloud Platform, AWS, Microsoft Azure and Oracle Cloud. It was released under the Apache License 2.0 on November 16, 2015.

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

Spinnaker microservices has been developed using Java, Groovy, Kotlin, Go and HTML. Spinnaker Training and certification be be availed from DevOpsSchool.com.

Created at Netflix, it has been battle-tested in production by hundreds of teams over millions of deployments. It combines a powerful and flexible pipeline management system with integrations to the major cloud providers.

Multi-Cloud Support
Deploy across multiple cloud providers including AWS EC2, Kubernetes, Google Compute Engine, Google Kubernetes Engine, Google App Engine, Microsoft Azure, Openstack, Cloud Foundry, and Oracle Cloud Infrastructure, with DC/OS coming soon.

Automated Releases
Create deployment pipelines that run integration and system tests, spin up and down server groups, and monitor your rollouts.

Scheduling
Trigger pipelines via git events, Jenkins, Travis CI, Docker, CRON, or other Spinnaker pipelines.

Built-in Deployment Best Practices
Create and deploy immutable images for faster rollouts, easier rollbacks, and the elimination of hard to debug configuration drift issues. Leverage an immutable infrastructure in the cloud with built-in deployment strategies such as red/black and canary deployments.

Active Community
Community that includes Netflix, Google, Microsoft, Salesforce, Veritas, Target, Kenzan, Schibsted, and many others, actively working to maintain and improve Spinnaker.

List of Features of Spinnaker?

CI Integrations
Listen to events, collect artifacts, and trigger pipelines from Jenkins or Travis CI. Triggers via git, cron, or a new image in a docker registry are also supported.

Monitoring Integrations
Tie your releases to monitoring services Datadog, Prometheus, Stackdriver, SignalFx, or New Relic using their metrics for canary analysis.

CLI for Setup and Admin
Install, configure, and update your Spinnaker instance with halyard, Spinnaker’s CLI tool.

Deployment Strategies
Configure pipelines with built-in deployment strategies such as highlander and red/black, with rolling red/black and canary in active development, or define your own custom strategy.

VM Bakery
Bake immutable VM images via Packer, which comes packaged with Spinnaker and offers support for Chef and Puppet templates.

Notifications
Set up event notifications for email, Slack, HipChat, or SMS (via Twilio).

Role-based Access Control
Restrict access to projects or accounts by hooking into your internal authentication system using OAuth, SAML, LDAP, X.509 certs, Google Groups, Azure Groups, or GitHub Teams.

Manual Judgments
Require a manual approval prior to releasing an update with a manual judgement stage.

Restricted Execution Windows
Restrict the execution of stages to certain windows of time, making sure deployments happen during off-peak traffic or when the right people are on hand to monitor the roll-out.

Chaos Monkey Integration
Test that your application can survive instance failures by terminating them on purpose.

List of microservices of Spinnaker

  • 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. Read more on the Orca Service Overview.
  • 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 produces immutable VM images (or image templates) for various cloud providers. It is used to produce machine images (for example GCE images, AWS AMIs, Azure VM images). It currently wraps packer, but will 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 CI, and it allows Jenkins/Travis stages to be used in pipelines.
  • Echo is Spinnaker’s eventing bus. It supports sending notifications (e.g. Slack, email, SMS), and acts 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.
  • Kayenta provides automated canary analysis for Spinnaker.
  • Keel powers Managed Delivery.
  • Halyard is Spinnaker’s configuration service.

Spinnaker Architecture Aka How Spinnaker Works?

Spinnaker Microservices Dependency

Spinnaker Microservices Port mappings

By default Spinnaker binds ports according to the following table

ServicePort
Clouddriver7002
Deck9000
Echo8089
Fiat7003
Front508080
Gate8084
Halyard8064
Igor8088
Kayenta8090
Orca8083
Rosco8087
Keel8087

Spinnaker Best Practices

Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x