DataONEorg / api-entrypoint

The DataONE Kubernetes cluster's API ingress controller component that is shared between microservices
0 stars 1 forks source link

Reverse proxy / load balancer options #2

Closed gothub closed 2 years ago

gothub commented 3 years ago

Please view the related post: https://github.com/DataONEorg/api-entrypoint/issues/1

If a decision to use a reverse proxy (RP) / load balancer is made here are a couple of options, with some highlights of each option listed.

  1. HAproxy
    • http://www.haproxy.org/
    • TCP, TCP-SSL, HTTP and HTTPS load balancing
    • flexible health checks and failover conditions
    • Basic caching (v1.8 - 2017)
    • Customizable log format, to import access logs to kibana/splunk/graylog
    • Detailed status page, to see active requests and servers status
    • Exportable metrics, to integrate with monitoring solutions (graphite/prometheus/datadog)
    • More high-performance oriented. Better indicated to handle 100k connections or 40 GbE interfaces.
  2. Apache http
  3. NGINX
    • https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
    • HTTP and HTTPS load balancing (TCP - UDP in paid edition)
    • More flexibility on caching
    • Customizable log format, to import access logs to kibana/splunk/graylog
    • No status page (paid edition only)
    • No exportable metrics (paid edition only)
    • Can serve local files
    • Can serve FastCGI applications (not CGI)
    • Nginx is open core and many features are only available in the paid edition
gothub commented 2 years ago

This is now maintained and described in the k8s-cluster repo, here