department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
284 stars 206 forks source link

[Reverse Proxy / EKS] Validate solution approach using Traefik #33205

Closed jhouse-solvd closed 2 years ago

jhouse-solvd commented 3 years ago

Product Outline

Application Hosting and Deployment using Container Orchestration

Service Doc

Reverse Proxy

High-Level User Story

As a DevOps engineer on the Platform Operations team, I need to test the networking configuration of reverse proxy in EKS.

Note: The goal of this epic is to validate the solution approach using Traefik.

Hypothesis or Bet

If we test the networking configuration, then we expect to be able to compare the performance with the existing implementation of reverse proxy in BRD.

OKR

O3. Platform security and stability approach is comprehensive, on par with industry leaders

Definition of done

What must be true in order for you to consider this epic complete?

jhouse-solvd commented 3 years ago

To be able to compare, we will need to understand the baseline performance of the reverse proxy in BRD.

Some high-level thoughts on helpful metrics:

For the reverse proxy in BRD:

For the reverse proxy in EKS using Traefik

mleclerc00 commented 3 years ago

all the upfront issues that we were seeing with revproxy are now fixed

if you run

curl -L --header "revproxy-eks: true" dev-api.va.gov
curl -L --header "revproxy-eks: true" dev.va.gov

or use something like modheader in your browser to modify the header passed along with your request it will toss you through the eks revproxy https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj?hl=en

image

The listener rule on the dev revproxy alb will point at the eks revproxy when it captures the header revproxy-eks: true

rbeckwith-oddball commented 3 years ago

Commands used to generate the result files: (for i in {1..10}; do httpstat dev-api.va.gov --header 'revproxy-eks:true' ; sleep 10 ; done)>> ~/tmp/with_header.txt (for i in {1..10}; do httpstat dev-api.va.gov ; sleep 10 ; done)>> ~/tmp/without_header.txt

jhouse-solvd commented 2 years ago

This is done. See https://github.com/department-of-veterans-affairs/va.gov-team-sensitive/issues/365 for pending security review.