hofmannc / Load-Tests-PubMan

0 stars 0 forks source link

Explore possibilities of Docker for live environment #6

Closed hofmannc closed 7 years ago

hofmannc commented 7 years ago

There are two options to realize our test environment -> copy live server or implement test environment in a container on live server.

Please analyze the "docker topic" (by February) 1.Would docker be feasable for our environment (in principle)? 2.Are there alternative tools? 3.What would be necessary to implement our test environment in docker? 4.How would the processes look like? -to implement test environment -to run qa tests on live server

hofmannc commented 7 years ago

please check also this info (given by Wilhelm) - would grinder be useful for us?

Fredora-Commons benutzt für die Lasttests NICHT Docker, sondern Grinder und JMeter:

https://github.com/rtu/fcrepo-test-grinder https://github.com/fcrepo4-labs/fcrepo4-jmeter

Fedora-Commmons gibt es auch als Docker: https://github.com/yinlinchen/fcrepo4-docker

aapetrova commented 7 years ago

Grinder and JMeter aims generally overlap. Grinder generates load and is not used for setting up the actual test environment like Docker is. The difference between both is that tests in Grinder require scripts and test in JMeter are built by combining components. JMeter's generated report functionality offers more features in general, which is relevant for us.

aapetrova commented 7 years ago

Testing with a Docker container on the production server: Advantages: comparatively easy installation of all required components possible to create a baseline we could revert our test environment back to at any time negligible server overload from running Docker

Disadvantages: SUT is not installed on Docker, which is a major difference between the environments if load tests lead to server downtime (likely), the live instance performance will also be affected. We can potentially take measures against this if we run the tests at night resource sharing with the live instance

Testing on a separate (QA) server: Advantages: installation closer to production environment if we need to examine server logs, we will not need to separate test use from actual use

Disadvantages: possibly a more complicated installation reinstalling will require the same effort without a baseline different specifications of live and QA server -> adjusting test results to the actual environment is not trivial

In load testing best practices are 1. creating a test environment as close to production as possible 2. separating test from production environment Considering this, I would at first recommend to use a separate server for the test environment