Slide 1

Slide 1 text

Your tests will ask you to repeat Kirill Merkushev Scalable selenium infrastructure

Slide 2

Slide 2 text

2 less than 1

Slide 3

Slide 3 text

3 less than 10 1

Slide 4

Slide 4 text

4 less than 10 100 1 MORE than

Slide 5

Slide 5 text

5 Kirill Merkushev Open Source aerokube.com JAVA Go

Slide 6

Slide 6 text

6 driver Browser JAva Python JS BINDINGS WEBdriver protocol Internal protocol webdriver architecture

Slide 7

Slide 7 text

7 driver Browser JAva Python JS BINDINGS WEBdriver protocol Internal protocol selenium webdriver architecture WEBdriver protocol over NEt Selenium

Slide 8

Slide 8 text

8 Same tests

Slide 9

Slide 9 text

9 Same tests new env new errors? But

Slide 10

Slide 10 text

10 Same configuration? LOCAL SERVER

Slide 11

Slide 11 text

11 Same configuration? LOCAL SERVER

Slide 12

Slide 12 text

12 With stock selenium server your infrastructure is mutable

Slide 13

Slide 13 text

13 PlanWhat we have Alternatives one command to rule them all

Slide 14

Slide 14 text

14 WE HAVE SElenium server

Slide 15

Slide 15 text

15 driver Browser JAva Python JS BINDINGS WEBdriver protocol Internal protocol selenium webdriver architecture WEBdriver protocol over NEt Selenium

Slide 16

Slide 16 text

16 Official PROS

Slide 17

Slide 17 text

17 Official Widely used PROS

Slide 18

Slide 18 text

18 Official Widely used 44,902 Stackoverflow QA PROS

Slide 19

Slide 19 text

19 1 Browser = 1 server Cons

Slide 20

Slide 20 text

20 1 Browser = 1 server Setup All by yourself Cons

Slide 21

Slide 21 text

21 1 Browser = 1 server Setup All by yourself Cons java overhead

Slide 22

Slide 22 text

22 1 Browser = 1 server Setup All by yourself 44,902 Stackoverflow QA Cons java overhead

Slide 23

Slide 23 text

23 alternatives

Slide 24

Slide 24 text

24 alternatives selenium-standalone npm install -g

Slide 25

Slide 25 text

25 alternatives selenium-standalone start

Slide 26

Slide 26 text

26 alternatives selenium-standalone only local

Slide 27

Slide 27 text

27 alternatives selenium-standalone only local +npm!

Slide 28

Slide 28 text

28 alternatives zalando/zalenium github.com

Slide 29

Slide 29 text

29 alternatives zalando/zalenium github.com containers

Slide 30

Slide 30 text

30 alternatives zalando/zalenium github.com containers cloud providers

Slide 31

Slide 31 text

31 alternatives zalando/zalenium github.com containers cloud providers video

Slide 32

Slide 32 text

32 alternatives zalando/zalenium github.com 755MB

Slide 33

Slide 33 text

33 alternatives zalando/zalenium github.com 755MB MONOLITH

Slide 34

Slide 34 text

34 Aerokube Selenoid ui cm ggr .com

Slide 35

Slide 35 text

35 unix way do one thing, but do it well

Slide 36

Slide 36 text

36 cm selenoid start

Slide 37

Slide 37 text

37 cm selenoid start github.com/aerokube/cm

Slide 38

Slide 38 text

38 cm selenoid start containers (3/84)

Slide 39

Slide 39 text

39 cm selenoid start containers (3/84) driver, fonts, xfvb

Slide 40

Slide 40 text

40 cm selenoid start containers (3/84) driver, fonts, xfvb vnc

Slide 41

Slide 41 text

41 cm selenoid start containers (3/84) driver, fonts, xfvb vnc in seconds

Slide 42

Slide 42 text

42 cm selenoid start webdriver protocol implementation

Slide 43

Slide 43 text

43 cm selenoid start webdriver protocol implementation golang = single binary

Slide 44

Slide 44 text

44 cm selenoid start webdriver protocol implementation 7mb golang = single binary

Slide 45

Slide 45 text

45 Same on local and remote features

Slide 46

Slide 46 text

46 Same on local and remote features Queues

Slide 47

Slide 47 text

47 Same on local and remote features Queues Custom capabilities

Slide 48

Slide 48 text

48 Same on local and remote features Queues Custom capabilities Not only containers

Slide 49

Slide 49 text

49 Optimal configuration 1 browser 1xcpu 1GB RAM AUfs/overlayfs TMPFS

Slide 50

Slide 50 text

50 { "firefox": { } } browsers.json browser type

Slide 51

Slide 51 text

51 { "firefox": { "versions": { } } } browsers.json Versions map

Slide 52

Slide 52 text

52 { "firefox": { "default": "46.0", "versions": { "46.0": { "image": "selenoid/firefox:46.0", "port": "4444", } } } } browsers.json if not specified docker/binary

Slide 53

Slide 53 text

53 Need UI?

Slide 54

Slide 54 text

54 Need UI?

Slide 55

Slide 55 text

55 scalability resilience GGR

Slide 56

Slide 56 text

56 ggr Selenoid Selenoid alternative any selenium hub containers binary

Slide 57

Slide 57 text

57 ggr Selenoid Selenoid alternative any selenium hub containers binary ggr slb

Slide 58

Slide 58 text

58 works with any selenium hub Fully stateless Battle tested 2yrs GGR

Slide 59

Slide 59 text

59 Drawbacks

Slide 60

Slide 60 text

60 - Where UI for GGR?

Slide 61

Slide 61 text

61 - Where UI for GGR? /status - telegraf - grafana handle

Slide 62

Slide 62 text

62 GRAFANA aerokube/selenoid-grafana-example READY

Slide 63

Slide 63 text

63 - Too many tools to remember + configs + logs to manage

Slide 64

Slide 64 text

64 + configs + logs simple, no downtime upgrage docker log drivers - Too many tools to remember

Slide 65

Slide 65 text

65 - no video recording

Slide 66

Slide 66 text

66 - no video recording vnc separate solution for video

Slide 67

Slide 67 text

67 All for making your infrastructure immutable

Slide 68

Slide 68 text

68 6 months Support chat GitHub Stars 290 Docker pulls 10k Documentation Community 130 t.me/aerokube

Slide 69

Slide 69 text

69 How can it help you?

Slide 70

Slide 70 text

70 How can it help you? Easy to start

Slide 71

Slide 71 text

71 How can it help you? Easy to start Modular

Slide 72

Slide 72 text

72 How can it help you? Easy to start Modular Without overhead

Slide 73

Slide 73 text

73 How can help exactly you?

Slide 74

Slide 74 text

74 we are open to talk! aerokube.com github.com/aerokube t.me/aerokube kirill merkushev @delnariel github.com/lanwen