SlideShare a Scribd company logo
Software Development Done Right
Scalable  QA
with  Docker
1
Maarten  van  den  Ende – @mjvdende
Adé  Mochtar  – amochtar@xebia.com
Introduction
Maarten  van  den  Ende
Test  Automation  Architect
@mjvdende
Adé  Mochtar
Data  Center  Automator
amochtar@xebia.com
2
Slides
http://bit.ly/tw-­scale
3
Code  Examples
4
$  git  clone https://github.com/xebia/scalable-­‐qa-­‐with-­‐docker.git
$  cd  scalable-­‐qa-­‐with-­‐docker/
$  vagrant up
Download  data.zip from http://bit.ly/tw-­‐scale-­‐data
and  unzip  in  scalable-­‐qa-­‐with-­‐docker/  dir
1
2
3
5
Scaling  tests  is  hard
6
Test  environment  hard  to  
maintain
7
Adding  resources  takes  time
Selenium  Grid  to  
the  rescue
Use  Grid  to  run  all  your  tests
One  interface  for  testing  all  the  browsers
Fixed  set  of  browsers  nodes  are  at  your  
disposal,  ready  for  more
8
9
Selenium  Grid  Over  Time
Selenium  Grid  Over  Time
10
Not  enough  
nodes  
configured
- For  example:  
growing  need  to  
regression  test  
each  branch  
after  each  
commit
So  you  really  need  to  take  care  of  
your  selenium  grid...
Selenium  Grid  
hard  to  
maintain
- Browser  updates
- Selenium  
updates
Selenium  Grid  
stability
- Selenium  nodes  
go  out  of  
memory
- Browser  timeouts
11
12
How  To  Scale  Properly
How  to  scale  properly
Start  test
- Scale  up
- Start  nodes  when  
needed
- Start  different  flavor
End  test
- Scale  down
- Remove  nodes
Ready  for  More!  
13
Server  X
Source  
Repository
Continuous  
Integration  
Datacenter  Y
Testrunner
Chrome  node
Testrunner
Chrome  node
TestrunnerSystem  
Under  Test
Next  60  minutes
1. Setup  environment
2. Selenium  job
3. Setup  selenium  grid
4. Add  node  to  grid
5. Scale  the  grid
14
15
1.  SET  UP  ENVIRONMENT
Set  up
Start  environment
16
Host  OS
Virtualbox -­ Virtualisatie
Infrastructure
Docker
Guest  OS
CoreOS
App  1 App  2
Guest  OS
CoreOS
Docker
App  3 App  4
$  vagrant  up
Bringing  machine  'core-­‐01'  up  with  'virtualbox'  
provider...
Bringing  machine  'core-­‐02'  up  with  'virtualbox'  
provider...
==>  core-­‐01:  Importing  base  box  
'coreos_766.3.0.box'...
==>  core-­‐01:  Matching  MAC  address  for  NAT  
networking...
==>  core-­‐01:  Setting  the  name  of  the  VM:  
scalable-­‐qa-­‐with-­‐docker_core-­‐
01_1443034087957_90607
==>  core-­‐01:  Clearing  any  previously  set  network  
interfaces...
==>  core-­‐01:  Preparing  network  interfaces  based  
on  configuration...
1.  SET  UP
What  are  Vagrant  &  Virtualbox
Virtualbox
- Runs virtual  machines  on  your  machine
- Cross platform  (OS  X,  Windows,  Linux)
- Open  source
Vagrant
- Utility  for  building  development  environments
- Utility  for  distributing  these  environments
- Vagrant  cloud  
- Open source
Vagrant  +  Virtualbox  provide  reproducible  
environments,  ideal  for  dev  and  test
17
1.  SET  UP
What  is  Docker
Platform  for  building,  shipping  and  running  
applications
Standardized  container  format
- Application  packaging
- Isolation
- Distribution
Runs  any  app,  everywhere
18
1.  SET  UP
What  is  Docker
Lightweight
- Share  system  kernel  and  
common  files
Open
- Runs  on  Linux (and  
Windows)
Secure
- Isolate  applications
Share  and  collaborate
- Store,  distribute  and  
manage  Docker images  in  
docker registry
Scale
- Containers  spin  up  in  
seconds
Accelerate  developer
- Copy  production  code  and  
run  locally
Empower  developer
- Free  to  use  the  best  
language  for  the  job  
without  causing  conflict  
issues
Eliminate  environment  
inconsistencies
- Shipping  the  application  
with  configs and  
dependencies  as  a  
container  
19
1.  SET  UP
What  is  CoreOS
Bare  Linux  OS,  designed  to  
run  Linux  Containers  like  
Docker
Designed  for  security,  
consistency,  and  reliability
No  package  manager  ,  have  
to  run  everything  in  a  
container
Clustering  is  first  class  citizen
Automatic updates
20
1.  SET  UP
CoreOS  components
Docker  -­ Container  runtime
Etcd  -­ Distributed  K/V  store,  basis  for  
clustering
Fleet  -­ Basic  scheduler
Systemd  -­ Service  manager
Flannel  -­ Networking  between  containers
21
1.  SET  UP
CoreOS Unit  Files
22
[Unit]            
Description=petclinic
After=docker.service          
Requires=docker.service
[Service]            
Restart=always
RestartSec=5            
TimeoutStartSec=0            
ExecStartPre=-­‐/usr/bin/docker pull  docker-­‐registry:5000/petclinic
ExecStartPre=-­‐/usr/bin/docker kill petclinic
ExecStartPre=-­‐/usr/bin/docker rm petclinic
ExecStart=/usr/bin/docker run  
-­‐p  8282:8080  
-­‐-­‐name="petclinic"  
docker-­‐registry:5000/petclinic
ExecStop=/usr/bin/docker stop  petclinic
1.  SET  UP
Up  and  Running
System  under  test
- Petclinic
Source  Repository
- Gitbucket
Continuous  Integration
- Jenkins
23
1.  SET  UP
core-­01
Source  
Repository
Continuous  
Integration  
System  
Under  Test
core-­02
24
2.  SELENIUM  JOB
Run  test  job  on  Jenkins
Create  test
Commit  &  Push
Run  test
25
Core  01
GitBucket Jenkins
Testrunner
2.  SELENIUM  JOB
Does  it  scale?
No,  Why  not?
Test  fixed  to  specific  selenium  node
What  if
- Different  browser  tests
- +100  tests?
- Selenium  upgrade
26
2.  SELENIUM  JOB
27
3.  SETUP  SELENIUM  GRID
Core  01
Node
Setup  Selenium  Grid
Start  Selenium  Grid
- Add  Hub
- Add  node:  chrome
- Add  node:  Firefox
28
3.  SETUP  SELENIUM  GRID
GitBucket Jenkins
NodeHub
Does  it  Scale?
Yes  we  can  test  multiple  browsers!
But…!?
What  if?
- +100  tests?
- Selenium  upgrades?
- Grid  Stability?
29
3.  SETUP  SELENIUM  GRID
30
4.  ADD  NODE  TO  GRID
Add  Core  to  Grid
Start  Selenium  Grid
Add  Selenium  node  
on  new  core  
Test  with  new  node
31
4.  ADD  NODE  TO  GRID
Core  01
GitBucket Jenkins
TestrunnerTestrunner
Core  02
Testrunner
Does  it  scale?
Yes  we  can  100+  tests!!!
But  what  if
- Selenium  upgrade?
- Grid  Stability?
32
4.  ADD  NODE  TO  GRID
33
5.  SCALE  THE  GRID
Really  scale  up  the  grid!
Manually  scaling  grids  does  not  scale
Add  scheduling  component:  Mesos
34
5.  SCALE  THE  GRID
Mesos  to  rule  them  all
Mesos  groups  separate  machines  into  one  
big  resource  pool
35
5.  SCALE  THE  GRID
What  is  Mesos?
Mesosphere  provides  features  such  as  
application  scheduling,  scaling,  fault-­
tolerance,  and  self-­healing.
It  also  provides  application  service  discovery,  
port  unification,  and  end-­point  elasticity.
36
5.  SCALE  THE  GRID
Mesos Architecture
37
5.  SCALE  THE  GRID
Scale:  Manage  all  the  resources
Mesos  master
Mesos  slave
Mesos plugin  for  Jenkins
- Registers framework  to  
start  Jenkins  slaves  on  
Mesos  slaves
38
5.  SCALE  THE  GRID
Core  01
GitBucket Jenkins
Mesos Master
Core  02
Mesos slave
Bonus:  Other  test  tool
39
ADDED  BONUS
SCALE  ALL  THE  THINGS  
All  the  things?
Mesos  is  a  generic  scheduler
Can  run  any  job,  not  just  selenium
Use  your  mesos  cluster  to  run  any  test
- Integration  testing
- Security  testing
- Performance  testing
- ...
40
ADDED  BONUS:  SCALE  ALL  THE  THINGS
Questions?
Scalable  QA  With  Docker
Come  Open  Kitchen  
“Scalable  QA  With  
Docker”  19  October!  
@Xebia

