Auto Updates

GRAX releases security, performance patches, bug fixes, and feature improvements multiple times a day on average. With automatic software updates, GRAX updates itself to the latest safe and tested release every day so that you never have to deal with the frustration of running into an already known and fixed bug or being told to "update and try again" by GRAX Support.

This feature cannot be disabled.

Warning for Slug-based Platforms

On platforms like Heroku or Docker, applications can be configured in such a way that they always boot from a pre-selected image or slug. In these cases, if GRAX updates itself on disk, the latest version is newer than that of the slug. GRAX's internal schema management is such that reverting to old versions may prove fatal to an app and require manual intervention. Updating on boot helps prevent this issue, always keeping the code on the latest release. If this update fails on boot, the app won't be allowed to boot to an old version.

How Does it Work?

The GRAX app checks in with hq.grax.com daily to verify the latest version. If a newer version than the local code exists, the app downloads the latest version and install it in place over the previous version. It then restarts the app in place. The data operations (backup, archive, restore) of the app, if running, won't be harmed by these restarts or downloads. The app resumes processing tasks when it comes back online.

The app also performs a version and update check on every boot to avoid accidentally reverting to older versions. See note above about slug-based platforms.

Can I Manually Update?

Yes; the General Settings page contains a manual "Update Now" button. When pressed, the GRAX app performs version checks against hq.grax.com and replaces the running app if necessary.

Can I Control the Update Schedule?

You can not customize the update schedule or perform an unattended software rollback.

Daily auto updates are the primary mechanism for GRAX to maintain, improve and monitor production service reliability, performance and security over time.

GRAX has many internal mechanisms in place to make sure updates work:

  • Internal Continuous Integration (CI) practices to detect issues during development
  • Proactive monitoring and alerting around all live customer environments
  • Quick deploy capabilities for emergency security and reliability fixes
  • Internal root cause analysis and remediation tracking for all customer facing production incidents

This eliminates the need for customers to manage update schedules, maintenance windows, and perform upgrades themselves.

Can I Control What Version of GRAX is Running in Self-Managed Environments?

Self-managed GRAX offers total control over where your data goes, as well as who has access to the infrastructure.

It does not, however, offer total control over the GRAX software. GRAX Inc., maintains control over its own internal development, testing and release process like all third party software and service providers.

Previous versions of GRAX required manual operations to update the backend software. This control left many customers running a significantly out of date product. One of the top shared concerns was that production environments didn't get critical security and reliability updates in a timely fashion. Another common occurrence was that customers would open support cases for issues that have long been resolved.

We found that across the customer base, manual updates effectively meant no updates, with most customer environments falling 30, 60, 90+ days behind. Catching up required scheduling lengthy maintenance windows, running manual database migrations and data back-fills, and re-training on 3 months of product changes at once.

Auto Updates has alleviated all of these problems, keeping everything up to date with the latest security patches and improvements. Just like your web browser and other software services.

The major tradeoff is that it offers customers less control over the frequency of production changes. However, if an update does introduce a regression or unwanted change, it greatly increases the speed at which we find and correct problems.

What If An Update Breaks GRAX?

If your production GRAX environment is completely offline to login or to make backups, start by opening a "Critical Production Issue" on https://www.grax.com/help/. This opens a priority support case for GRAX to track the problem to resolution.

GRAX's proactive monitoring and alerting means that GRAX also rapidly detects production problems and should be able to root cause, develop a fix, and update an environment without any customer action if it is a release defect.

While you are waiting for a response from GRAX support and your next automatic update, we recommend you review your own infrastructure logs and metrics to determine if there are underlying infrastructure issues that could cause the problem, like a full disk or database in read-only mode.

Further Reading

GRAX recommends Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations as scientific study on how faster and more frequent deploys lead to higher reliability.