Spotinst: Making the Most of Cheaper Excess Compute Capacity
After leaving the Israeli Defense Forces’ MAMRAM infrastructure unit, Amiram Shachar went to work for a company whose AWS costs were becoming untenable. He also was finishing up an engineering degree and needed to complete a senior project.
To save money, he began research AWS Spot Instances, the excess compute capacity AWS sells at steep discounts — it bills the savings as up to 90 percent less than on-demand prices. The problem: These instances can be terminated with only two minutes’ notice if AWS needs the capacity back.
His adviser liked the idea of applying machine learning to the problem so much he worked with Shachar on the project. In about three months they wrote an algorithm to predict when those interruptions would occur, and his employer was able to move totally to Spot Instances with a very low rate of false positives, he said.
Along with fellow IDF veterans Ahron Twizer, Liran Polak and Yakir Daniel, a new company, called Spotinst, was born.
Coming up on three years later, the company has more than 500 customers, including Ticketmaster, Sony, Intel and Verizon. It has raised $17.6 million, most recently a $15 million Series A round led by Intel Capital.
Deloitte recently named Spotinst as Israel’s fastest-growing startup.
The company’s core product, Elastigroup, uses algorithms to predict Spot behavior and predict the risk of interruption. It runs applications on the most cost-efficient compute resources, using its predictions to eliminate the risk of downtime. It uses the best-priced Spot Instances when they are available and falls back to on-demand when they are not while prioritizing any reserved instances you may already own. It automatically reverts back to Spot Instances as soon as possible.
The company offers load balancing and multicloud monitoring solutions as well. Most recently, it has jumped into the function-as-a-service game. In a post for The New Stack, Shachar called this approach, using containers as “Funtainers.” Originally created for AWS, it also runs on Microsoft Azure and Google Cloud. As part of its functions drive, it has forged partnerships with Alibaba, IBM and Equinix, too
Customers buy cloud compute resources from it in three ways, Shachar said:
- Instances, a unit of a VM
- Functions, which everybody calls serverless.
SpotInst’s Functions is in beta.
“In simplifying server management for development, we saw a great opportunity for us to step into that area that we already offer instances and containers,” said Shochar said.
You can look at Uber as the largest taxi provider in the world, but it owns no taxis, he pointed out. Airbnb provides real estate but doesn’t own real estate. And Facebook provides content but does not produce content.
“We would be the largest virtual cloud provider who owns no servers. We would be using the Amazon data center,” he said, calling it the obvious next step for the company.
In the serverless space, AWS Lambda has a huge head start, The New Stack’s Lawrence Hecht reported recently, but competitors are lining up. Count Apache OpenWhisk, an open source project driven by IBM and Adobe, and OpenFaaS among them.
Elastigroup blends on-demand, reserved and Spot Instances to create a cluster that’s always available. It will provision servers to find the most economical balance but depends primarily on Spot Instances.
Similar to Auto Scaling Groups on AWS, Elastigroup enables you to maintain the minimum number of servers necessary to withstand server failure or predicted spot instance replacement. The number of servers could increase with demand and shrink again when unneeded to save money.
It automatically scales the number of servers up or down based on policy in which you have defined the minimum and the maximum number of servers required. If a server is unhealthy or an interruption is likely, it replaces it automatically to maintain the minimum number of servers.
In scaling down, it uses a combination of factors, such as highest risk, which instances which are closest to the next billing hour and age of the instance to determine which ones to terminate first.
Algorithms combined with current Spot market data and historical data predict when a Spot market fluctuation will occur. If the Spot instance price is too high, it automatically provisions on-demand instances to ensure that you are not paying more than the on-demand server price.
It integrates with applications and services including Kubernetes, Terraform, Jenkins, Code Deploy, OpsWorks and others.
The company maintains offices in San Francisco, London and Tel Aviv. It faces competition from Palo Alto-based Cmpute.io, which Cisco just acquired, but mostly from AWS itself, which offers Spot Fleet, an automated management service.
In a white paper, Amazon asserts that Spot Instances aren’t just for batch processing anymore. Customers are using them in production, it says, in application tiers that work with a load balancer; cache clusters such as Redis and Memcached; container platforms such as Amazon ECS and Kubernetes; NoSQL clusters; CI/CD pipelines and big data workloads such as Hadoop and Spark.
It reports average savings of 78.4 percent on Linux servers over on-demand instances and savings of 57.3 percent on Windows servers.
“The Spot market today already supports multiple use cases such as big data advanced financial modeling, software load testing and DNA sequence analysis. This market creates efficiencies that continue to lead to great new opportunities across a wide range of industries,” it says.
In a guest post for The New Stack, Shachar recently outlined has new features and changes to Spot Instances announced recently at Amazon’s re:Invent 2017 user conference. They include less frequent price changes, making bidding for Spot Instances optional, and a new feature called Hibernate for workloads that don’t require high availability. In essence, when an instance is terminated, your data is saved, then rebooted once the spare capacity is available again.
Feature image: The Spotinst crew at Serverlessconf New York 2017.