More Related Content

What's hot

Deploy and upgrade Docker applications with a single click
Deploy and upgrade Docker applications with a single clickDeploy and upgrade Docker applications with a single click
Deploy and upgrade Docker applications with a single click
Docker, Inc.
 
Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
HungWei Chiu
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
Sreenivas Makam
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
Docker, Inc.
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and Ops
Bret Fisher
 
Continuous Integration using Docker & Jenkins
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & Jenkins
B1 Systems GmbH
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
kushalsingh007
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.
 
DCSF 19 Kubernetes and Container Storage Interface Update
DCSF 19 Kubernetes and Container Storage Interface UpdateDCSF 19 Kubernetes and Container Storage Interface Update
DCSF 19 Kubernetes and Container Storage Interface Update
Docker, Inc.
 
What’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, DockerWhat’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, Docker
Docker, Inc.
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
Docker, Inc.
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
Docker, Inc.
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
Docker, Inc.
 
Easy Setup for Parallel Test Execution with Selenium Docker
Easy Setup for Parallel Test Execution with Selenium DockerEasy Setup for Parallel Test Execution with Selenium Docker
Easy Setup for Parallel Test Execution with Selenium Docker
Sargis Sargsyan
 
Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes
Weaveworks
 
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
Sargis Sargsyan
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
CloudBees
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Damien Duportal
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and Jenkins
Camilo Ribeiro
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
Brian Dawson
 

