Rather than use Selenium Grid, I’ve preferred Selenoid. I’ve been using it for the past two years or so, with great results. In fact it replaced the need to rely on 3rd party services (like Browserstack or Lambdatest). Third party services are awesome, except for the price to run parallel tests. These quickly become costly, and it’s much more efficient to duplicate their capability in-house. That’s where Selenoid comes in.
Selenoid is a concept similar to Selenium Grid, however Selenoid is written in Go and extremely fast with low memory and cpu consumption. Tests reference the Selenoid server as a remote web driver, similar to how we would set it up for Selenium Grid. The Selenoid server itself runs as a Docker container. It has a backend and a frontend. The backend API is what the tests will call to, and the front end allows for validation of tests in progress, and if you select to capture a screen capture (video) of each test, it will appear in the front end as well.
To install Selenoid, check over their Docker install documentation at: