Spinnaker is an open source multi-cloud tool that speeds up the software release process. It's a continuous integration and delivery (CI/CD) platform that allows you to deploy software with high velocity and confidence across multiple cloud platforms, as well as visualize and automate parts of your deployment pipeline.
Who should use Spinnaker?
Spinnaker is for you if you want to standardize your release processes and improve quality and scalability of your applications. Spinnaker also is for you if you are seeking to move your monolithic applications to the cloud.
Netflix built “Asgard”, an open source tool to simplify the delivery to Amazon Web Services (AWS). This tool was working fine until the requirement of deployment and delivery in multiple cloud solutions started to rise. Remember that Asgard was designed to support AWS only. This is when Netflix decided to build a successor of Asgard, which was multi-cloud and a continuous deployment tool. The project was later named “Spinnaker”. Today, Spinnaker holds a huge part of Netflix’s dynamic infrastructure for the CI/CD process. Netflix donated Spinnaker to the open source community and it became one of the widely used tools for multi-cloud deployment.
Multi-cloud deployment: Using Spinnaker, you can deploy into any multiple cloud environments allowing you to scale quicker, and at a lower cost.
Automation: Spinnaker can help you to automate key stages of the deployment pipeline such as testing and production.
Role-based access control (RBAC): Using industry-standard authorization tools such as LDAP, Spinnaker makes it simple for organizations to implement segregation of duties so that a user can only perform a task if they are authorized to do so.
Notification setup: Spinnaker allows you to set up notifications on various industry channels such as email, Slack, HipChat, or PagerDuty.
Monitoring continuous integration: Spinnaker allows you to keep track of all code integrations in real time, allowing you to monitor application health.
Simplification: Spinnaker simplified multicloud deployment by abstracting each cloud platform's specifics into common elements such as load balancing, server groups, and security groups.
Configuring deployment pipelines: Spinnaker allows you to define custom deployment configurations for your deployment pipelines while you automate them.
CI/CD Process in software deployment
Continuous Integration(CI): CI refers to the process(or practice) of continuously accumulating and merging all the codes of a software development project regularly. For example if you use a central repository like GitHub where you make several small quick code changes very frequently. This helps quicken integration and increases delivery speeds.
Continuous Delivery(CD): CD is an extension of the CI process. After the codes are integrated and merged, now is the time to incorporate them in a pipeline and release them in production. This is where the concept of continuous delivery emerges. After some initial automated unit tests, the release is completed. However, manual checks are required for the final release from production. If the final release process is also automated, it is known as Continuous Deployment.