Deployment For Clients
Overview
Surfly application consists of 23+ services. All of them are containerized and
run with Podman. Podman containers are managed by systemd with services which are prefixed with ss-
.
Storage services (SQL and in-memory databases - Redis, PostgreSQL) are normally managed separately by clients as external services. See on-premise documentation. Surfly optionally provides an automated script to set it up on the server itself.
During the installation process, the container images of services are pulled from the Surfly registry. The images of officially released versions are retained in the registry for 720 days. The other images are retained for 5 days.
To complete the installation process, a client requests a build file from our build server. The build file contains personalized configuration files for Surfly installation and a license file. The build file is downloaded from storage serverand cached for 1 day.
Minimum deployable version
Surfly releases a new version, on average, 2 to 6 times a month. We highly recommend using the latest version for optimal performance and security. However, if you are unable to do so, we also make efforts to ensure that older Surfly versions remain deployable.
The deployability of older versions is subject to certain conditions:
Availability of container images in the registry
Changes in system packages which are required for Surfly to function correctly (see up-to-date list here)
Changes in system packages required for Surfly to build
The version of the Surfly
setup
script. Regardless of the Surfly version you intend to deploy, the latest version of the setup script is required.
We are actively working to minimize system dependencies for both building and running Surfly, ensuring smoother deployment experiences.
Please note that Surfly does not support versions that rely on operating systems that have reached End of Life (EOL) status.
Major Surfly versions are supported for 1 year. The support is often extended and follows the base OS release cycle (CentOS Stream).
Roadmap
Minimize the number of system packages required for Surfly to operate and build.
Transfer the generation of configuration files from the build server to the installation process on the server itself. This optimization aims to accelerate deployment and decrease reliance on system packages necessary for building Surfly.
Implement a distribution-independent installation process. We will define the minimum version of container engine, Linux kernel, and other essential system packages required for Surfly to function. This approach will enable easy installation on any modern Linux distribution.
We plan to complete the mentioned improvements in Q4 2024 with Surfly v5 release.