Skip to content

Specification/architecture for frontend cluster #36

@dokterbob

Description

@dokterbob

Thus far, we're serving all requests from a single nginx frontend node, running on a different provider.

As we now have have experience with Hetzner Cloud and linking it to he bare metal, we are ready to setup an actual frontend cluster and/or load balancing.

This issue serves as a place to clarify the specifications, after which the frontend can be deployed.

Considerations / observations

  • At least 3 Hetzner Cloud nodes for redundancy.
  • Hetzner Cloud nodes have NVMe in local RAID 10.
  • Hetzner offers a Load Balancer.
  • API requests are currently services from index nodes.

Questions

  1. Balancer: Hetzner or some FOSS solution, like HAProxy, or just DNS round robin?
  2. SSL termination: on frontend nodes or balancer?
  3. API requests: serve from frontend nodes instead of index nodes? (Requires more RAM)
  4. OpenSearch: run coordinating-only node on frontend nodes, or query from index nodes? (Requires more RAM and CPU)
  5. Caching: use Redis as shared cache for nginx or cache on local nodes, or a combination? Perhaps local NVMe makes a distributed disk-based cache a good solution, e.g. consistent distribution of queries based on hash of URL.
  6. Any further questions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions