We are thrilled to announce the immediate availability of our latest cloud pool, namely, the splitter cloud pool. Unlike other cloud pools, which act as easy to use abstractions over various cloud APIs, the splitter pool allows users to easily manage multiple cloud providers as if they are one. It does so by delegating both queries and update commands to the backend cloud pools it is configured to work with.
The splitter cloud pool can be used to have the elastisys cloud platform manage a large cloud deployment across multiple clouds, for instance, to let part of the deployment run on an OpenStack-based cloud and part run on Amazon EC2. How large part of the deployment should be deployed to each cloud is specified in the configuration file.
Your deployment, your rules
Because the splitter pool uses the same API as all other cloud pools, one could conceivably create arbitrarily complex tree-like configurations, making it possible to state, e.g., “Let 40% of our instances be in Amazon, and 60% be in City cloud. Of the ones in Amazon, let 90% be spot instances, and 10% on-demand instances. And of the City cloud ones, let 80% be deployed in London, and 20% in Sweden.”. This would require three splitter pools, one for the whole deployment, and one each for the Amazon and City cloud parts.
Apart from configuring what percentage of the deployment each underlying backend cloud pool should manage, and the connection details to each backend cloud pool, one can specify the policy the splitter cloud pool uses to calculate the correct sizes. In this first version, a strict policy that only enforces the specified percentages is provided, but work is underway for policies that e.g. take the number of pending requests into account — perhaps one could accept that a backend cloud pool takes over a larger fraction of the total deployment size if another cloud pool is slow to fulfill the requests? Do you have another policy in mind that matches your use case? Let us know in the comments below or via our public GitHub issue tracker!
The splitter cloud pool can be used as-is, or as part of your own software. Download it from the elastisys GitHub repo, or integrate it into your JVM application by using your favorite JVM dependency management tool, such as Maven, Ivy, or Gradle by depending on it from Maven Central.
Updated on 27 April 2015 to point to new open source implementation of splitter cloud pool, and altered text to reflect the new name.