1. Introduction
1.1. Description:
Spinnaker is an open source project for Netflix and a continuous delivery platform that is positioned to quickly and consistently deploy products to multiple cloud platforms. Spinnaker streamlines the deployment process by decoupling releases from each cloud platform, reducing the complexity of platform migrations or the use of a cloudy desktop deployment, which natively supports Google, AWS EC2, Microsoft Azure, Kubernetes, and A cloud platform such as OpenStack, and it seamlessly integrates with other continuous integration (CI) processes such as Git, Jenkins, Travis CI, Docker Registry, Cron Scheduler, and more. In short, Spinnaker is a platform dedicated to delivering out-of-the-box cluster management and deployment capabilities across multiple platforms.
1.2. Official website:
Https://www.spinnaker.io
1.3. Ebook
https://www.spinnaker.io/ebook/#continuous-delivery-with-spinnaker
1.4. Reference Articles
78717151
2. Architecture
2.1. Micro-Service Description
Component Name |
Component description |
Port |
|
Deck |
The browser-based UI |
9000 |
|
Gate |
The API Gateway. The Spinnaker UI and all APIs callers communicate with Spinnaker via Gate |
8084 |
|
Orca |
The orchestration engine. It handles all AD-HOC operations and pipelines. |
8083 |
|
Clouddriver |
Responsible for all mutating calls to the cloud providers and for indexing/caching all deployed resources. |
7002 |
|
Front50 |
Used to persist the metadata of applications, pipelines, projects and notifications. |
8080 |
|
Rosco |
The bakery. It's used to produce machines images (for example GCE images, AWS AMIs, Azure VM images). It currently wraps Packer, but would be a expanded to support additional mechanisms for producing images. |
8087 |
|
Igor |
Used to trigger pipelines via continuous integration jobs in systems like Jenkins and Travis CI, and it allows Jenkins/tra Vis stages to being used in pipelines. |
8088 |
|
Echo |
Spinnaker ' s eventing bus. It supports sending notifications (e.g. Slack, email, hipchat, SMS), and acts on incoming webhooks from services like Gith Ub. |
8089 |
|
Fiat |
Spinnaker ' s authorization service. It is used to query a user's access permissions for accounts, applications and service accounts. |
7003 |
|
Kayenta |
Provides automated canary Analysis for Spinnaker. |
8064 |
|
Halyard |
Spinnaker ' s Configuration service. Halyard manages the lifecycle of each of the above services. It is interacts with these services during Spinnaker startup, updates, and rollbacks. |
8090 |
|
2.2. System Dependencies
2.3. Architecture: Cluster management and deployment management
Cluster management is primarily used to manage resources on the cloud, and it is divided into the following blocks:
- Server Group: Service groups, which are resource management units, identify deployable components and underlying configuration settings, and associate a load balancer and security group, when deployed, the service group is equivalent to a set of running instances of the software instance (VM instance, Kubernetes pods).
- Cluster: A cluster, a user-defined, logical grouping of service groups.
- Applications: Application is a logical grouping of clusters.
- Load Balancer: Loads balanced to redirect external network traffic to machine instances in a service group, and you can also specify a set of rules for health monitoring of machine instances in a service group.
- Security group, which defines the network access rights, a firewall rule consisting of IP, port, and communication protocols.
The deployment management feature is used to create a continuous delivery process, which can be divided into pipelines and phases.
Pipeline
The core of deployment management is the pipeline, in the definition of spinnaker, the pipeline consists of a series of stages (stages). The pipeline can be manually triggered or configured to trigger automatically, such as when the Jenkins Job is completed and when the Docker Images is uploaded to the warehouse, a CRON timer, a stage in another pipeline. At the same time, pipelines can configure parameters and notifications to send mail messages when they are executed at some stage of the pipeline. Spinnaker has built in some stages, such as executing a custom script, triggering a Jenkins task, and so on.
Stage
Stage in Spinnaker, it can be used as a function of the automatic building module of the pipeline. We can define the execution order of each stage in the pipeline arbitrarily. Spinnaker provides a number of stages for us to choose from, such as performing a release (Deploy), executing a custom script, triggering the Jenkins Task (Jenkins), and so on, with a powerful feature.
Deployment policy
Spinnaker supports granular deployment strategies such as red/black (blue/green) deployment, multi-stage environment deployment, rolling red/Black Strategy, Canary Publishing, and more. Users can use different deployment strategies for each environment, for example, the test environment can use red/black policies, the production environment uses the rolling red/black strategy, it encapsulates the necessary steps, the user does not need complex operations, you can achieve enterprise-level online.
"Linux" "Services" "SaaS" Spinnaker