Scalingo MongoDB Addon

Some operation requires our command-line tool to be installed.
Instructions are detailed in Command-Line Tool Documentation and installer page.

Scalingo MongoDB addon is the official addon provided by Scalingo, details on the available plans can be found here. This addon gives your app instant access to a MongoDB database running in its own Docker container.

Adding Scalingo MongoDB addon to your app

You can add the MongoDB addon through the Dashboard or through the command-line interface. The capacity of your database is elastic, you will be able to upgrade it later.

Through the Dashboard

  1. Go to your app on Scalingo Dashboard
  2. Click on Addons tab
  3. Select the addon you want to add
  4. In the dialog select the database plan you need
  5. Validate your choice

Through the command-line interface

$ scalingo -a example-app addons-add scalingo-mongodb 1g

-----> Addon scalingo-mongodb has been provisionned
       ID: example-app-3030
       Modified variables: [MONGO_URL SCALINGO_MONGO_URL]
       Message from addon provider: Database successfully created

This command will provision the application example-app with a 1g MongoDB database plan.

To find out what other plans are available:

$ scalingo addons-plans scalingo-mongodb

Getting your connection URI

Once the addon is provisioned, 2 environment variables are added to your app: SCALINGO_MONGO_URL and MONGO_URL. MONGO_URL is an alias to SCALINGO_MONGO_URL for the convenience of some libraries such as the framework Meteor or the Ruby gem mongoid, but using SCALINGO_MONGO_URL is prefered in most cases. To find out how to use them in your code please refer to Application environment.

In most cases, you can pass the variable directly to the client library you are using in your code. But sometimes the library requires a specific URI format, you’ll need to add a little bit of code to suit the library.

You can get those variables from the Dashboard or the command-line interface.

From the Dashboard

  1. Go to your app on Scalingo Dashboard
  2. Click on Environment tab
  3. MONGO_URL and SCALINGO_MONGO_URL are displayed

From the command-line interface

$ scalingo -a example-app env | grep MONGO

MONGO_URL=$SCALINGO_MONGO_URL
SCALINGO_MONGO_URL=mongodb://example-app-3030:2rj5FYoiKRFp8eZhpMz7@example-app-3030.mongo.dbs.appsdeck.eu:30949/example-app-3030

Remote access your database

If you need to access your database from other places than your app please follow the Access your database guide.

Changing plans

You can upgrade or downgrade your database plan whenever you need it. This operation happens instantly thanks to Docker containers and no manual input is required. When you change the plan, your database will be stopped then simply restarted on a new host with new parameters of the chosen plan. During the operation the connection is dropped bewteen your app and the database. Finally, after the operation is successful, the related app will be restarted.

From the Dashboard

  1. Go to your app on Scalingo Dashboard
  2. Click on Addons tab
  3. Select the addon you want to change
  4. In the dialog select the plan you want to upgrade/downgrade to
  5. Validate your choice

From the command-line interface

To upgrade or downgrade your addon the sub-command is the same: addons-upgrade.

$ scalingo -a example-app addons-upgrade example-app-3030 2g

In this example, example-app-3030 is the ID of the addon, and 2g is the plan we want to upgrade to.

To find out the addon ID:

$ scalingo -a example-app addons 

+------------------+------------------+------+
|       ADDON      |        ID        | PLAN |
+------------------+------------------+------+
| Scalingo MongoDB | example-app-3030 |   1g |
+------------------+------------------+------+

Database dashboard

The Scalingo MongoDB dashboard is the central place for administrative tasks such as:

  • Monitor database and system stats
  • Upgrade the database engine version
  • Activate database specific features (e.g. Oplog for MongoDB)
  • Manage database users
  • Manage backups

Database Upgrade

When the database vendor releases a new version of your database engine, we will try to provide it as soon as possible. You will have the choice to upgrade your database with just one click through your database dashboard.

This operation is similar to changing your database plan; your database will be stopped and restarted with new database environment. Thanks to Docker containers this happens seamlessly and quickly without manual action. When this operation finishes, your application will be restarted.

Beware that no downgrade is possible once your database has been upgraded.

Container Stats

CPU usage Current CPU usage.
Memory usage Display the current, hightest and free memory. Highest is the maximum memory recorded since database restarted.
Swap usage Display the current, hightest and free swap. Highest is the maximum swap recorded since database restarted.

Database Stats

MongoDB index size Index size reported by MongoDB, for the best performance this value should fit in the memory size.
Data size Logical space reported by the database.
Database on disk size Effective physical space used.

Backups

If your database is in a paid plan (i.e. It’s not “free plan”), we’ll make automated backups of your database on a daily basis, at around 1 AM Central European Time (CET or UTC+0100). However, we don’t keep those backups forever. The following rules are applied for backups storing:

  • Everyday for the past 30 days (1 month)
  • One per week during the 2nd and 3rd months
  • One per month during the 4th, 5th and 6th months

Download automated backups

Automated backups are listed in the database specific dashboard.

  1. Go to your app on Scalingo Dashboard
  2. Click on Addons tab
  3. Click Link to dashboard which will take you to the Scalingo MongoDB dashboard
  4. Click on Backups tab
  5. Download the backup you want

Manual database backup

If you wish to manually backup your database, please follow How to dump and restore my MongoDB database on Scalingo guide.

MongoDB Oplog

Oplog is a MongoDB feature which logs all the operations achieved on a MongoDB cluster. This feature is tightly related to MongoDB replication, but is also used by Meteor to increase app performance. If you wish to use Oplog in your application please refer to the official MongoDB documentation. Oplog can be enabled from the database dashboard, when activated it wil automatically add the MONGO_OPLOG_URL variable in your application.

Activating Oplog

  1. Go to your app on Scalingo Dashboard
  2. Click on Addons tab
  3. Click Link to dashboard which will take you to the Scalingo MongoDB dashboard
  4. Click on Advanced tab

Meteor specific

Meteor uses this feature to sync different instances of an application. Your can read more about how to scale Meteor here.

The variable MONGO_OPLOG_URL is the one used by Meteor. As a result, after activating Oplog you juste have to restart your application.

schedule 11 Jan 2016