What is Spinnaker?
Spinnaker is a Cloud Deployment Tool developed by Netflix and recently it is Open Sourced. Spinnaker Natively supports Google Cloud and AWS and all other cloud providers. Spinnaker supports Kubernetes, Azure, and Cloudfoundry. The primary purpose or goal of Spinnaker is to make reliable deployments. Spinnaker offers deployment, and it also allows for the simplest rollbacks. Multi-Cloud Continuous Delivery Platform for releasing software changes with high confidence. It creates a deployment that runs Integration and System testing, spins up and down server group and monitor rollouts.
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.
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.
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.
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.
Why Spinnaker Matters?
- Multi-Cloud Deployment.
- Make New Docker Images inside staging of Spinnaker.
- Any Spinnaker Stage can call any Jenkins Job.
- Manual Judgement Button to Allow or Deny Actions.
- Simple Blue and Green Deployment in Kubernetes and AWS.
- Simple Red and Black Deployment in Kubernetes and AWS.
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.
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.
It is used for Continuous Delivery for Enterprise. It is fast, safe and repeatable deployment. It is an Open source and Multi-Cloud Continuous Delivery Cloud Platform. It is an Automated Release and Built-in Deployment. Support Providers of Spinnaker are AWS, GCP, Open Stack, App Engine, Kubernetes, Oracle, Docker v2 Registry.
How useful was this post?