System Overview

Nexmo Developer is a simple Rails application with a mounted Sinatra app that handles the rendering of the API References.

Deployment

NDP is hosted in Heroku and is automatically deployed every time a branch is merged into main via a Github integration. In case you want to force a deploy, you can always deploy NDP from Heroku’s dashboard.

Required Resources

How to diagnose problems with NDP

Logs

We use Logz.io as a logging solution with a 3Gb daily volume and 3 days retention plan, as an alternative you can always check Heroku's logs which expire after one week.

Error Monitoring and Reporting

We use Bugsnag for monitoring errors both on the Backend and Frontend splitted into different Projects. Bare in mind that most of the errors are logged under Markdown#show so it might take a while to find a specific error.

Health checks

We use Pingdom to monitor NDP’s health, and email notifications are sent when the site is Down/Up.

Caching

We currently cache the sidenav and the information we fetch from Greenhouse in order to render the careers page. The cache is cleared as part of the deploy process, so when facing a caching issue, just trigger a new deploy or run the following rake task in Heroku rake cache:clear.

Troubleshooting Production issues

In case NDP is Down:

Available configuration options

Configuration management

When running NDP locally, dotenv loads the corresponding environment variables from .env to ENV. However, when the app is deployed to Heroku the evnvironment variables are set in Heroku's dashboard.

Enabling Search locally

To enable the Search form locally, the ALGOLIA_SEARCH_KEY environment variable needs to be set, the rest of the configuration is defined in config/algolia.yml

Common issues when running NDP locally

NDP can be run locally either directly or using Docker, for more information about how to run it see the Readme. When using docker, re-building the image should fix the following issues