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.
- Frontend: https://github.com/sealuzh/cloud-stove-ui
- Docs: https://docs.thestove.io/
You can access the current stable Cloud Stove release at app.thestove.io and sign up for a free account. Check out the user guide for more information.
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.
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.
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.
An admin user with the email [email protected]
and the password admin
is created while seeding the database.
Change the default password with the rake task:
rake user:update_admin[new_password]
Planning and development of the Cloud Stove is coordinated using GitHub wiki, issues, milestones, and pull requests.
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.