Cloud and the emergence of micro-services pose two challenges, besides cloud cost optimization, to the Selenium Grid based Distributed Automation solution for concurrent execution of UI automation.
First one is, in the world micro-services, teams wants to run their UI automated tests against the deployment of every Git branch (as part of validating a Pull Request before it is merged)
Speed will be an important factor in the pre-merge pipeline as described above. Using pure EC2 instance to scale Selenium Grid nodes is no longer feasible.
Kubernetes/Docker based solution is the best so multiple hub/nodes sets can be created, used and destroyed using Helm.
The second challenge posed by the Cloud is, multiple accounts.
Every company starts moving to Cloud with just one AWS account. But at a later stage, companies move into multiple accounts. With multiple accounts, accessing resources using private IP address becomes an issue.
This provides different problem like accessing hub using private IP address across different AWS accounts.
The solution to the second problem posed by Cloud is, Traefik with Kubernetes, Docker and Helm, which can help us reach the hubs within the Kubernetes cluster with a domain name for each hub like https://da-4eb769b.hub.test.expedia.com/grid/console
This talk is about why and how Distributed Automation based on Selenium Grid is implemented using Kubernetes and Traefik