Deploy EC2 Spot Instances with Spinnaker - Spot.io

Deploy EC2 Spot Instances with Spinnaker

As more companies plant their IT systems in the cloud, DevOps methodologies are being embraced to accelerate these digital transformations. Part of DevOps adoption is the implementation of continuous integration and continuous delivery (CI/CD) practices, bringing automation to the software delivery process. Spinnaker, the leading CI/CD platform, created and open sourced by Netflix, has simplified cross-cloud software delivery and deployment while enabling developers to own their application code from commit to delivery.  

Many Spot customers are using Spinnaker to streamline their software delivery and deployment processes, and we want to extend these capabilities into their cloud operations to enable continuous optimization and cost savings. With that goal in mind, we are excited to announce that Spot’s Elastigroup now integrates with Spinnaker.

The integration gives users like Adam Gray, a release engineer at Samsung, the ability to scale their cloud at low costs while benefiting from the high velocity deployments that Spinnaker provides. 

Spinnaker

Managed EC2 spot instance experience with Spinnaker and Elastigroup

Integrating Spot with Spinnaker enables users to streamline their DevOps workflow, with Spinnaker as the deployment tool and Elastigroup as the infrastructure platform. Users can spin up new instances using Spinnaker while Elastigroup continuously optimizes cost and simplifies operations with intelligent infrastructure provisioning that chooses the right lifecycle model for you, all backed with an enterprise-level SLA to ensure availability. 

Within Spinnaker, Elastigroup is associated with an application, and users can create, edit and control Elastigroup resources via the Spot provider. In the Spot console, a Spinnaker Server Group is represented as an Elastigroup. 

Elastigroups and their associated instances are displayed on the Clusters page (accessed through the Spinnaker GUI management tool) directly from a Spot account. Users are given color-coded instance health indicators, and can click further into server groups to see more details.

Spinnaker

Available operations in the Spinnaker dashboard

Core Elastigroup functions are available in the Spinnaker dashboard, where users can:

  1. Enable server groups 
  2. Disable the load balancer and scaling policies from the Elastigroup configuration and effectively stops it from handling any traffic.
  3. Terminate all the instances in the Elastigroup and delete the Elastigroup itself.
  4. Resize and modify the minimum and maximum and desired capacity of the elastigroup.

spinnaker

Users can also add the following stages to their pipeline:

  1. Clone server group:
{
      "application": <APP_NAME>,
      "cloudProvider": "spot",
      "cloudProviderType": "spot",
      "credentials": <ACCOUNT_NAME>,
      "moniker": {
        "app": <APP_NAME>,
        "cluster": <CLUSTER_NAME>,
        "stack": <STACK>
      },
      "name": "Clone Server Group",
      "pipelineId": "",
      "refId": "2",
      "region": <REGION>,
      "requisiteStageRefIds": [
        "1"
      ],
      "stack": <STACK>,
      "target": "current_asg_dynamic",
      "targetCluster": <TARGET_CLUSTER_NAME>,
      "type": "cloneServerGroup",
      "useSourceCapacity": true
   }

2. Disable Server group

{
      "cloudProvider": "spot",
      "cloudProviderType": "spot",
      "cluster": <CLUSTER_NAME>,
      "credentials": <APP_NAME>,
      "moniker": {
        "app": <APP_NAME>,
        "cluster": <CLUSTER_NAME>,
        "stack": <STACK>
      },
      "name": "Disable Server Group",
      "refId": "3",
      "regions": [
        <REGION>
      ],
      "requisiteStageRefIds": [
        "2"
      ],
      "target": "ancestor_asg_dynamic",
      "type": "disableServerGroup"
}

3. Find image from tags (from AWS only)

{
  "cloudProvider": "spot",
  "cloudProviderType": "spot",
  "name": "Find Image from Tags",
  "packageName": <PACKAGE_NAME>,
  "regions": [
    <REGION>
  ],
  "tags": {
    "<TAG_KEY>": <TAG_VALUE>
  },
  "type": "findImageFromTags"
}

4. Manual Judgment – as documented here

5. Wait – as documented here

6. Pipeline – as documented here

Start using Elastigroup and Spinnaker

Head over to our documentation where you can follow just four easy steps to get started with Elastigroup and Spinnaker.