OpcotechOpcotech

RethinkDB - Infrastructure Recovery

RethinkDB's release infrastructure needed recovery and modernization with the least possible disruption on existing installation and update workflows. The rebuild had to preserve repository compatibility, package signing, and the established download domain while supporting reliable software distribution across Linux environments.

Open-source Software

Results

  • Infrastructure provisioning

    UI-managed Linode VMsTerraform-managed DigitalOcean Droplets

  • Server configuration

    Manual server configurationAnsible-managed configuration

  • Recoverability

    Lack of backupsAutomated daily and weekly backups

Challenge

RethinkDB's release infrastructure served more than downloadable binaries. It supported package repositories and installation workflows used by developers, servers, and automated environments. Changing that infrastructure was therefore not just a matter of replacing a server. Repository paths, package signing, Linux distribution compatibility, and existing installation instructions all had to be considered. A change to the download infrastructure could affect users who depended on those repositories to install or update RethinkDB.

Constraints

  • Infrastructure as Configuration: Make the new infrastructure and its changes reviewable.
  • Community Maintainability: Everyone can maintain the code, privileged users can access server.
  • Reproducible Server Setup: Ensure that servers can be recreated with everything installed.
  • Lost Release Artifacts: Re-package all lost artifacts and make them available for download again.
  • Keep the Ecosystem Working: Switching to the new infrastructure must be quick and painless.

What changed

Opcotech recreated RethinkDB's download and update-checker servers from the ground up on DigitalOcean using Terraform and Ansible to ensure reproducible server setup.

Architecture

Terraform creates the DigitalOcean Droplets, configures the automated backups and SSH keys. Once up and running, the server configuration and security hardening is done by Ansible, as well as the Nexus OSS and update-checker configuration and setup.

Decisions

Managing Infrastructure with Terraform

Terraform was selected to provision the DigitalOcean infrastructure, including Droplets, SSH access configuration, and automated backups. Defining these resources as code provides a reproducible infrastructure configuration and reduces dependence on manually maintained cloud resources.

Automating Configuration with Ansible

Ansible was used to configure and secure the provisioned servers, including system hardening, Nexus Repository OSS, and the update-checker service. Separating infrastructure provisioning from server configuration keeps responsibilities clear and allows the environment to be recreated using repeatable automation.


Details

Rebuilding RethinkDB's Release Infrastructure

RethinkDB's release infrastructure was more than a place to download binaries. It was part of the software distribution process, serving package repositories and supporting installation and update workflows across developer machines, servers, and automated environments.

These dependencies made infrastructure changes particularly sensitive. Existing repository URLs, package signing requirements, and Linux distribution compatibility all had to be considered when replacing the underlying services.

Opcotech was responsible for recreating the download and update-checker infrastructure on DigitalOcean, introducing infrastructure-as-code and automated configuration management while minimizing disruption to established distribution workflows.

Provisioning the Infrastructure with Terraform

The first part of the rebuild involved defining the underlying cloud infrastructure using Terraform.

DigitalOcean Droplets, SSH key configuration, and automated backups were incorporated into Terraform-managed infrastructure resources.

This replaced reliance on the specific state of individual servers with a declared infrastructure configuration that could be reviewed, maintained, and applied consistently.

The approach also established a clearer operational boundary: cloud resources are provisioned through Terraform, while software installation and operating system configuration are handled separately.

Automating Server Configuration and Security

Once the infrastructure is provisioned, Ansible takes responsibility for configuring the servers.

This includes system configuration, security hardening, and installation and configuration of the services required for RethinkDB's release infrastructure.

The artifact repository is provided by Sonatype Nexus Repository OSS, while the update-checker service supports the project's existing software update functionality.

Automating these operations reduces the amount of manual intervention required to configure a replacement server and makes the intended configuration explicit.

Rather than treating each server as a separately maintained environment, the setup can be reproduced from its infrastructure and configuration definitions.

Maintaining Distribution Compatibility

One of the most important considerations was preserving the interfaces that existing RethinkDB installations depended on.

Package repositories are consumed by operating system package managers, installation scripts, and automated provisioning systems. Changes to repository locations or signing arrangements can break installation and upgrade workflows even when the underlying packages remain available.

The rebuild therefore had to account for the established download domain, repository paths, package signing, and compatibility with supported Linux distributions.

These requirements shaped the infrastructure migration, keeping the focus on restoring the underlying services without unnecessarily changing the interfaces exposed to users.

Establishing a Reproducible Operational Foundation

The rebuilt infrastructure brings cloud provisioning, server configuration, security hardening, and service deployment into a structured automation workflow.

Terraform describes the DigitalOcean resources, while Ansible defines how the servers are configured and how Nexus OSS and the update-checker are installed and managed.

This separation makes the infrastructure easier to understand and recreate without relying on the configuration of a particular running server.

The result is a more maintainable release infrastructure foundation, with repeatable server setup and a clearer recovery path for the services responsible for distributing RethinkDB to its users.

Related Services