4. 4
• 10 Jenkins jobs (per each
banner)
• 10 Windows VM’s, each
runner has:
• Git
• Maven
• Browsers
What we had
Infrastructure overview
5. • Full setup for each new host
(Java, Maven, Chrome, FF,
Opera, etc.)
• Maintenance of existing host
• Debug of tests
5
What we had
Dedicated infrastructure
6. • To many jobs on
CI/CD tool
• Jobs are tied to
workers
• Complex config
• Artifacts
aggregation
6
What we had
Complicated CI/CD flow
7. What we had
Performance issues
• Degradation of tests on
long run
• Resources are not
released on some hosts
• JVM/Maven crash
• Browser freeze
7
8. What we had
Time of regression
• As we can’t extend parallels
test runs we a locked with
time of regression
8
10. Steps taken to improve
Implementing Selenoid
Advantages
• Ready containers with browsers
• Support of Chrome, FF, Opera
• Configurable resource consuming
• Video recording, VNC, logs (selenoid-ui)
• Quick start on any new project
• Load balancing via GGR
10
10
11. 11
Steps taken to improve
Kubernetes + Jenkins
Kubernetes
Master
POD1
POD2
POD3
13. Steps taken to improve
Moving Selenoid to Kubernetes
• Kubernetes support
• Easy to deploy
• Resources for each browsers configured
separately
• No need to install Ggr, Ggr-UI
• Free alternative to project Moon
13
16. 16
What We Get
• Time of regression reduced from 8
hours to 3
• Flaky test count decreased from 25%
to 5%
• Test infrastructure improved with same
amount of money
• Stateless runners
• Easy maintenance
• Easy scalability
• Simplification of CI/CD flow
• Resources consumption configuration
• Selenoid in Kubernetes
17. Existing cons
Tight snap to the pipeline which is
complicated
The difficulty of adaptation for different
projects
Tie on Jenkins that holds state of tests
Inefficiency of using spot instances
17
18. What do we
want to get
18
We want not to care about test infrastructure
We want not to care about what cloud to use
We want not to care about what CI tool to use
We want fast tests
We want fail tolerance tests
We want cost effective infrastructure
20. Report portal
• Real-time analytics
• Asynchronous real-time
reporting
• Visualization of auto test
results
• Machine Learning
• REST API
• Major test frameworks
support
20