TestEngineering/Services/LoadsToolsAndTesting2: Difference between revisions

no edit summary
(Created page with "* NOTE 1: Original Source: https://etherpad.mozilla.org/Loads-Current-Status-Aug2014 * NOTE 2: This is specifically for Loads V2 * NOTE 3: For Loads V1 information, please see...")
 
No edit summary
Line 2: Line 2:
* NOTE 2: This is specifically for Loads V2
* NOTE 2: This is specifically for Loads V2
* NOTE 3: For Loads V1 information, please see https://wiki.mozilla.org/QA/Services/LoadsToolsAndTesting1
* NOTE 3: For Loads V1 information, please see https://wiki.mozilla.org/QA/Services/LoadsToolsAndTesting1
= Loads V1 and Vaurien =
Two tools Loads (V1) and Vaurien
* Most Stage deployment verification is partially handled through the use of the Loads tool for stress/load (and someday performance) testing.
* Vaurien is a TCP proxy which will let you simulate chaos between your application and a backend server.
** One active(?) POC for Vaurien is with GeoLocation (ichnaea).
== Usage Rules ==
* Note: There are a number of open bugs and issues (see below) that require Loads use to be focused and specific per project:
** Do not over do the loads test - start with the default values in the config files.
** Do not run more than two tests in parallel.
** Do not use more than 5 agents per load test unless you need to use more.
** Do not run a load test of more than 8 - 10 hours
** There are more limitations/rules...
== Repos ==
* https://github.com/mozilla-services/loads
* https://github.com/mozilla-services/loads-aws
* https://github.com/mozilla-services/loads-web
* https://github.com/mozilla-services/loads.js
* https://github.com/mozilla-services/vaurien
* https://github.com/mozilla-services/konfig
** https://pypi.python.org/pypi/konfig
== Bugs ==
* META: https://github.com/mozilla-services/loads/issues/279
* https://github.com/mozilla-services/loads/issues
* https://github.com/mozilla-services/vaurien/issues
== Documentation ==
* http://loads.readthedocs.org/en/latest/
* http://vaurien.readthedocs.org/en/latest/
== Loads Cluster Dashboard ==
* http://loads.services.mozilla.com/
* or http://ec2-54-212-44-143.us-west-2.compute.amazonaws.com/
* Note: This is a login/password protected site. For now, please get an account via Tarek.
* Note: You need to make some changes to your .ssh/config file
== Deployment and AWS Instances ==
* Master, two slaves in US West
* loads-master (broker and agent processes)
* loads-slave-1 (agent processes)
* loads-slave-2 (agent processes)
* Note: there is no CF stack or ELB for this cluster
* Note: the load cluster state/health can be check directly from the dashboard (see above)
== Monitoring the cluster via Stackdriver ==
* StackDriver: https://app.stackdriver.com/groups/6664/stage-loads-cluster
== Monitoring the Loads Cluster ==
* Via the dashboard: http://loads.services.mozilla.com/
* Check the loads cluster state/health directly from the dashboard:
** Agents statuses
** Launch a health check on all agents
== Monitoring the Stage environment during Load Tests ==
* We have various dashboards created by OPs that capture and display all sorts of data via the Heka/ES/Kibana pipeline
** Heka dashboard
** Kibana dashboard
** Stackdriver
== Load Test Results ==
* Load test results are always listed in the dashboard.
* A clean up of the dashboard is a high priority for V2 - we want a much better/accurate representation of the test(s) run with the kind of human-readable results that provide additional meaning/context to the metrics provided by the various OPs dashboards
== Reporting (or lack of it) ==
* There were plans to create some reporting in the style of what we had with the Funkload tool.
* There are bugs open about getting some reporting out of Loads.
* No action taken at this time, but a very good candidate for V2.
== QA Wikis ==
* https://wiki.mozilla.org/QA/Services/FxATestEnvironments
* https://wiki.mozilla.org/QA/Services/FxALoadTesting
* https://wiki.mozilla.org/QA/Services/TSVerifierSyncTestEnvironments
* https://wiki.mozilla.org/QA/Services/TokenServerAndSyncLoadTesting
* https://wiki.mozilla.org/QA/Services/LoopTestEnvironments
* https://wiki.mozilla.org/QA/Services/LoopServerLoadTesting
== Current projects using Loads ==
* FxA-Auth-Server
* FxA-Scrypt-Helper (defunct)
* Tokenserver/Verifier (now combined)
* Sync 1.5
* Loop-Server
* MSISDN-Gateway
* GeoLocation: https://github.com/mozilla/ichnaea/tree/master/loadtest
== New/Planned projects using Loads ==
* SimplePush (probably)
* Tiles (maybe)
== Other projects doing load testing ==
* Tiles: https://github.com/mozilla-services/tiles-loadtest (which I think uses Siege)
* SimplePush:
** https://github.com/bbangert/push-tester (which is all Haskell-y)
** https://github.com/oremj/simplepush-testpod (straight-up JS)
** https://github.com/edmoz/load-test (the Python equivalent me thinks)
== Vaurien ==
* Get Vaurien (or similar) working on FxA, TS, Verifier, Sync (as appropriate)
* See https://github.com/crankycoder/ichnaea for a working example
* Open Issues for this:
** Ichnaea: https://github.com/mozilla/ichnaea/issues/148
** Ichnaea: https://github.com/mozilla/ichnaea/issues/169
** FxA: https://github.com/mozilla/fxa-auth-server/issues/558
** Tokenserver: https://github.com/mozilla-services/tokenserver/issues/44
** Verifier: https://github.com/mozilla/browserid-verifier/issues/50
** Sync: https://github.com/mozilla-services/server-syncstorage/issues/19


= Loads V2 =
= Loads V2 =
Confirmed users
3,727

edits