2. What is Continuous Delivery and Continuous Deployment?
Continuous Delivery is a practice by which a software can be deployed to
production in a fast, safe and automated manner. The idea here is that new
and if all things check out, it can be deployed to production. This is a manual
Continuous Deployment takes this farther. It automatically pushes any
change to production as long as it passes any test defined.
3. What is Spinnaker?
Spinnaker is a multi-cloud continuous delivery platform for releasing software
changes. It is designed to increase release velocity and reduce the risk associated
with updating applications. Spinnaker is used in production by thousands of
organizations around the world to automate their software delivery process, and used
by developers, testers, SREs to deploy hundreds of changes a day.
Spinnaker is supported by a large community including AWS, Google, Azure, Oracle,
SAP, Cisco, Netflix, etc. Spinnaker is a Linux Foundation project, and CD Foundation
executes the product roadmap and strategic initiatives
4. What is Spinnaker?
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.
Spinnaker was developed by Netflix as a successor to the internally developed
Asgard. It was released under the Apache License 2.0 on November 16, 2015 and
has been adopted by tech companies
5.
6.
7. Spinnaker can integrate with any CI/CD tools in your environment. It
complements CI tools such as Jenkins and Travis CI by orchestrating the
entire deployment pipeline, including invoking the CI tools, fetching the
artifacts they create, and deploying the final package into the target
8. Benefits of Spinnaker
•Continuous Integration.
•Monitoring Integration.
•CLI (Command Line Interface) for Setup and Admin.
•Deployment Strategies.
•Notification on Email, Slack, Hipchat or SMS.
•Role-Based Access Control.
•Easy creation and modification of deployment pipelines using virtual
interface.
•The configuration of pipelines for deployment infrastructure instead of
managing resources manually.
9.
10. Spinnaker Features
Multicloud deployment
Use Spinnaker to deploy applications (containers, VM, or
functions) to the public cloud (AWS, GCP, Azure) or private cloud (
like Openshift). Deploy Kubernetes apps seamlessly as Spinnaker
treats Kubernetes as a first-class citizen.
11. Spinnaker Features
Automated pipelines
Automate your release with a flexible pipeline builder in Spinnaker
to automate the CI/CD workflow and deliver multi-service
composite applications into target environments without writing
any scripts.
12. Spinnaker Features
Pipeline-as-code
Use existing pipeline JSON files to recreate and configure
application delivery workflows. Leverage pipeline as code to insert
fine grained policies and improve visibility during the pipeline
execution.
13. Spinnaker Features
Deployment Verification
Deploy applications with ready-to-use built-in safe deployment
strategies in Spinnaker. Spinnaker native supports blue/green,
canary, rolling update, and lets you define your custom strategy.
Spinnaker also provides the ability to roll back bad deployments
with one click or even automatically.
14. Spinnaker Features
Flexibility and Extensibility
With open source Spinnaker, it is easy to customise and extend
any capability as per your organization requirements. You can
build connectors for external services or tools, or add new UI
widgets.
15. Spinnaker Features
Security
Embed authentication and authentication by integrating Spinnaker
with tools such as OAuth, SAML, LDAP, X.509 certs, Google
Groups, Azure Groups, or GitHub Teams. Store your sensitive
information using Spinnaker integration with 3rd party secret
management tools like Hashicorp Vault.
16. Spinnaker Features
API based
Spinnaker is modular and can act as a central CD tool for many
enterprises because it uses an API-based architecture. Developers
across the team can integrate external services with Spinnaker
services.
17. Spinnaker Components
Spinnaker is made up of 11 microservices working together to
we get out of the box :-
•Deck. This is the frontend service for spinnaker. Anytime you are
interacting the UI, this service is doing all this work.
•Gate. This is the API gateway that fronts all the other services.
Like any other microservice architecture, all communications from
spinnaker goes through this service.
•Orca. This service is responsible for all ad-hoc operations. Things
like taking a pipeline or task definition and managing the stages
also responsible for persisting information about pipeline
get info about another stage. Redis is used to persist this
18. Spinnaker Components
•CloudDriver. This service is responsible for making calls to cloud
providers and caching all deployed resources. It is the main
providers.
•Front50. This service is responsible for persisting the metadata of
applications, pipelines, projects and notifications.
•Rosco. This service is responsible for baking images that will be
deployed. It uses the packer tool to do the baking.
•Igor. This service is used to connect to continuous integration
platforms like Jenkins or Travis CI to spinnaker. It also allows
present in the pipeline. Without this service you will not be able to
tool.
19. Spinnaker Components
•Echo. This service is the event bus responsible for sending
notification and responsible for all incoming webhooks to
•Fiat. This service is responsible for authorization. It is used to
query for users permission.
•Kayenta. This service is responsible for automated canary analysis
for spinnaker. This is the latest service added to spinnaker so
spinnaker did not have this service.
•Halyard. This service is the tool for installing, configuring, and
updating spinnaker.
20. Spinnaker Components
Spinnaker is a cloud-first architecture with a strong favor in Kubernetes. It is also well-suited
in abstracting away menus from cloud providers in order to get your deployment online as
quickly as possible and as safe as possible.
It incorporates infrastructure as code tooling. This does not mean that it is a provider like
Terraform, rather it is artifact driven. These can contain containers, VMs, et cetera. These
make the calls to the cloud providers in order to spin up your infrastructure and send it up to
support your deployment.
Spinnaker is also focused in automated releases with robust pipeline stages, nested
underneath these pipelines that can be ran in parallel and also having the power and ability
for manual human interventions. This could mean that there needs to be a physical check
from a software engineer, DevOps engineer reviewing and analyzing the results expected
before continuing on in the pipeline.
21. How Spinnaker Works?
It provides two main set of features -
•Application Management
•Application Deployment
Application Management — To view and manage Cloud resources, use
Spinnaker Application Management. The key concepts of Spinnaker -
Applications — In this, an application is a collection of the cluster. An
application represents a service deployed using Spinnaker, configuration
set for all service and infrastructure on which it will run. It creates a
different application for each service.
22. How Spinnaker Works?
Cluster — It is a collection of server groups.
Server Groups — Server Groups, identifies the deployable like VM
image, Docker Image and Source Location. It also used for Basic
configuration settings such as a number of metadata, instances, and
autoscaling. Optionally this resource associated with Load Balancer and
Firewall. When Deployment is done, a Server Group acts as a collection
of running instances and also running software.
Load Balancer — Load Balancer associated with port range and ingress
protocol. It manages traffic among instances and Server Groups. Also
helps in health checks for a Load Balancer.
23. How Spinnaker Works?
Firewall — Firewall is used to define Traffic access. It is a set of Firewall
rules defined by an IP range and also a communication Protocol.
Application Deployment — To construct and manage Continuous
Delivery Workflow, use of Spinnaker Application Deployment. There are
some key concepts -
Pipeline — Pipeline is key which helps in deployment management in
Spinnaker. It consists of a sequence of actions called stages. Also, pass
parameters from stage to stage along with Pipeline.
24. How Spinnaker Works?
Stage — An automatic building block for a pipeline is a Stage in
Spinnaker. In this, define an action to perform on that pipeline. It provides
a number of stages such as Deploy, Judgement, Disable, Resizes and
many more.
Deployment Strategies — It supports the red and black strategy, and it
also has a blue/green strategy. It also helps in handling the orchestration
like health checks, disables and enable server groups.
25. Best Practices of Spinnaker
•Plan for frequent Updates for each Microservices Pipeline.
•Declaratively specify Application Microservices as Infrastructure as
Code.
•Visualize Pipeline and Environment.
•Early Left Shift Security.
•Test automation with prioritization and early feedback.
•Using Staging before Production.
•Advance Deployment Strategies.
•Monitor user experience and metrics.
26. Spinnaker Pipelines
Delivering an application with Spinnaker requires a pipeline. This pipeline can be reused and iterated on as your needs
change.
Build pipelines with a series of customizable stages that each perform a single function. For example, include a Canary
Analysis stage to perform Automated Canary Analysis for Blue/Green deployments.
1. Spinnaker, integrated with your CI tool, triggers a build for a Linux-based machine image.
2. This image, along with your launch configurations, defines an immutable infrastructure that you can use to deploy to your
cloud provider with Spinnaker.
3. Run your tests, which can be integrated with Spinnaker and automatically triggered.
4. Based on your deployment strategy and any criteria you set, go live with the build.
27. Who Should Use Spinnaker?
Use Spinnaker if you want to accelerate your software delivery velocity. If you’re currently
shipping software once a quarter, start there. Use Spinnaker to automate that process and
make it smoother. Feeling adventurous? Bump up your release cadence to once a month,
once a day, once an hour – Spinnaker can handle it all. Let Spinnaker meet you where
you’re at.
Spinnaker today is used by companies around the world, from small startups to Fortune
50 organization
28.
29. Summary
Spinnaker provides application management and deployment to help you release software
changes with high velocity and confidence. Spinnaker is an open-source, multi-cloud
continuous delivery platform that combines a powerful and flexible pipeline management
system with integrations to the major cloud providers. If you are looking to standardize
your release processes and improve quality, Spinnaker is for you.