2024 Software Architecture

Discover our Public Cloud offer

Shared Hosting for Everyone, imagined by developers, for developers.

Discovering the Public Cloud

Major Changes

  • SSL is now required for mail protocols (IMAP, SMTP, POP3) and remote access (FTP, WebDAV) protocols
  • MongoDB and CouchDB databases are removed
  • MariaDB has been upgraded to version 10.11
  • PostgreSQL has been upgraded to version 16

SSL Encryption Required for Mail and Remote Access

SSL encryption is now mandatory for connecting to the following protocols:

  • Mail: IMAP, SMTP, POP3
  • Remote access: FTP and WebDAV

This does not apply to your websites, which are still accessible without encryption (although you can choose to force encryption).

Supported TLS Versions

  • TLS 1.2 and 1.3 are supported.
  • TLS 1.0 and 1.1 are no longer supported.

This does not affect your websites, where you can still configure TLS yourself.

End of MongoDB Support

MongoDB has switched to the SSPL license, which legally prevents us from continuing to offer MongoDB database hosting. Consequently, MongoDB databases will be removed during the migration, and no new ones can be created.

You can:

  • run MongoDB yourself in a service. MongoDB will no longer be managed by alwaysdata. If you’re a private cloud customer, we can help you do this.
  • migrate your databases to MongoDB Atlas.

End of CouchDB Support

We introduced support for CouchDB in 2011, but its use has remained limited (less than 0.4% of our clients in 2024). Therefore, we are ending support for CouchDB: databases will be removed during the migration, and no new ones can be created.

You can:

  • run CouchDB yourself in a service. CouchDB will no longer be managed by alwaysdata. If you’re a private cloud customer, we can help you do this.
  • migrate your databases to third-party hosting service such as Cloudant.

MariaDB Upgrade

MariaDB has been upgraded to version 10.11.

You can check the release notes (your current version is displayed under Databases > MySQL):

PostgreSQL Upgrade

PostgreSQL has been upgraded to version 16. You can view the release notes (your current version is displayed under Databases > PostgreSQL).

PostGIS has been upgraded to version 3.4 (previously 3.1).

Language Versions

Switch to Major Versions

A few months ago, we introduced the possibility to select a major version of a language instead of a specific minor version. This automatically uses the latest available minor version, including the latest fixes.

The migration will automatically replace all selected versions with the corresponding major version. For example, PHP 8.3.1 will be replaced by PHP 8.3, which runs the latest available 8.3.x version. When new versions of PHP 8.3 are added, they will replace the previous version.

You will still have the option, after the migration, to select a specific minor version, which will then run without automatic updates.

Available Versions

Here is the list of available minor versions:

LanguageAvailable Versions
PHP4.4.9 5.2.17 5.3.29 5.4.45 5.5.38 5.6.40 7.0.33 7.1.33 7.2.34 7.3.33 7.4.33 8.0.30 8.1.28 8.2.19 8.3.7
Python2.4.6 2.5.6 2.6.9 2.7.18 3.3.7 3.4.10 3.5.10 3.6.15 3.7.17 3.8.19 3.9.19 3.10.14 3.11.9 3.12.3
Ruby1.8.7-p374 1.9.3-p551 2.0.0-p648 2.1.10 2.2.10 2.3.8 2.4.10 2.5.9 2.6.10 2.7.8 3.0.7 3.1.6 3.2.4 3.3.2
Node.js6.17.1 8.17.0 10.24.1 12.22.12 14.21.3 16.20.2 18.20.3 20.14.0
Elixir1.13.4 1.14.5 1.15.8 1.16.3
Java8.0.412 11.0.23 17.0.11 21.0.3
Deno1.43.5
.NET6.0.31 8.0.6

In particular, several non-LTS versions have been removed:

  • Node.js: 9, 11, 13, 15, 17, 19, 21
  • Java: 14
  • .NET: 5

If you were using one of these versions, it will be replaced by the next major version.

Miscellaneous Updates

The operating system is being upgraded from Debian 10 (Buster) to Debian 12 (Bookworm). Consequently, many software and libraries will be upgraded. Among the notable upgraded:

  • Erlang 25.2 (previously 21.2)
  • GDAL 3.9 (previously 2.4)
  • git 2.45 (previously 2.20)
  • Go 1.22 (previously 1.17)
  • MapServer 8.0 (previously 7.4)
  • PROJ 9.4 (previously 5.2)
  • QGIS 3.34 (previously 3.4)
  • RabbitMQ 3.10 (previously 3.7)

On Private Cloud

  • Redis, if installed on your server, is upgraded to version 7.0 (previously 6.0).
  • MySQL, if installed on your server, is upgraded to version 8.0.
  • Elasticsearch, if installed on your server, is upgraded to version 8.16.

Miscellaneous

  • The composer command now runs Composer 2. You can start Composer 1 with the composer1 command.
  • The default HTTP log format is now the Advanced format.
  • Sites of type Transparent Redirect are converted to Reverse Proxy.

Tips & Common Issues

  • You can make some changes yourself before the migration, such as selecting major language versions, using the Advanced log format, or modifying your sites from Transparent Redirect to Reverse Proxy.

  • Your account will be moved to new servers during the migration. Addresses of type [service]-[account].alwaysdata.net will change their IP and may not be immediately accessible from outside due to DNS propagation.

  • It will be necessary to update your local known_hosts file to connect via SSH. You can do this using the following command ([account] should be replaced with your account name):

$ ssh-keygen -R ssh-[account].alwaysdata.net

Errors following Migration

  1. cannot open shared object file: No such file or directory

Updating certain system libraries requires recompilation of the code that uses them. The following libraries are affected:

  • libtiff

Generally, these libraries are not used directly by applications but via dependencies (PHP extension, Python module, Ruby gem, etc.). Simply reinstall these dependencies on the new infrastructure to resolve the issue.

Why Enforce a Migration?

The main goal of architecture migrations is to update our servers to a more recent version of their operating system (Debian). These updates are essential for two reasons:

  • Security. Old software versions are not supported indefinitely by their developers or distributors. When a software version reaches its end-of-life, it continues to function, but new security vulnerabilities are no longer patched. Continuing to use old versions would pose a risk to the security and reliability of your applications and data.

  • Ability to run recent software versions. The older the operating system, the more difficult it becomes to run recent software. To continue offering the latest versions of software (or for you to install the latest versions yourself in your account), it is important to be on a relatively recent version of the operating system.

These infrastructure migrations are carried out every four years, which corresponds to the lifespan of a Debian version (which is five years, but we account for the unavoidable internal development time before switching to new versions). This provides a good balance, avoiding too frequent migrations while ensuring support for nearly all recent software.