Mohammed Naser 6dbb9475f9 Initial commit
This initial commit includes support for Mcrouter, Memcached,
basic CI tests as well as Helm charts for deploying things.

Depends-On: https://review.opendev.org/713107
Depends-On: https://review.opendev.org/713115
Change-Id: I0b1ab6d8e716460e095bc3953614e336620f984e
2020-03-17 19:38:31 -04:00

1.1 KiB

Mcrouter

Mcrouter is a memcached protocol router for scaling Memcached deployments. It is a core component of cache infrastructure at Facebook and Instagram where Mcrouter handles almost 5 billion requests per second at peak.

OpenStack usually comes down to a halt if one of the Memcached instances don't respond anymore. Mcrouter is used to enable high availability and redundancy so that any Memcached outages will not affect the OpenStack services.

The only two possible reasons that we can have a full system slowdown at the moment remains:

  • All backends (Memcached instances) are all down
  • All Mcrouter replicas are down

The first probably means there's a bigger issue in play, the latter will likely automatically recover by Kubernetes ensuring that replicas come back up. Also, due to the fact that the service is exposed as a ClusterIP, it only takes a single replica to be up for everything to come back to start working again.

Example

apiVersion: infrastructure.vexxhost.cloud/v1alpha1
kind: Mcrouter
metadata:
  name: sample
spec:
  route: PoolRoute|default
  pools:
    default:
      servers: ['10.0.0.1:11211', '10.0.0.2:11211']