What's hot (20)

Deploy and upgrade Docker applications with a single click
Deploy and upgrade Docker applications with a single clickDeploy and upgrade Docker applications with a single click
Deploy and upgrade Docker applications with a single click
 
Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and Ops
 
Continuous Integration using Docker & Jenkins
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & Jenkins
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
DCSF 19 Kubernetes and Container Storage Interface Update
DCSF 19 Kubernetes and Container Storage Interface UpdateDCSF 19 Kubernetes and Container Storage Interface Update
DCSF 19 Kubernetes and Container Storage Interface Update
 
What’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, DockerWhat’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, Docker
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
 
Easy Setup for Parallel Test Execution with Selenium Docker
Easy Setup for Parallel Test Execution with Selenium DockerEasy Setup for Parallel Test Execution with Selenium Docker
Easy Setup for Parallel Test Execution with Selenium Docker
 
Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes
 
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and Jenkins
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 

Similar to TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar

DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Ajeet Singh Raina
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
Jessica Deen
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
Amazon Web Services
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas
 
OpenStack @ Workday - CI/CD
OpenStack @ Workday - CI/CDOpenStack @ Workday - CI/CD
OpenStack @ Workday - CI/CD
Edgar Magana
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
STePINForum
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
vodQA
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Richard Bullington-McGuire
 
ExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CIExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CI
ElasTest Project
 
Docker & ci
Docker & ciDocker & ci
Docker & ci
Patxi Gortázar
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Moataz Nabil
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
Puppet
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
Ajeet Singh Raina
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
Cloud Native Bangalore
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
Ajeet Singh Raina
 

Similar to TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar (20)

DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
dockerSAW
dockerSAWdockerSAW
dockerSAW
 
OpenStack @ Workday - CI/CD
OpenStack @ Workday - CI/CDOpenStack @ Workday - CI/CD
OpenStack @ Workday - CI/CD
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
ExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CIExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CI
 
