The Cloud Stove
The Cloud Stove gives users deployment recommendations for their cloud applications. Application instances are derived from generic blueprints and enriched with the specific characteristics and requirements of the application to be deployed. Blueprints are generic application scaffolds that represent different application architectures to capture relevant differences in overall deployment strategies. Deployment recommendations are created by optimizing the use of available provider offerings with respect to the captured application specifications and requirements.
Contributing to the Cloud Stove
Want to help make Cloud Stove better with your contribution? Great! Check out the contribution guide for information on how to get your development environment up and running, and start contributing to the Stove. Furthermore, the architecture and API is described in the developer guide.
CI & Deployment
Since the Cloud Stove is largely follows 12factor app guidelines, deployment is relatively easy. We host a public deployment of the Cloud Stove on Heroku. You can also easily run your very own Cloud Stove deployment either on other buildpack-based PaaS like Cloud Foundry. For deployments on bare infrastructure, refer to the contribution guide for steps necessary to get the application up and running.
The Public Cloud Stove
Every push to the GitHub repository will initiate a CI build on wercker. The current status of our CI builds is shown below.
Successful CI builds are then deployed to a Heroku pipeline with a staging application at https://staging.backend.thestove.io. To inspect and modify the staging app's configuration use the application dashboard.
The app uses the rake-deploy-tasks buildpack to automatically run pending migrations on deploy, as well as the vendorbinaries buildpack to pull in a custom MiniZinc release for generating recommendations.
The recommended way to deploy Cloud Stove is with Heroku. You can deploy the app using their
free dynos and the free PostgreSQL plan for test installations. To run the application, you will need one
web dyno for the Rails application, a
worker dyno to run background jobs, and an additional
web dyno (probably deployed as separate application) for the AngularJS frontend. For production deployments, you should move to paid dynos to prevent your application from sleeping once your free dyno hours are spent.
To get started quickly, deploy the Cloud Stove using the button below:
The application requires a set of config variables to successfully enable all features. You will need to configure the
rake-deploy-tasks buildpack to execute migrations on deploy, as well as provide access tokens for Azure, Digital Ocean and Atlantic.net.
heroku config:set \ DEPLOY_TASKS=db:migrate \ DIGITALOCEAN_TOKEN=XXXXX \ AZURE_SUBSCRIPTION_ID=XXXX \ AZURE_TENANT_ID=XXXXX \ AZURE_CLIENT_ID=XXXXX \ AZURE_CLIENT_SECRET=XXXXX \ ANC_ACCESS_KEY_ID=XXXXXX \ ANC_PRIVATE_KEY=XXXXXX
As you can see, you will need API keys for Digital Ocean, Microsoft Azure, and Atlantic.net to successfully retrieve pricing data from these providers.
Change admin password
An admin user with the email
firstname.lastname@example.org and the password
admin is created while seeding the database.
Change the default password with the rake task:
Communication & Organization
In the Cloud Stove Roadmap, we discuss upcoming features and define milestones and issues to implement them.
Daily communication and coordination happens in
#cloud-stove at the s.e.a.l. Slack.