Netflix Spinnaker is an open source, multi-cloud continuous delivery (CD) application that can be used to release software updates rapidly and efficiently. Created by the popular entertainment streaming service, Netflix, Spinnaker succeeds a similar platform, called Asgard, which was built specifically to simplify the delivery of Netflix services to Amazon Web Services (AWS).
Combining a flexible pipeline management tool with multiple cloud integrations, the two core functions of Spinnaker are application management and application deployment. Application management functions can be used to view and manage cloud resources while application deployment functions construct and manage continuous delivery workflows.
Users start by creating a deployable unit, such as a JAR file or Docker image, and end with deployment in the cloud. This can be invoked after the completion of a continuous integration (CI) project or triggered manually from external pipeline integrations including Git repositories, CRON jobs, Jenkins and Travis CI. Spinnaker will run integration and system tests, manage server groups and monitor automated rollouts.
With millions of Netflix users streaming content at all times, the company needed a way to update software that would not interrupt user experience (UX), thus taking advantage of the continuous integration and delivery approach. Spinnaker is currently used at Netflix to host hundreds of microservices, manage the pipeline delivery process to cloud VMS, containers, CDNs or hardware and push thousands of deployments every day.
Some of the most popular features of Spinnaker are:
- Built-in deployment strategies for configuring pipelines and leveraging immutable infrastructure.
- Integration with popular CI tools Jenkins and Travis CI.
- Supports integration with monitoring services such as Datadog, Prometheus or Stackdriver.
- A built-in command line interface (CLI) tool for installing, configuring and updating instances.
- The ability to set up email, Slack, HipChat or SMS event notifications.
- Role-based access control (RBAC) that connects to internal authentication systems to restrict access to specific projects or accounts.
- Optional manual approval requirements before releasing an update.
- Instance failure testing with Chaos Monkey
- Control over when certain stages are executed, ideal for avoiding peak traffic times.
- Includes the immutable VM image bakery tool, Packer.