Docker & ci
Docker & ciDocker & ci
Docker & ci
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium Grid
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 

More from Xebia Nederland BV

The 10 tip recipe for business model innovation
The 10 tip recipe for business model innovationThe 10 tip recipe for business model innovation
The 10 tip recipe for business model innovation
Xebia Nederland BV
 
Scan je teams!
Scan je teams!Scan je teams!
Scan je teams!
Xebia Nederland BV
 
Holacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taartHolacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taart
Xebia Nederland BV
 
3* Scrum Master
3* Scrum Master3* Scrum Master
3* Scrum Master
Xebia Nederland BV
 
Judo Strategy
Judo StrategyJudo Strategy
Judo Strategy
Xebia Nederland BV
 
Agile en Scrum buiten IT
Agile en Scrum buiten ITAgile en Scrum buiten IT
Agile en Scrum buiten IT
Xebia Nederland BV
 
Scrumban
ScrumbanScrumban
Creating the right products
Creating the right productsCreating the right products
Creating the right products
Xebia Nederland BV
 
Videoscribe je agile transitie
Videoscribe je agile transitieVideoscribe je agile transitie
Videoscribe je agile transitie
Xebia Nederland BV
 
Sketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint RetrospectivesSketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint Retrospectives
Xebia Nederland BV
 
Why we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right questionWhy we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right question
Xebia Nederland BV
 
Testen in de transitie naar continuous delivery
Testen in de transitie naar continuous deliveryTesten in de transitie naar continuous delivery
Testen in de transitie naar continuous delivery
Xebia Nederland BV
 
Becoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredientBecoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredient
Xebia Nederland BV
 
How DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of TestingHow DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of Testing
Xebia Nederland BV
 
Become a digital company - Case KPN / Xebia
Become a digital company - Case KPN / XebiaBecome a digital company - Case KPN / Xebia
Become a digital company - Case KPN / Xebia
Xebia Nederland BV
 
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nlBuilding a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Xebia Nederland BV
 
Webinar Xebia & bol.com
Webinar Xebia & bol.comWebinar Xebia & bol.com
Webinar Xebia & bol.com
Xebia Nederland BV
 
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
Xebia Nederland BV
 
TestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson SmartTestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson Smart
Xebia Nederland BV
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
Xebia Nederland BV
 

More from Xebia Nederland BV (20)

The 10 tip recipe for business model innovation
The 10 tip recipe for business model innovationThe 10 tip recipe for business model innovation
The 10 tip recipe for business model innovation
 
Scan je teams!
Scan je teams!Scan je teams!
Scan je teams!
 
Holacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taartHolacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taart
 
3* Scrum Master
3* Scrum Master3* Scrum Master
3* Scrum Master
 
Judo Strategy
Judo StrategyJudo Strategy
Judo Strategy
 
Agile en Scrum buiten IT
Agile en Scrum buiten ITAgile en Scrum buiten IT
Agile en Scrum buiten IT
 
Scrumban
ScrumbanScrumban
Scrumban
 
Creating the right products
Creating the right productsCreating the right products
Creating the right products
 
Videoscribe je agile transitie
Videoscribe je agile transitieVideoscribe je agile transitie
Videoscribe je agile transitie
 
Sketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint RetrospectivesSketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint Retrospectives
 
Why we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right questionWhy we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right question
 
Testen in de transitie naar continuous delivery
Testen in de transitie naar continuous deliveryTesten in de transitie naar continuous delivery
Testen in de transitie naar continuous delivery
 
Becoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredientBecoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredient
 
How DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of TestingHow DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of Testing
 
Become a digital company - Case KPN / Xebia
Become a digital company - Case KPN / XebiaBecome a digital company - Case KPN / Xebia
Become a digital company - Case KPN / Xebia
 
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nlBuilding a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
 
Webinar Xebia & bol.com
Webinar Xebia & bol.comWebinar Xebia & bol.com
Webinar Xebia & bol.com
 
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
 
TestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson SmartTestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson Smart
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar

  • 1. Software Development Done Right Scalable  QA with  Docker 1 Maarten  van  den  Ende – @mjvdende Adé  Mochtar  – amochtar@xebia.com
  • 2. Introduction Maarten  van  den  Ende Test  Automation  Architect @mjvdende Adé  Mochtar Data  Center  Automator amochtar@xebia.com 2
  • 4. Code  Examples 4 $  git  clone https://github.com/xebia/scalable-­‐qa-­‐with-­‐docker.git $  cd  scalable-­‐qa-­‐with-­‐docker/ $  vagrant up Download  data.zip from http://bit.ly/tw-­‐scale-­‐data and  unzip  in  scalable-­‐qa-­‐with-­‐docker/  dir 1 2 3
  • 6. 6 Test  environment  hard  to   maintain
  • 8. Selenium  Grid  to   the  rescue Use  Grid  to  run  all  your  tests One  interface  for  testing  all  the  browsers Fixed  set  of  browsers  nodes  are  at  your   disposal,  ready  for  more 8
  • 10. Selenium  Grid  Over  Time 10 Not  enough   nodes   configured - For  example:   growing  need  to   regression  test   each  branch   after  each   commit So  you  really  need  to  take  care  of   your  selenium  grid... Selenium  Grid   hard  to   maintain - Browser  updates - Selenium   updates Selenium  Grid   stability - Selenium  nodes   go  out  of   memory - Browser  timeouts
  • 11. 11
  • 12. 12 How  To  Scale  Properly
  • 13. How  to  scale  properly Start  test - Scale  up - Start  nodes  when   needed - Start  different  flavor End  test - Scale  down - Remove  nodes Ready  for  More!   13 Server  X Source   Repository Continuous   Integration   Datacenter  Y Testrunner Chrome  node Testrunner Chrome  node TestrunnerSystem   Under  Test
  • 14. Next  60  minutes 1. Setup  environment 2. Selenium  job 3. Setup  selenium  grid 4. Add  node  to  grid 5. Scale  the  grid 14
  • 15. 15 1.  SET  UP  ENVIRONMENT
  • 16. Set  up Start  environment 16 Host  OS Virtualbox -­ Virtualisatie Infrastructure Docker Guest  OS CoreOS App  1 App  2 Guest  OS CoreOS Docker App  3 App  4 $  vagrant  up Bringing  machine  'core-­‐01'  up  with  'virtualbox'   provider... Bringing  machine  'core-­‐02'  up  with  'virtualbox'   provider... ==>  core-­‐01:  Importing  base  box   'coreos_766.3.0.box'... ==>  core-­‐01:  Matching  MAC  address  for  NAT   networking... ==>  core-­‐01:  Setting  the  name  of  the  VM:   scalable-­‐qa-­‐with-­‐docker_core-­‐ 01_1443034087957_90607 ==>  core-­‐01:  Clearing  any  previously  set  network   interfaces... ==>  core-­‐01:  Preparing  network  interfaces  based   on  configuration... 1.  SET  UP
  • 17. What  are  Vagrant  &  Virtualbox Virtualbox - Runs virtual  machines  on  your  machine - Cross platform  (OS  X,  Windows,  Linux) - Open  source Vagrant - Utility  for  building  development  environments - Utility  for  distributing  these  environments - Vagrant  cloud   - Open source Vagrant  +  Virtualbox  provide  reproducible   environments,  ideal  for  dev  and  test 17 1.  SET  UP
  • 18. What  is  Docker Platform  for  building,  shipping  and  running   applications Standardized  container  format - Application  packaging - Isolation - Distribution Runs  any  app,  everywhere 18 1.  SET  UP
  • 19. What  is  Docker Lightweight - Share  system  kernel  and   common  files Open - Runs  on  Linux (and   Windows) Secure - Isolate  applications Share  and  collaborate - Store,  distribute  and   manage  Docker images  in   docker registry Scale - Containers  spin  up  in   seconds Accelerate  developer - Copy  production  code  and   run  locally Empower  developer - Free  to  use  the  best   language  for  the  job   without  causing  conflict   issues Eliminate  environment   inconsistencies - Shipping  the  application   with  configs and   dependencies  as  a   container   19 1.  SET  UP
  • 20. What  is  CoreOS Bare  Linux  OS,  designed  to   run  Linux  Containers  like   Docker Designed  for  security,   consistency,  and  reliability No  package  manager  ,  have   to  run  everything  in  a   container Clustering  is  first  class  citizen Automatic updates 20 1.  SET  UP
  • 21. CoreOS  components Docker  -­ Container  runtime Etcd  -­ Distributed  K/V  store,  basis  for   clustering Fleet  -­ Basic  scheduler Systemd  -­ Service  manager Flannel  -­ Networking  between  containers 21 1.  SET  UP
  • 22. CoreOS Unit  Files 22 [Unit]             Description=petclinic After=docker.service           Requires=docker.service [Service]             Restart=always RestartSec=5             TimeoutStartSec=0             ExecStartPre=-­‐/usr/bin/docker pull  docker-­‐registry:5000/petclinic ExecStartPre=-­‐/usr/bin/docker kill petclinic ExecStartPre=-­‐/usr/bin/docker rm petclinic ExecStart=/usr/bin/docker run   -­‐p  8282:8080   -­‐-­‐name="petclinic"   docker-­‐registry:5000/petclinic ExecStop=/usr/bin/docker stop  petclinic 1.  SET  UP
  • 23. Up  and  Running System  under  test - Petclinic Source  Repository - Gitbucket Continuous  Integration - Jenkins 23 1.  SET  UP core-­01 Source   Repository Continuous   Integration   System   Under  Test core-­02
  • 25. Run  test  job  on  Jenkins Create  test Commit  &  Push Run  test 25 Core  01 GitBucket Jenkins Testrunner 2.  SELENIUM  JOB
  • 26. Does  it  scale? No,  Why  not? Test  fixed  to  specific  selenium  node What  if - Different  browser  tests - +100  tests? - Selenium  upgrade 26 2.  SELENIUM  JOB
  • 28. Core  01 Node Setup  Selenium  Grid Start  Selenium  Grid - Add  Hub - Add  node:  chrome - Add  node:  Firefox 28 3.  SETUP  SELENIUM  GRID GitBucket Jenkins NodeHub
  • 29. Does  it  Scale? Yes  we  can  test  multiple  browsers! But…!? What  if? - +100  tests? - Selenium  upgrades? - Grid  Stability? 29 3.  SETUP  SELENIUM  GRID
  • 30. 30 4.  ADD  NODE  TO  GRID
  • 31. Add  Core  to  Grid Start  Selenium  Grid Add  Selenium  node   on  new  core   Test  with  new  node 31 4.  ADD  NODE  TO  GRID Core  01 GitBucket Jenkins TestrunnerTestrunner Core  02 Testrunner
  • 32. Does  it  scale? Yes  we  can  100+  tests!!! But  what  if - Selenium  upgrade? - Grid  Stability? 32 4.  ADD  NODE  TO  GRID
  • 34. Really  scale  up  the  grid! Manually  scaling  grids  does  not  scale Add  scheduling  component:  Mesos 34 5.  SCALE  THE  GRID
  • 35. Mesos  to  rule  them  all Mesos  groups  separate  machines  into  one   big  resource  pool 35 5.  SCALE  THE  GRID
  • 36. What  is  Mesos? Mesosphere  provides  features  such  as   application  scheduling,  scaling,  fault-­ tolerance,  and  self-­healing. It  also  provides  application  service  discovery,   port  unification,  and  end-­point  elasticity. 36 5.  SCALE  THE  GRID
  • 38. Scale:  Manage  all  the  resources Mesos  master Mesos  slave Mesos plugin  for  Jenkins - Registers framework  to   start  Jenkins  slaves  on   Mesos  slaves 38 5.  SCALE  THE  GRID Core  01 GitBucket Jenkins Mesos Master Core  02 Mesos slave
  • 39. Bonus:  Other  test  tool 39 ADDED  BONUS SCALE  ALL  THE  THINGS  
  • 40. All  the  things? Mesos  is  a  generic  scheduler Can  run  any  job,  not  just  selenium Use  your  mesos  cluster  to  run  any  test - Integration  testing - Security  testing - Performance  testing - ... 40 ADDED  BONUS:  SCALE  ALL  THE  THINGS
  • 41. Questions? Scalable  QA  With  Docker Come  Open  Kitchen   “Scalable  QA  With   Docker”  19  October!   @Xebia